首先,这个问题从这个问题中被删除了.我这样做是因为我认为这部分比一个较长问题的一部分要大.如果它冒犯了,请原谅我.
假设您有一个生成随机性的算法.现在你如何测试它?或者更直接 - 假设你有一个混合了一副牌的算法,你如何测试它是一个完全随机的算法?
为问题添加一些理论 - 一副牌可以在52中洗牌!(52阶乘)不同的方式.拿一副纸牌,手工洗牌,记下所有牌的顺序.你有什么可能得到这种洗牌的概率是多少?答案:1/52!
在洗牌之后,你在每个套装中获得A,K,Q,J ......的几率是多少?回答1/52!
所以,只需改组一次并查看结果就可以完全没有关于您的改组算法随机性的信息.两次,你有更多的信息,三个甚至更多......
黑盒子如何测试随机性的洗牌算法?
好的,我一直在研究随机图像选择器和队列系统(所以你不经常看到相同的图像).
一切都在游泳(就我的蹩脚代码而言),直到我得到随机位.我想测试它,但你如何测试呢?没有Debug.Assert(i.IsRandom)(遗憾地):D
所以,在用一些茶浇水之后,我把它的大脑放在上面并提出以下内容,我只是想知道我是否能想到你的想法?
即
Debug.Assert(myObj.RndVal == RndIntTester.ValuePassed);
Run Code Online (Sandbox Code Playgroud)
但我忍不住想,我是在浪费时间吗?我通过大量的迭代运行它,看看它是否随时崩溃等.
你觉得我在浪费时间吗?或者我可以逃脱:

GateKiller的回答让我想起了这个:
