说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

求C++算法代码。

编辑:说三道四文库 发布时间:2018-04-27 05:22
HTML文档下载 WORD文档下载 PDF文档下载
求一用C++写的程序:自动产生12位随机数码。兄弟们,快啊,急用。
TC3.0编译通过

#include <iostream.h>
#include <time.h>
#include <stdlib.h>

int main()
{
char szNumber[13];
time_t t;
srand(time(&t));
for(int i=0; i<12; i++) szNumber[i]=rand()%10+'0';
szNumber[i]=0;

cout<<szNumber;

return 0;
}
你给了我一个产生12位随机数码的C++程序,你能给我讲讲原理及流程吗?最好画个流程图我
原理就是取12个随机数,然后放到数组里面啊。
就是阿通过时间给出算子,通过循环给出12个随机数并存入数组就是这样啦
累死我了
#include<time.h>
const unsigned long maxshort=65536L;
const unsigned long multiplier=1194211693L;
const unsigned long adder=12345L;
class randomnumber
{
private:
unsigned long randseed;
public:
randomnumber(unsigned long s=0);
unsigned short random(unsigned long n);
double frandom(void);
};


randomnumber::randomnumber(unsigned long s)
{
if(s=0)
randseed=time(0);
else
randseed=s;
}
unsigned short randomnumber::random(unsigned long n)
{
randseed=multiplier*randseed+adder;
return(unsigned short)((randseed>>16)%n);
}
double randomnumber::frandom(void)
{
return random(maxshort)/double(maxshort);
}
那如何大量产生12位随机数,且可控生成数量
#include <iostream.h>
#include <time.h>
#include <stdlib.h>

#define     N      10

int main()
{
char szNumber[N][13];
time_t t;
srand(time(&t));
         for(int j=0; j<N; j++)
         {
   for(int i=0; i<12; i++) szNumber[j][i]=rand()%10+'0';
   szNumber[j][i]=0;
   cout<<szNumber[j];
          }

return 0;
}
生成两个6位的拼起来不行吗?

int r1 , r2;
char s[13];

srand(time(0))
r1 = rand() % 1000000;

srand(time(0)*time(0));
//防止和在极短时间内使用了与r1相同的随机种子。
//而再次调用srand是为了断绝r1与r2的关系。

r2 = rand() % 1000000;
sprintf(s , "%06d%06d" , r1 , r2);
给分了!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘