假设有 5000 个人,每个骰子有 5000 个面(每一面的点数是 1-5000 ),每个人摇 5000 次;获胜规则是这样的:相同数字出现最多的获胜,次数相同则数字大的获胜。
1.把每个人摇五千次的结果先做内部排序,统计出每个数字出现的次数,最后只要记录每个人的相同次数出现最多的数字以及其次数(如第五个人 数字 1500 次数 225 ),5 千个人就是 5 千行结果。
2.针对次数对 5 千行结果做排序,找到次数最大的值。如果次数最大的结果有多个,再选出次数最大的
答主有些情况都没说明,每个骰子有 5000 个面,那它每一面的点数如果范围是 1-6,那是没有意义的,应该是 1-5000 比较合理。
还有个问题要考虑到,比如最终结果为[数字 1500 次数 300]的人数有两个人 a b
这时候就得取 a b 两个的 top2 做规则 [相同数字出现最多的获胜,次数相同则数字大的获胜] 比较,如果 ab 的 top2 都相等,要继续比较 top3 top4 ...topn 等等。
最最最极端的情况,5000 个人的 top1 和 topn 都相等
@
NicholasZhan 大佬说的斗地主中的炸弹就差不多,我刚开始只考虑到 top1 的情况,但是如果 top1 相等的有多个,就要继续往下比较了。