单击COMMAND1后 TEXT1。TEXT中随机显示出一个1-20之间的数字 ?如何编程 ?
谢了

解决方案 »

  1.   

    本帖最后由 bcrun 于 2011-04-12 09:14:56 编辑
      

  2.   

    同意RND函数.另外,利用当前CPU使用率,内存使用率等因素做到更随机的RND封装见:http://www.m5home.com/bbs/thread-3225-1-1.html
      

  3.   

    我相信这样产生的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);
    }
      

  4.   

    本帖最后由 bcrun 于 2011-04-12 09:15:18 编辑
      

  5.   


    Int((范围) * Rnd) + 基数
    范围=上限-基数+1
      

  6.   


    软件产生的随机数都是伪随机数。随机数并不仅仅是偶然产生的数,而是服从随机概率分布的一组数。比如 [0, 9) 上的n个随机数,那么一个试验就是当 n 趋向无穷大的时候,任意数字出现的数量接近 n/10。再比如,另一个试验是,任意从上述序列中抽取10个数,它的平均数服从近似的正态分布。这样的实验可以举出很多。所谓伪随机数,必然是能够通过绝大部分试验,但是总有一些试验无法通过。
      

  7.   

    自己写过一个伪随机数生成类 C++写的 
    vb就直接用rnd吧
      

  8.   

    我相信这样产生的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);
    }
      

  9.   


    Private Sub Command4_Click()
    Debug.Print Int(20 * Rnd() + 1) 'Int((范围) * Rnd) + 基数 范围=上限-基数+1
    End Sub
      

  10.   

    除极少数情况,RND完全可以解决了,用不着费心去再写其他函数.
      

  11.   

    如果包含小数的话 难道是把范围扩大再除以相应扩大的倍数?
    那么两位小数的话
    Private Sub Command1_Click()
    Randomize
    Text1.Text = [Int(1901 * Rnd) + 100]/100
    End Sub