A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 354620815 中级黑马   /  2014-10-3 15:22  /  1316 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

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的组合。也就是说分成了两个步骤来完成。









6 个回复

倒序浏览
本帖最后由 十万一千 于 2014-10-4 11:31 编辑

据我了解,这种求全组合的彩票算法没有必要一定要先生成中间全排列啊?如果是双色球的全组合的话
C(33, 6).multiply(C(16,1))==17721088个,不过你说的分文件存储还是很有必要的。单纯存储C(33, 6)的话,大概也就26M的样子。
回复 使用道具 举报
!!!!!!!
回复 使用道具 举报
看不懂,还是感觉很厉害
回复 使用道具 举报
不明觉厉!
回复 使用道具 举报
青峰牧雪 来自手机 中级黑马 2014-10-5 08:11:11
地板
厉害!赞一个
回复 使用道具 举报
晕了!有点乱!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马