用VB编写产生一个在区间(0,20)内的随机数,既不包括0也不包括20

来源:百度知道 编辑:UC知道 时间:2024/06/15 23:47:21
用Rnd函数表写一个表达式
请回答者一定要注意一个问题,我问的是,在区间(0,20)内的随机数,不是(0,20)内的整数,且不包括0和20!以上回答者的答案都是编写一个整数,看来我要增加悬赏了! 我真的不明白VB你们是怎么学的,是的去掉Int或者Fix就不会出现整数了,但是Rnd的值是大于等于0而小于1,即【0,1)这个范围,它包括了0,我要求的范围它不包括0,就这么一个问题难道没有人能给我一个答复吗,请同志们认真审题,别在那瞎答,像挺明白的似的! 同志是我叙述错误还是你叙述错误,我翻阅了很多本书,都是我这种说法Rnd的值是大于等于0而小于1,即【0,1)这个范围,希望来个高手指点指点吧! Yuqi_Tan很感谢你,可以看出你是一个很热心很认真的同志,在此非常感谢,这十五分就给你了,但是我有一个补充,能不能只用一个Rnd表达式去说明,就一个表达式,不加结构什么的,如果能的话,写一下,我另外在给你加5个积分,也就是20个积分,尝试一下这个挑战!

陈昊昱,你的叙述有些错误:
“Rnd的值是大于等于0而小于1,即【0,1)这个范围,它包括了0,我要求的范围它不包括0”这句话是错误的!
Rnd的值是大于0而小于1,即(0,1)这个范围,它并不包括0!

所以你说的问题只用一个 Rnd*20 就可以产生一个大于0并小于20的小数,不会出现0和20地!

补充:
好的,我说错了,你可以用下面的语句产生(0,20)之间的随机数:
假如要产生20个:
Option Explicit

Dim i As Integer, a() As Single
Const n = 20

Private Sub Form_Click()
ReDim a(n)
Randomize
Cls
For i = 1 To n
a(i) = Rnd * 20
If a(i) = 0 Then
i = i - 1
Else
Print i, a(i)
End If
Next
Print "end,双击退出。。。"
End Sub

Private Sub Form_DblClick()
End
End Sub

Private Sub Form_Load()
Form1.AutoRedraw = True
Print "要产生"; n; "个(0,20)之间的随机数,单击窗口。。。"
End Sub
已经运行过了.

老弟,我考虑半天,不能用一个rnd函数取得(0,20)之间的值,但用两个RND就可以:
a=10*(rnd+rnd-rnd)
得到的a值永远在(0,20)之间
不知道你是否满意.接下来几天我不能上网,有事请电话联系139-0536-0421.

Randomize
Dim i