主题:谁能谈谈随机函数RND()的使用?
flyingfan
[专家分:0] 发布于 2005-09-19 09:12:00
比如求10到99之间的随机整数,能列举出多少种方法?
回复列表 (共14个回复)
沙发
moz [专家分:37620] 发布于 2005-09-19 12:14:00
1. 教材中最基础的办法:
a% = rnd * 89 + 10
2. 也是用随机数
do
a% = rnd * 100
loop while a%<10 or a%>99
应该不会那么倒霉变成死循环吧?
要真有那么黑的话我马上去买彩票。
3. timer ? 还是免了。因为它的速度赶不上计算的快
4. 还是用随机数
a%=rnd*8+1
a%=a%*10+rnd*9
后话:
虽然随机数不随机,
但我们可以想一些办法让它变得随机一点,
比如经常使用新的种子数,
rnd 还可以改成 rnd(n)
连参量n都搞成不定数,
这样得到的数列就可以改变那种固定曲线的问题了。
板凳
flyingfan [专家分:0] 发布于 2005-09-19 14:58:00
谢谢哦
int(rnd*89+10)
int(rnd*89)+10
能吧
3 楼
moz [专家分:37620] 发布于 2005-09-19 15:49:00
不行的
用 int 是不能四舍五入的
直接用变量赋值可以四舍五入
才能得到最大值99
用 int 你是永远用不到99这个值的
最大只能得到98
4 楼
flyingfan [专家分:0] 发布于 2005-09-20 08:43:00
那就改一下吧
int(rnd*90)+10
int(rnd*90)+10
可以吧.
5 楼
moz [专家分:37620] 发布于 2005-09-20 11:20:00
呵呵,嗯,可以了。
6 楼
staa [专家分:3690] 发布于 2005-09-21 19:34:00
[0,1)
7 楼
woshihanjin [专家分:2510] 发布于 2005-09-22 08:23:00
用rnd前先执行randomize timer
8 楼
xizi12345 [专家分:0] 发布于 2005-10-17 21:52:00
RANDOMIZE + TIMER
N=RND(N)*100
应该可以吧!楼上的
9 楼
木偶之舞 [专家分:60] 发布于 2007-12-26 22:27:00
RANDOMIZE
A=FIX(RND*89)+10
应该可以了,在前面加上RANDOMIZE
10 楼
zzjun000 [专家分:0] 发布于 2008-01-02 20:41:00
你求的是10到99:
用INT整型也是可以的,谁说不可以.
defint a
a=int(rnd*89)+1
print a+10
因为你求的是10到99所以只要到89少10就行,然后用时再加上10
我来回复