随机显示一个1-20之间的数字

jp0077777 2011-04-07 11:19:07
单击COMMAND1后 TEXT1。TEXT中随机显示出一个1-20之间的数字 ?如何编程 ?
谢了
...全文
535 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
jp0077777 2011-04-20
  • 打赏
  • 举报
回复
晕死 几天没上 这么多回复 不好意思分不够分
其实第一个回复就解决了我的问题
谢了
ghost71210 2011-04-12
  • 打赏
  • 举报
回复
如果包含小数的话 难道是把范围扩大再除以相应扩大的倍数?
那么两位小数的话
Private Sub Command1_Click()
Randomize
Text1.Text = [Int(1901 * Rnd) + 100]/100
End Sub
  • 打赏
  • 举报
回复
有个问题lz要的是1-20之间的随机数,楼上产生的基本上是整数,是不是也应该包括小数呢?
-晴天 2011-04-11
  • 打赏
  • 举报
回复
除极少数情况,RND完全可以解决了,用不着费心去再写其他函数.
pos老吴 2011-04-11
  • 打赏
  • 举报
回复

Private Sub Command4_Click()
Debug.Print Int(20 * Rnd() + 1) 'Int((范围) * Rnd) + 基数 范围=上限-基数+1
End Sub
赵4老师 2011-04-11
  • 打赏
  • 举报
回复
我相信这样产生的0~9999之间的随机数是真随机而非伪随机:
#include <windows.h>
#include <conio.h>
int i;
void main() {
cprintf("Please press space bar to generate random number between 0 and 9999 ...\r\n");
i=0;
while (1) {
if (_kbhit()) break;
Sleep(1);
i++;
if (i>=10000) i=0;
}
_getch();
cprintf("%d\r\n",i);
}
杀神者 2011-04-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 caozhy 的回复:]
引用 5 楼 zhao4zhong1 的回复:
引用 3 楼 myjian 的回复:
同意RND函数.

另外,利用当前CPU使用率,内存使用率等因素做到更随机的RND封装见:

http://www.m5home.com/bbs/thread-3225-1-1.html

我相信这样产生的0~9999之间的随机数绝对够随机:

C/C++ code
#include <wi……
[/Quote]
LinkSe7en 2011-04-09
  • 打赏
  • 举报
回复
自己写过一个伪随机数生成类 C++写的
vb就直接用rnd吧
mokton 2011-04-09
  • 打赏
  • 举报
回复
看一楼的回答就行了
threenewbee 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhao4zhong1 的回复:]
引用 3 楼 myjian 的回复:
同意RND函数.

另外,利用当前CPU使用率,内存使用率等因素做到更随机的RND封装见:

http://www.m5home.com/bbs/thread-3225-1-1.html

我相信这样产生的0~9999之间的随机数绝对够随机:

C/C++ code
#include <windows.h>
#include <conio……
[/Quote]

软件产生的随机数都是伪随机数。

随机数并不仅仅是偶然产生的数,而是服从随机概率分布的一组数。

比如 [0, 9) 上的n个随机数,那么一个试验就是当 n 趋向无穷大的时候,任意数字出现的数量接近 n/10。

再比如,另一个试验是,任意从上述序列中抽取10个数,它的平均数服从近似的正态分布。

这样的实验可以举出很多。所谓伪随机数,必然是能够通过绝大部分试验,但是总有一些试验无法通过。
赵4老师 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 myjian 的回复:]
同意RND函数.

另外,利用当前CPU使用率,内存使用率等因素做到更随机的RND封装见:

http://www.m5home.com/bbs/thread-3225-1-1.html
[/Quote]
我相信这样产生的0~9999之间的随机数绝对够随机:
#include <windows.h>
#include <conio.h>
int i;
void main() {
cprintf("Please press space bar to generate random number between 0 and 9999 ...\r\n");
i=0;
while (1) {
if (_kbhit()) break;
Sleep(1);
i++;
if (i>=10000) i=0;
}
_getch();
cprintf("%d\r\n",i);
}
贝隆 2011-04-08
  • 打赏
  • 举报
回复
老马总是有独特见解,学习一下
码之魂 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 photel123456 的回复:]

Private Sub Command1_Click()
Randomize
Text1.Text = Int(20 * Rnd) + 1
End Sub
用RND()最简单
[/Quote]

Int((范围) * Rnd) + 基数
范围=上限-基数+1
嗷嗷叫的老马 2011-04-08
  • 打赏
  • 举报
回复
同意RND函数.

另外,利用当前CPU使用率,内存使用率等因素做到更随机的RND封装见:

http://www.m5home.com/bbs/thread-3225-1-1.html
ningweidong 2011-04-08
  • 打赏
  • 举报
回复
用rnd生成随机数即可
lliai 2011-04-08
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Randomize
Text1.Text = Int(20 * Rnd) + 1
End Sub
用RND()最简单
zfl2k 2011-04-08
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Randomize
Text1.Text = Int(20 * Rnd) + 1
End Sub

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧