找回密码
 点一下
查看: 1524|回复: 21

关于快速列举的算法? 各位大大帮帮忙。。。。

[复制链接]
发表于 2008-6-13 03:04:50 | 显示全部楼层 |阅读模式
  为了产生一个12位的序列号列表,请教一个算法:
12位的序列要求是这样的,其中第五位至第八位为字符'0'-'9'中任意一位
其余各位字符分别为'8RT2j67dK'当中的一位,我写了一个列举算法,运行了快4个小时了,还没停下来,
请高手给一个算法或者思路,有什么办法可以让它运行的更快一些?
谢谢了!!!
 楼主| 发表于 2008-6-13 04:01:38 | 显示全部楼层
已经5个小时了。。。。。还没停。。。。。。。。。。。。
回复

使用道具 举报

发表于 2008-6-13 09:17:54 | 显示全部楼层
太白痴的算法,拒绝回答。
回复

使用道具 举报

发表于 2008-6-13 09:26:13 | 显示全部楼层
好牛的算法,好牛的搂主......
回复

使用道具 举报

发表于 2008-6-13 09:39:54 | 显示全部楼层
所有的序列号总数=9^8 * 10^4=430467210000。
回复

使用道具 举报

发表于 2008-6-13 11:19:59 | 显示全部楼层
111.PNG
222.PNG

traxex.rar

9 KB, 下载次数: 5

回复

使用道具 举报

发表于 2008-6-13 11:21:54 | 显示全部楼层
[codes=c++]
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        Keya="8RT2j67dK";
        Keyb="0123456789";
        Left=500;
        Top=400;
        Label1->Caption="Click Me,Baby";
}
//---------------------------------------------------------------------------




void __fastcall TForm1::Label1Click(TObject *Sender)
{
       int i=0;
       int k;
       AnsiString str="";
       for( i=0;i!=4;i++){
           k=random(9);
           str+=Keya[k];
       }

       for( i=4;i!=8;i++){
           k=random(10);
           str+=Keyb[k];
       }

       for( i=8;i!=12;i++){
           k=random(9);
           str+=Keya[k];
       }

       Label1->Caption=str;

}
//---------------------------------------------------------------------------

[/codes]
回复

使用道具 举报

发表于 2008-6-13 12:36:38 | 显示全部楼层
很显然LZ死循环了

朱朱用BCB啦?
回复

使用道具 举报

发表于 2008-6-13 12:54:40 | 显示全部楼层
引用第7楼hke于2008-06-13 12:36发表的  :
很显然LZ死循环了

朱朱用BCB啦?
只是试一试。。。
对。net有些怒了。
回复

使用道具 举报

发表于 2008-6-13 13:16:14 | 显示全部楼层
很强悍的猪猪,MB一下
回复

使用道具 举报

发表于 2008-6-13 13:20:26 | 显示全部楼层
LZ要的素列举。列举的个数是LZ的签名中循環的次数的43倍。
渣朱朱終於也開始对.net怒了么。
回复

使用道具 举报

发表于 2008-6-13 13:23:46 | 显示全部楼层
渣白,让人抓狂的解释~~~~~
回复

使用道具 举报

 楼主| 发表于 2008-6-13 19:42:00 | 显示全部楼层
额。。。。不是组合,也是排列,只是在排列时元素是否能重复选取的问题。
数据库的表文件十几个亿不知道够不够它存...
回复

使用道具 举报

发表于 2008-6-13 19:43:26 | 显示全部楼层
原来猪是那么的厉害....
回复

使用道具 举报

 楼主| 发表于 2008-6-13 19:48:18 | 显示全部楼层
朱朱是计算机运算达人。。。。
我用我原来的方法.最终还是将表文件存爆了....
回复

使用道具 举报

发表于 2008-6-13 19:52:29 | 显示全部楼层
..对楼上的话 无语。
回复

使用道具 举报

发表于 2008-6-13 20:03:16 | 显示全部楼层
其余8位分别是"8RT2j67dK"中不重复1位么...
那么是3628800000。
完全把列表保存需要40.555GB。
回复

使用道具 举报

 楼主| 发表于 2008-6-13 20:14:34 | 显示全部楼层
白银大人好强。。。。。崇拜。。。。。。
回复

使用道具 举报

发表于 2008-6-13 20:53:09 | 显示全部楼层
白银总是说出惊世骇俗滴话
回复

使用道具 举报

发表于 2008-6-13 22:26:38 | 显示全部楼层
个人觉得,这个列举,和列举从0到10000的所有整数,在本质上是一样的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 06:01 , Processed in 0.040276 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表