VB6中连续使用Randomize对后续随机数出现概率影响测试

‘程序的思路是将a,b分别给一个0到num-1的随机数,循环多次,观察(a,b)的所有组合出现的次数,用来反映其出现的概率‘测试结果表明连续使用Randomize,出现的(a,b)组合并不是等概率的

Option Explicit

Sub Cal(ByVal num As Integer)
    Dim a, b, i, j, k, n, c() As Long
    ReDim c(num * num - 1)
    For i = 1 To 500000
        Randomize
        a = Int(Rnd * num)
        Randomize ‘此处注释后结果不同
        b = Int(Rnd * num)
        n = 0
        For j = 0 To num - 1
            If a = j Then
                For k = 0 To num - 1
                    If b = k Then
                        GoTo f
                    End If
                    n = n + 1
                Next k
            End If
            n = n + num
        Next j
f:
        c(n) = c(n) + 1
    Next i
    For i = 0 To num * num - 1
        Debug.Print c(i),
    Next i
    Debug.Print
End Sub

Private Sub Command1_Click()
    Call Cal(3)
End Sub
时间: 2024-08-30 00:15:12

VB6中连续使用Randomize对后续随机数出现概率影响测试的相关文章

软件工程结对开发之求一维数组中连续最大子数组之和2

一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 要求程序必须能处理1000 个元素: 每个元素是int32 类型的: 输入一个整形数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为O(n): 结果溢出之后能判断. 二.设计思想 在求最大连续子数组时同样用动态法,对于新增的要求,可以增大随机产生数的倍数,如果结果溢出则输出溢出提示字样,其中int类型rand()随机产生数范围是0~32767,i

刑事犯罪中连续犯与继续犯的区分

案例: 一.无业青年李某因好吃懒做,又想有钱花.某天其见一女儿独自走在偏僻的小巷子,遂持刀上前准备抢劫.其在该女子身上抢得一部手机和少数现金及女子的银行卡一张.因现金较少,男子遂威逼女子去银行的柜员机取钱.在和女子取钱的过程中,李某被抓获. 二.某男子孙某整天游手好闲,与同村男子王某预谋抢劫.一天晚上,他们在县城雇了一辆拉客的三轮摩托车到偏远的地方,抢劫了该车主.两人得手后,到县城的娱乐场所挥霍.两人玩耍结束后,回家的路上,遇到独自回家的青年张某,遂又抢劫了张某的财物. 问,以上两起案例中的犯罪

字符串中连续出现最多的子串 & 字符串中最长重复子串

字符串中连续出现最多的子串 & 字符串中最长重复子串 字符串中连续出现最多的子串 & 字符串中最长重复子串,这两个问题都可以用后缀数组来表示,至于后缀数组可以参考编程珠玑P156:后缀数组就是定义一个数组指针,分别指向字符串中的对应位置,如下: a b c a b c a b c d e .substr[0] b c a b c a b c d e ....substr[1] c a b c a b c d e .......substr[2] a b c a b c d e ......

求一个字符串中连续出现次数最多的子串

解题思路 例如字符串"abababc",最多连续出现的为ab,连续出现三次.要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复子串为abab.两个题目的解法有些类似,都用到了后缀数组这个数据结构.求一个字符串中连续出现的次数最多的子串,首先生成后缀数组例如上面的字符串为: abababc bababc ababc babc abc bc c 可以看出第一个后缀数组和第三个后缀数组的起始都为ab,第5个后缀数组也为ab.可以看出规律来,一个字符串s,如果第一次出现

3、软件工程结对开发之求一维数组中连续最大子数组之和并判断溢出

一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 要求程序必须能处理1000 个元素: 每个元素是int32 类型的: 输入一个整形数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为O(n): 结果溢出之后能判断. 二.设计思想 在我们的前一个程序中,由于int类型rand()随机产生数范围是0~32767,所以产生的1000个数较小,不会产生溢出.但我们通过查资料得知int32最大数是2147

软件工程结对开发之求一个或者多个数组中连续最大子数组之和3

一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n-1], A[0]……A[j-1]之和最大. 同时返回最大子数组的位置. 求所有子数组的和的最大值.要求时间复杂度为O(n). 二.设计思想 三.代码 四.截图 五.总结 六.工作合影

将字符串中连续出现的重复字母进行压缩

原文地址:http://leihuang.net/2014/05/19/List-Interviews/ 单链表的一些常见面试题汇总 单链表反转/逆序 求单链表倒数第N个数 找到单链表的中间结点 如何判断链表是否有环的存在 单链表建环,无环链表变有环 如何知道环的长度? 如何找出环的连接点在哪里? 删除单链表中的重复元素 下面我先简单叙述一下每道题的思路,然后把实现的程序一起贴出来,不会讲得太细,我觉得只要有了思路之后,接下来的难点就是语言上的一些细节问题了,这个不自己去实现,听别人讲是体会不到

[2013百度软件研发笔试题] 求字符串中连续出现同样字符的最大值

题目完整描写叙述为:用递归的方式实现一个求字符串中连续出现同样字符的最大值.如aaabbcc,连续出现a的最大值为3,abbc,连续出现字符最大的值为2. 下面是我想出来的方法: #include <iostream> using namespace std; #define MAX(a, b) (a) > (b) ? (a) : (b) int Get(char *s, int n, int m)  //字符指针, 当前最长串, max最长串 {     if(*(s+1) == '\

[2013百度软件研发笔试题] 求字符串中连续出现相同字符的最大值

题目完整描述为:用递归的方式实现一个求字符串中连续出现相同字符的最大值,如aaabbcc,连续出现a的最大值为3,abbc,连续出现字符最大的值为2. 以下是我想出来的方法: #include <iostream> using namespace std; #define MAX(a, b) (a) > (b) ? (a) : (b) int Get(char *s, int n, int m)  //字符指针, 当前最长串, max最长串 {     if(*(s+1) == '\0'