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

📄 subject_24611.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:24611 发表者:enjoyvc1 发表日期:2002-12-14 11:48:30
<br>主题:请教如何产生一个30位的随机数!!(火急)
<br>内容:大家好:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请问如何在VC下产生一个30位的随机数,用RAND()行吗?<BR>怎么做?<BR>&nbsp;&nbsp;谢谢!!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:zhangni 回复日期:2002-12-14 12:52:44
<br>内容:想简单的话,用RAND()吧。他的结果是双精度浮点数,在0----1之间。你可以一次取一位,取30次就行了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhangni 回复日期:2002-12-14 12:59:14
<br>内容:#define RAND_MAX 10<BR>&nbsp;&nbsp; srand( 3000 );<BR><BR>&nbsp;&nbsp; /* Display 30 numbers. */<BR>&nbsp;&nbsp; for( i = 0;&nbsp;&nbsp; i &lt; 30;i++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf( "&nbsp;&nbsp;%1d\n", rand() );<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>
回复者:enjoyvc1 回复日期:2002-12-15 00:32:36
<br>内容:老兄你的方法我试过了,好象不行,每次产生的数相同,而且根本没有30位的数,且我想每次产生的数都只是30位的,不你的想法好象可以行得通,我正在试,你能再试一试,谢谢!
<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>回复者:zhangni 回复日期:2002-12-15 02:14:18
<br>内容:用点脑子!所有的rand产生的都是伪随机数!关键在于种子数!一般用时间做种子数。我不过是为了简单,才那样写。你查MSDN的例子就知道了。另外,30位找超出了32位整数的表示范围,必须用其他办法来表示,这里我不过是用字符串来说明一下而已。<BR>这里给你一个比较完整的例子:<BR>#include &lt;stdlib.h&gt;<BR>#include &lt;time.h&gt;<BR><BR>int main(int argc, char* argv[])<BR>{<BR>&nbsp;&nbsp; int i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;char s[31];<BR>&nbsp;&nbsp; srand((unsigned)time( NULL ) );<BR><BR>&nbsp;&nbsp; /* Display 30 numbers. */<BR>&nbsp;&nbsp; for( i = 0;&nbsp;&nbsp; i &lt; 30;i++ )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[i]=0x30+(int) (((double)rand()/(double)0x7fff)*10.0) ;<BR>&nbsp;&nbsp; s[30]=0;<BR>&nbsp;&nbsp; for(i=0;i&lt;30;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf("%c",s[i]);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;printf("\nHello World!\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<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>
回复者:enjoyvc1 回复日期:2002-12-15 12:33:58
<br>内容:哈哈,是本人愚笨,高手你很正确,有时间能不能向你请教??<BR>谢谢了,老兄!帮了我个大忙!我发E-MAIL给你,你要回哦
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小缪 回复日期:2002-12-20 12:40:10
<br>内容:请问RAND_MAX能够改变吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhangni 回复日期:2002-12-21 09:04:09
<br>内容:VC里RAND_MAX的定义是0x7fff。我曾经试着改变,但发现没有起作用。也许我的方法不对。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:enjoyvc1 回复日期:2003-01-11 17:47:33
<br>内容:to&nbsp;&nbsp;zhangli<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 老兄再给我解释一下:<BR>s[i]=0x30+(int) (((double)rand()/(double)0x7fff)*10.0) ;<BR> <BR>谢谢您啦!<BR><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>
回复者:zhangni 回复日期:2003-01-14 08:41:16
<br>内容:前面已经说了,RAND_MAX=0x7fff; 0x30是字符“0”的ASCII码。这一整句就是为了随机产生一个一位的整数,并转换为字符型储存到字符串中。你若用在程序中,最好用RAND_MAX代替0x7fff。若还有疑问请直接给我发E-MAIL。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:enjoyvc1 回复日期:2003-01-14 18:59:50
<br>内容: 我完全明白了<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR> <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THINK YOU VERY MUCH!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jerryws 回复日期:2003-02-12 10:12:39
<br>内容:s[i]=0x30+(int) (((double)rand()/(double)0x7fff)*10.0) ;<BR>应该改为:<BR>s[i]=0x30+(int) (((double)rand()/(double)(0x7fff+1))*10.0) ;<BR><BR>frey兄原来的代码没有加1,导致(int) (((double)rand()/(double)(0x7fff+1))*10.0)的结果是0到10的闭区间,于是当0x30+10就成为了“:”<BR><BR>算是一个小Bug吧!<BR><BR>注:rand()返回RAND_MAX的机会很少,所以原来的程序出错机会也很少,不过偶循环了10000次就已经看到“:”了。<BR><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>
回复者:enjoyvc1 回复日期:2003-02-14 08:43:26
<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>
回复者:anders_wen 回复日期:2003-02-28 13:56:36
<br>内容:我想问一下哦!<BR>int main(int argc, char* argv[])<BR>中这个main()中括号里面本来应该是空的!<BR>但是为什么要加上int argc, char* argv[]呢?<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>
回复者:anders_wen 回复日期:2003-02-28 14:05:08
<br>内容:0x7fff是什么意思?<BR>是不是那个数字的ascII码啊?<BR><BR>而且您定义的是srand((unsigned)time( NULL ) );<BR>在下面用的时候好象没有用到这个函数?<BR>用的是rand()啊?<BR>这是这么规定的吗?<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 + -