求出所有可能出现的数组

Amdlcom 2012-06-06 08:52:10
从1到100之中 以6位为一组 求出所有可能出现的数组(数组当中的数值不重复)

比如:
1、2、3、4、5、6
1、3、4、5、6、7
1、4、5、6、7、8
......
一直到 95、96、97、98、99、100
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方之珠 2012-06-07
  • 打赏
  • 举报
回复
想做序列号? 那就用排列,即1-100任取6个的排列,排列是有顺序的;而组合不考虑顺序,比如123456和654321在组合里面只能算一个。
做序列号不能只用数字,要部分数字和部分字母组合使用,这是相对安全的。微软的序列号用的是25位字符,即密码学里面的椭圆曲线法生成。这25个字符实际是将114位的数据用Base24进行UUCode后的结果,UUCode的Base共24位:BCDFGHJKMPQRTVWXY2346789作为基本字符。
of123 2012-06-07
  • 打赏
  • 举报
回复
算错了。是 1192052400 种组合。

算法很简单:

1 建立一个空的字典;

2 生成 6 个不重复的 1 至 100 的随机数;

3 查找字典中是否存在此组合,如不存在,则添加到字典;

4 重复 2 至 3 步,直至字典容量达到 1192052400。
Amdlcom 2012-06-06
  • 打赏
  • 举报
回复
我有足够大的空间来存储,想要这些数据,但不知道算法。
Amdlcom 2012-06-06
  • 打赏
  • 举报
回复
我有足够大的空间来存储,想要这些数据,但知道算法。
贝隆 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你确信你有地方存储这些数据?

组合数是 100!/ 6! * (100 - 6)! ≈ 5.4 * 10^153,也就是 54 后面加 152 个 0。
[/Quote]
我算出来怎么不和一样?同样是100!/(94!*6!),我算出来是(如果是Byte类型):1192052400字节,也就是大约1.11G字节
of123 2012-06-06
  • 打赏
  • 举报
回复
你确信你有地方存储这些数据?

组合数是 100!/ 6! * (100 - 6)! ≈ 5.4 * 10^153,也就是 54 后面加 152 个 0。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧