黑马程序员技术交流社区

标题: JAVA实现36选7(高效率一) [打印本页]

作者: 354620815    时间: 2014-10-3 15:22
标题: JAVA实现36选7(高效率一)
JAVA基础练习,枚举出彩票36选7的所有组合,并把它们保存在文本文件中,要求,每个文件最多保存60万组。
为什么有这样的要求?因为36选7有 50,086,080 个组合,如果把它保存在一个文件中,有1G多,打都打不开。
  注意:
  彩票36选7并不仅仅是组合,因为36选7还有一个特别号码。
  01 02 03 04 05 06 07
  01 02 03 04 05 07 06
  01 02 03 04 06 07 05
  01 02 03 05 06 07 04
  01 02 04 05 06 07 03
  01 03 04 05 06 07 02
  02 03 04 05 06 07 01
因此我们要先求出 1-36 的 8,347,680 种组合,再把每一个组合的元素互换6次得到彩票36选7的组合。也就是说分成了两个步骤来完成。










作者: 十万一千    时间: 2014-10-4 11:28
本帖最后由 十万一千 于 2014-10-4 11:31 编辑

据我了解,这种求全组合的彩票算法没有必要一定要先生成中间全排列啊?如果是双色球的全组合的话
C(33, 6).multiply(C(16,1))==17721088个,不过你说的分文件存储还是很有必要的。单纯存储C(33, 6)的话,大概也就26M的样子。

作者: FlyFish    时间: 2014-10-4 12:26
!!!!!!!
作者: Aaron_H    时间: 2014-10-4 14:37
看不懂,还是感觉很厉害
作者: Imp_x    时间: 2014-10-4 22:30
不明觉厉!
作者: 青峰牧雪    时间: 2014-10-5 08:11
厉害!赞一个
作者: 张业婷    时间: 2014-10-5 09:20
晕了!有点乱!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2