相关疑难解决方法(0)

如何测试随机性(例如 - 改组)

首先,这个问题从这个问题中被删除了.我这样做是因为我认为这部分比一个较长问题的一部分要大.如果它冒犯了,请原谅我.

假设您有一个生成随机性的算法.现在你如何测试它?或者更直接 - 假设你有一个混合了一副牌的算法,你如何测试它是一个完全随机的算法?

为问题添加一些理论 - 一副牌可以在52中洗牌!(52阶乘)不同的方式.拿一副纸牌,手工洗牌,记下所有牌的顺序.你有什么可能得到这种洗牌的概率是多少?答案:1/52!

在洗牌之后,你在每个套装中获得A,K,Q,J ......的几率是多少?回答1/52!

所以,只需改组一次并查看结果就可以完全没有关于您的改组算法随机性的信息.两次,你有更多的信息,三个甚至更多......

黑盒子如何测试随机性的洗牌算法?

theory random puzzle math

39
推荐指数
3
解决办法
1万
查看次数

如何使用随机种子值在 Python 中对 PRNG 进行单元测试?

我对编程还很陌生,只是在学习如何进行单元测试。我需要测试一个返回随机值的函数。到目前为止,我已经找到建议使用特定种子值的答案,以便“随机”序列是恒定的并且可以进行比较。这是我到目前为止所得到的:

这是我要测试的功能:

import random

def roll():
    '''Returns a random number in the range 1 to 6, inclusive.'''
    return random.randint(1, 6)
Run Code Online (Sandbox Code Playgroud)

这是我的单元测试:

class Tests(unittest.TestCase):

    def test_random_roll(self):
        random.seed(900)
        seq = random.randint(1, 6)
        self.assertEqual(roll(), seq)
Run Code Online (Sandbox Code Playgroud)

如何在函数中为PRNG设置相应的种子值,以便可以在不将其写入函数本身的情况下对其进行测试?或者这是测试随机数生成器的完全错误的方法?

谢谢

python random

5
推荐指数
1
解决办法
5099
查看次数

标签 统计

random ×2

math ×1

puzzle ×1

python ×1

theory ×1