⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_56921.htm

📁 vc
💻 HTM
字号:
<p>
序号:56921 发表者:纯子 发表日期:2003-10-21 18:51:08
<br>主题:产生随机数的问题
<br>内容:我想产生这样一组随机数:[0,4]产生100个,其中,【0,1】10个,【1,2】20个,【2,3】30个,【3,4】40个,我该怎么办?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:下次用什么名字? 回复日期:2003-10-21 19:03:24
<br>内容:产生【0,1】之间的float是吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:纯子 回复日期:2003-10-21 19:12:44
<br>内容:【0,1】之间的我会产生,关键是如何将产生的10个【0,1】,20个【1,2】,30个【2,3】,40个【3,4】重新随机排序,并取出
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:下次用什么名字? 回复日期:2003-10-21 19:19:37
<br>内容:【0,1】的产生20个;<BR>【0,1】的再产生20个,20个数都加1就是【1,2】之间的吧<BR>如此类推<BR>没有人规定你非要一次产生100个吧
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:纯子 回复日期:2003-10-21 19:36:25
<br>内容:问题是第一个20个都是在【0,1】,第二个20个都是在【1,2】之间,我的原意是这40个应该是随机无序排列的,只要统计起来有20个在【0,1】,有20个在【1,2】
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:下次用什么名字? 回复日期:2003-10-21 19:39:49
<br>内容:明白你的意思了<BR>很有意思的问题,我想想……<BR>呵呵,你怎么产生随机float的?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:下次用什么名字? 回复日期:2003-10-21 21:34:08
<br>内容:我做了一个,不过肯定有比较简单的办法,<BR>&nbsp;&nbsp;&nbsp;&nbsp;int n[100];<BR>&nbsp;&nbsp;&nbsp;&nbsp;int i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int j;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;100;i++) n[i]=i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int f[100];///产生随机float,sorry,我不会,以int 代替<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;srand(GetTickCount());//设置随机数种子<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;char ch[100][13];<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString strMessage=_T(&#34;&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;char chTemp[13];<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;100;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt;10;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch[i][j]=rand()%26+'a';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch[i][10]=i/10+48;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch[i][11]=i%10+48;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch[i][12]=NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CString str1,str2;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;100;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt;99-i;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str1=_T(ch[j]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str2=_T(ch[j+1]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(str1&gt;str2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(chTemp,ch[j]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(ch[j],ch[j+1]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(ch[j+1],chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch[99-i][0]=ch[99-i][10];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch[99-i][1]=ch[99-i][11];<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;100;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[atoi(ch[i])]=rand()%10;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&lt;10)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[atoi(ch[i])]+=0;///产生随机float,sorry,我不会,以int 代替<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(i&lt;30)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[atoi(ch[i])]+=10;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(i&lt;60)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[atoi(ch[i])]+=20;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(i&lt;100)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[atoi(ch[i])]+=30;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>//////////统计<BR>&nbsp;&nbsp;&nbsp;&nbsp;int range[4];<BR>&nbsp;&nbsp;&nbsp;&nbsp;range[0]=range[1]=range[2]=range[3]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;100;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range[f[i]/10]++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;itoa(f[i],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMessage+=_T(chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMessage+=_T(&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;itoa(range[3],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;[30-39]:&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;itoa(range[2],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;[20-29]:&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;itoa(range[1],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;[10-19]:&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;itoa(range[0],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;[0-9]:&#34;);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;SetDlgItemText(IDC_EDIT_OUT,strMessage);<BR><BR>拜托你告诉我怎么产生随机float
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:saka 回复日期:2003-10-22 01:01:23
<br>内容:随机产生100个(0-4)//用循环语句<BR>分别用变量a,b,c保存0-1,1-2,2-3的随机数的个数,满足条件退出循环即可。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:下次用什么名字? 回复日期:2003-10-22 10:42:38
<br>内容:我重新写了一个函数,代码比先的短写,至于速度,看你的运气,踩地雷次数太多可能就慢了<BR>void CTestDlg::OnOK() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add extra validation here<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int i,j;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int f[100];///产生随机float,sorry,我不会,以int 代替<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString strMessage=_T(&#34;&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;char chTemp[256];<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;srand(GetTickCount());//设置随机数种子<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;100;i++) f[i]=-1;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;100;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int k=0;;k++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j=rand()%100;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(f[j]&lt;0)//f[j]&lt;0时,表明f[j]未赋值,f[j]&gt;=0时,表明f[j]已经赋值,即所谓踩地雷<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(chTemp,&#34;i=%3d时,连续%3d次踩地雷后才碰到安全的%3d\r\n&#34;,i,k,j);//////////统计<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMessage+=_T(chTemp);//////////统计<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[j]=rand()%10;///产生随机float,sorry,我不会,以int 代替<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&lt;10)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[j]+=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(i&lt;30)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[j]+=10;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(i&lt;60)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[j]+=20;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(i&lt;100)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[j]+=30;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>//////////统计<BR>&nbsp;&nbsp;&nbsp;&nbsp;int range[4];<BR>&nbsp;&nbsp;&nbsp;&nbsp;range[0]=range[1]=range[2]=range[3]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;100;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range[f[i]/10]++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(f[i]&lt;0) MessageBox(&#34;错误!出现未赋值的情况!&#34;);//检查是否赋值<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;itoa(f[i],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMessage+=_T(chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMessage+=_T(&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;itoa(range[3],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;[30-39]:&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;itoa(range[2],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;[20-29]:&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;itoa(range[1],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;[10-19]:&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;\r\n&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;itoa(range[0],chTemp,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,chTemp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;strMessage.Insert(0,&#34;[0-9]:&#34;);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;SetDlgItemText(IDC_EDIT_OUT,strMessage);<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:下次用什么名字? 回复日期:2003-10-22 10:46:57
<br>内容:虽然罗嗦,函数实现的是:<BR>10个[0-9]的随机数<BR>20个[10-19]的随机数<BR>30个[20-29]的随机数<BR>40个[30-39]的随机数<BR><BR>关键:这100个数在数组里不是顺序存放的,而是随机的<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -