【发布时间】:2015-01-25 19:45:06
【问题描述】:
我想在一个可能的彩票系统中生成一系列数字。每个系列由 6 个数字组成。这些数字是从包含 50 个不同数字的池中选择的。最初有 6 个号码从池中移除,这六个号码构成了累积奖金系列。数字顺序无关紧要。
现在是票系列。一个系列有六个号码,如果其中有 3 个或更多号码与头奖号码中的号码相匹配,则该系列为中奖系列。因此,如果头奖为 1,2,3,4,5,6,则可以将 1,2,3,7,8,9 或 1,2,3,4,0,19 的系列视为赢家。
现在我的问题。我想生成所有获胜的票系列(每个系列中正好有六个数字,并且其中有 3 个或更多匹配的数字)。由于顺序无关紧要,我认为数学答案是[(6选3)*(44选3)]+[(6选4)*(44选2)]+[(6选5)*( 44 选择 1)] + 1。如果我错了,请纠正我。但是,我也想知道如何最好在 Java 或一些伪代码中实现它。
提前感谢所有帮助。
【问题讨论】:
-
我投票决定将此问题作为题外话结束,因为这个网站不是为你做你的工作。当您有特定问题而不是软件要求时回来。
-
@SJuan76 这不是我工作的一部分。我是一名准备实习面试的学生。我遇到了这个问题。我不确定我怎么能更具体。你能详细说明一下吗?这是我要解决的数学问题。我要求 Java 实现(最好),因为我对此更熟悉。
-
欢迎来到 StackOverflow。要获得更好的回复和更少的反对意见,请先浏览quick tour,然后阅读帮助中心,尤其是this 和this,然后根据这些指南发布您的问题。
-
@RealSkeptic 谢谢。我以为我在要求一种算法来解决问题。我确实先自己尝试过。这就是我提出包含的解决方案的方式。但是当我试图实现它时,我做不到。于是,我来到了这里。
-
您找到的公式表明了生成这些集合的方法。如果您找到一种生成“六分之三”、“六分之三”、...只需将它们与“四十四之三”等结合起来。
标签: java permutation combinatorics