可定制大小和数量的随机数函数

2016-01-29 12:11 10 1 收藏

可定制大小和数量的随机数函数,可定制大小和数量的随机数函数

【 tulaoshi.com - C语言心得技巧 】

可定制大小和数量的随机数函数
作者:93106部队 袁海鸿

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

下载本文示例源代码

近日在做一个考试软件时,需要每次题目不同且题数可定制,在C++没找到适用函数,就顺手做了一个较通用的C++的随机函数扩展,请大家编程时参考。

void randEx(int MAX,int NUM) {int k=0;int j=0;time_t t;//设置rand函数所用的启始种子值,以期每次产生的随机数序列均不相同。srand((unsigned) time(&t));for (k=1;k<=NUM;k++)//定制随机数数量。{RAND[k]=rand()%MAX;//定制随机数在0至最大值之间。do  {for (j=1;j<k;j++) if (RAND[j]==RAND[k]) //一次随机数序列中有相同随机数则再//产生一个,直至一次随机数序列中随机数全不相同。{RAND[k]=rand()%MAX;break;}}while(j<k);}}
具体用法:首先在你的工程中相应类头文件中定义一个整型数组RAND[],把此函数加入头文件,在相应的类实现中传递最大值和数量,输出随机数序列。详见示例工程, 示例工程中主要代码如下:
// TestRandDlg.h : header file//class CTestRandDlg : public CDialog{public:CTestRandDlg(CWnd* pParent = NULL); // standard constructorint RAND[20];void randEx(int MAX,int NUM);CWnd*  p_StaticWnd; .....}
// TestRandDlg.cpp : implementation file//.....void CTestRandDlg::OnTestrand() {             UpdateData(TRUE);             randEx(m_nRandMax,m_nRandNum);                          CString str;             if (m_nRandNum>=1){             str.Format("%d",RAND[1]);             p_StaticWnd = GetDlgItem(IDC_STATIC1);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=2){             str.Format("%d",RAND[2]);             p_StaticWnd = GetDlgItem(IDC_STATIC2);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=3){             str.Format("%d",RAND[3]);             p_StaticWnd = GetDlgItem(IDC_STATIC3);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=4){             str.Format("%d",RAND[4]);             p_StaticWnd = GetDlgItem(IDC_STATIC4);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=5){             str.Format("%d",RAND[5]);             p_StaticWnd = GetDlgItem(IDC_STATIC5);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=6){             str.Format("%d",RAND[6]);             p_StaticWnd = GetDlgItem(IDC_STATIC6);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=7){             str.Format("%d",RAND[7]);             p_StaticWnd = GetDlgItem(IDC_STATIC7);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=8){             str.Format("%d",RAND[8]);             p_StaticWnd = GetDlgItem(IDC_STATIC8);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=9){             str.Format("%d",RAND[9]);             p_StaticWnd = GetDlgItem(IDC_STATIC9);             p_StaticWnd->SetWindowText(str);}             if (m_nRandNum>=10){             str.Format("%d",RAND[10]);             p_StaticWnd = GetDlgItem(IDC_STATIC10);             p_StaticWnd->SetWindowText(str);}             UpdateData(FALSE);}

本工程在VC++6.0+WindowsXP中调试通过。
通信地址:(024000)内蒙赤峰市93106部队自动化站

来源:http://www.tulaoshi.com/n/20160129/1485021.html

延伸阅读
本文简述objective-c中生成随机数的几种常见的方法,分享给大家,希望能给大家带来一点借鉴价值。具体如下: 1)、arc4random()方法 :比较精确 不需要生成随即种子 使用方法如下 : 通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc4random() % x; 获取1到x之间的整数的代码如下: int value = (arc4random() % ...
标签: 电脑入门
操作步骤 1、这个函数就是RandBetwween(bottom,top),表示生成从bottom到top之间的随机整数。 2、我们在Excel工作表的单元格中输入=RandBetwween(10,100),不包括引号。 3、回车,这个单元格中就出现了一个10到100之间的随机数。 4、再使用Excel神奇的填充柄将鼠标移动到单元格的右下角,当出现十字标志时,按下鼠标左键,向需要...
在你的工作中是否会为了某个活动要随机取出一些符合条件的EMAIL或者手机号码用户,来颁发获奖通知或其它消息?本文以实例的方式来讲解如何抽取随机数的多种方法。 如果是的话,可以用oracle里生成随机数的PL/SQL, 目录文件名在:/ORACLE_HOME/rdbms/admin/dbmsrand.sql。 用之前先要在sys用户下编译:SQL@/ORACLE_HOME/rdbms/admin/dbmsrand...
ios 有如下三种随机数方法: //第一种srand((unsigned)time(0)); //不加这句每次产生的随机数不变int i = rand() % 5;//第二种srandom(time(0));int i = random() % 5;//第三种int i = arc4random() % 5 ; 注: ① rand()和random()实际并不是一个真正的伪随机数发生器,在使用之前需要先初始化随机种子,否则每次生成的随机数一样。 ...
在你的工作中是否会为了某个活动要随机取出一些符合条件的EMAIL或者手机号码用户,来颁发获奖通知或其它消息?本文以实例的方式来讲解如何抽取随机数的多种方法。 如果是的话,可以用oracle里生成随机数的PL/SQL, 目录文件名在:/ORACLE_HOME/rdbms/admin/dbmsrand.sql。 用之前先要在sys用户下编译:SQL@/ORACLE_HOME/rdbms/adm...

经验教程

386

收藏

84
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部