当前位置:编程学习 > VB >>

vb 随机数

 各位帮个忙 我想写一个随机数 随机数的起始不从那组数的起始开始而是随便一个数都可以 
比如随机1-10这十个数 我不想每次都是从一到十这样随机 而是可以从任意一个数到十 然后在循环回来到这个数 这样随机 
 从五开始的话 就是随机5-10 然后1-4这样随机 
帮帮忙 谢谢 --------------------编程问答-------------------- ??

那就是随机出个数小于10大于5??
dim a : a=0
while(a<5)
rondomize
a=rnd*10
wend

--------------------编程问答-------------------- 不太明白是什么意思,举个例子看看吧 --------------------编程问答-------------------- 还是随机这个十个数 就是不是从1开始随机了 是可以从任意一个数开始
这十个数都是有可能随机出来的 
--------------------编程问答-------------------- 1-10 我提前以1开始到10随机出了比如说6 然后再从6开始随机 再次随机这十个数 然后得到这十个数中的任意一个   --------------------编程问答-------------------- lz是指Randomize吧
--------------------编程问答--------------------
引用 4 楼 qpalzm0618 的回复:
1-10 我提前以1开始到10随机出了比如说6 然后再从6开始随机 再次随机这十个数 然后得到这十个数中的任意一个 


那什么时候截止呢?? --------------------编程问答-------------------- 6的时候就是到5截止 7就是到6 前一个数截止 --------------------编程问答--------------------
引用 4 楼 qpalzm0618 的回复:
1-10 我提前以1开始到10随机出了比如说6 然后再从6开始随机 再次随机这十个数 然后得到这十个数中的任意一个 

你的第一个随机没有用。反正是 1到10的随机。 --------------------编程问答-------------------- 我猜lz是看每次出来的随机数重复,其实Randomize就是解决这个问题

Private Sub Command1_Click()
    Dim i As Integer
     
    Debug.Print "*********"
    
    Randomize
      
    For i = 1 To 10
        Debug.Print Int(Rnd * 10 + 1)
    Next i
End Sub
--------------------编程问答-------------------- lz多点几次看,是不重复的 --------------------编程问答--------------------
引用 9 楼 jhone99 的回复:
我猜lz是看每次出来的随机数重复,其实Randomize就是解决这个问题


貌似不是...他说的逻辑流程不是很清楚

我归纳了一下

从1-10中出一个随机数 - 假如出现数字5 - 再从6-10出一个随机数 - 再从1-4中出一个随机数

然后呢?。。。。 --------------------编程问答--------------------
Sub Main()
    Dim x As Long
    Dim i As Long
    
    Randomize
    x = Int(Rnd() * 10) + 1
    
    For i = 0 To 9
        Debug.Print ((x - 1 + i) Mod 10) + 1
    Next
End Sub
--------------------编程问答-------------------- 看看
(Int(Rnd * 10) + 1 + Int(Rnd * 10) + 1) mod 10 --------------------编程问答-------------------- 问一下这10个随机数字是否重复 --------------------编程问答-------------------- 随便写了一个例子,参考一下吧 --------------------编程问答-------------------- 楼主的意思可能是随机从1到10开始顺序往下数,如果数到10下一个就从1开始,共数10个数。
dim n as integer
dim i as integer
n=1+int(rnd*10)
for i=1 to 10
    debug.print n
    n=(n mod 10)+1
next --------------------编程问答-------------------- 不然‘从1到10随机’与‘从5到10和从1到4随机’是一回事。 --------------------编程问答-------------------- LZ估计是想做那种类似猜数的游戏
就比如说1到100随机一个数,然后某个人猜数,缩小范围继续猜之类的 --------------------编程问答--------------------

Private Sub Command1_Click()
    Randomize Timer
    Static a As Integer
    Dim b As Integer
    Dim c As Boolean
    Static d As Boolean
    Static e As Boolean
    Do
        b = Int(Rnd * 10) + 1
        If Not d Then
           d = True
           a = b
           Debug.Print b
           Exit Do
        Else
          If Not e Then
             If b > a Then
                
                Debug.Print b
                e = True
                a = b
                Exit Do
             End If
          Else
             If b < a Then
                Debug.Print b
                e = False
                a = b
                Exit Do
             End If
          End If
        End If
    Loop

End Sub

--------------------编程问答--------------------
引用 16 楼 zhao4zhong1 的回复:
楼主的意思可能是随机从1到10开始顺序往下数,如果数到10下一个就从1开始,共数10个数。
dim n as integer
dim i as integer
n=1+int(rnd*10)
for i=1 to 10
    debug.print n
    n=(n mod 10)+1
next

见12楼 --------------------编程问答--------------------  
Rnd 函数
      

返回一个包含随机数值的 Single。

语法

Rnd[(number)]

可选的 number 参数是 Single 或任何有效的数值表达式。

返回值

如果 number 的值是 Rnd 生成 
小于 0 每次都使用 number 作为随机数种子得到的相同结果。 
大于 0 序列中的下一个随机数。 
等于 0 最近生成的数。 
省略 序列中的下一个随机数。 


说明

Rnd 函数返回小于 1 但大于或等于 0 的值。

number 的值决定了 Rnd 生成随机数的方式。

对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。

在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。

为了生成某个范围内的随机整数,可使用以下公式:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。

注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
补充:VB ,  网络编程
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,