之前同学面试微软,问了一个问题:如果给你一列物品,这列物品各自都有一个权重。如果根据权重随机选取物品。权重值越大,选中的概率就越大。
第一想法肯定就是根据权重的大小扩充这个数组。比如数组里有[‘apple’,’cherry’,’banana’],对应的权重是[3,4,1]。那么我们把数组扩充成
[‘apple’,’apple’,’apple’,’cherry’,’cherry’,’banana’]
就像这样,然后每个物品选取的概率就是1/(sum(权重))。
但是这个方法有个问题,第一:占用了太多空间。如果权值很大,则需要一个很大数组。
继续阅读与本文标签相同的文章
上一篇 :
程序员的4条忠告,你做到了几条
下一篇 :
区块链开发公司谈区块链对数字营销的影响
-
file_fdw妙用无穷——从数据库读取系统信息
2026-05-26栏目: 教程
-
Javascript AST 编译器的研究学习
2026-05-26栏目: 教程
-
细谈证书与Provisioning Profile
2026-05-26栏目: 教程
-
对比Xcode Debug Memory Graph和FBMemoryProfiler
2026-05-26栏目: 教程
-
“考拉阅读”完成2000万美元B轮融资,K12语文“赛道”激战正酣
2026-05-26栏目: 教程
