[["数量","包装","价格"],["数量","包装","价格"],["数量","包装","价格"]]
要求取出相同包装数量的最低价格结果集
例子:[[10,"kg",200],[10,"kg",300],[20,"kg",100],[20,"kg",200],[30,"kg",200]]
results = [[10,"kg",200],[10,"kg",300],[20,"kg",100],[20,"kg",200],[30,"kg",200]]
result_hash = {}
results.each do |result|
result_hash[result[0]] = result unless result_hash[package_unit].present? && result_hash[result[0]][0] > result[0]
end
results = result_hash.values
StockChemicalPrice 模型下有一个字断记录报价方案:
{levels: "5,10,100", prices: "100,200,300", fees: "0,0,10"}
解析报价方案,取同包装最低报价方案
def get_stock_hash(source_entity_type)
return_result = []
purity_stock = StockChemicalPrice.standard_package.where(active: 1, stock_chemical_id: self.id, source_entity_type: source_entity_type).group_by(&:purity)
purity_stock.each do |purity,stocks|
stocks.group_by(&:package_unit).each do |package_unit,stock|
results = []
stock.each do |data|
purity = purity
package_unit = package_unit
package_unit_int = data.package_unit_before_type_cast
stock_id = data.id
levels = data.hash_rules[:levels].split(',')
prices = data.hash_rules[:prices].split(',')
levels.each_with_index do |l,i|
results << [stock_id,"#{l}#{package_unit}",purity,package_unit,prices[i],l,package_unit_int]
end
if levels.uniq != levels
result_hash = {}
results.each do |result|
result_hash[result[4]] = result unless result_hash[package_unit].present? && result_hash[result[4]][4] > result[4]
end
results = result_hash.values
end
end
return_result += results
end
end
return return_result
end
分享到:
相关推荐
MurmurHash算法由Austin Appleby创建于2008年,现已应用到Hadoop、libstdc 、nginx、libmemcached,Redis,Memcached,Cassandra,HBase,Lucene等开源系统。2011年Appleby被Google雇佣,随后Google推出其变种的...
采用java实现的常用hash算法归总。
Hash函数集合,包含主流的hash函数: nginx_hash算法,OpenSSL_hash算法,RSHash,JSHash,PJWHash,ELFHash,BKDRHash,DJBHash,DEKHash,APHash等等!
Hash算法有三种,分别为平均哈希算法(aHash)、感知哈希算法你(pHash)和差异哈哈希算法(dHash)。 本代码针对平均哈希算法(aHash)
转载:基于Bloom-Filter算法的URL过滤器的实现,算法简介,基本思想,应用,具体实现(C代码)
C语言实现hash算法源码,实现了sha256,sha384,sha512三种哈希算法,项目中用到的,提取出来测试使用的。
HAsh函数的加密算法将的很浅显,但是很实用,适合初学者和有编程经验的人参阅,收获很大
Hash join算法的一个基本思想就是根据小的row sources(称作build input,我们记较小的表为S,较大的表为B) 建立一个可以存在于hash area内存中的hash table,然后用大的row sources(称作probe input) 来探测前面所建...
一个hash算法的工具类,里面包含了一些常用的hash算法
Hash算法
2)DSA中的Hash函数采用SHA算法。 (1)消息填充:因为我们存储的时候是以字节为单位存储的,所以消息的长度(单位:位)一定是 8 的倍数。而我们填充的时候也一定是 8 位、8 位地来填充。也即不可能只填充一个二...
基于最小值滤波与感知哈希算法的图像隐写算法 图像滤波算法.pdf
Geohash算法实现,经纬度到geohash编码的实现
常见的HASH算法
fasthash,go写的一个hash算法,比标准hash算法的速度更快,占用内存更低
一致性 hash 算法介绍
Ketama算法是一致性hash算法的一个优秀实现。增删节点后数据命中率及均分率都很高。
一个分词算法,搜索引擎都会用的分词算法,多次Hash快速分词算法
其中只有一个thomas wang 的整数hash 算法,其余都是字符串的hash算法。