相关疑难解决方法(0)

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

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

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

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

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

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

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

theory random puzzle math

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

随机值的测试 - 对这种方法的思考?

好的,我一直在研究随机图像选择器和队列系统(所以你不经常看到相同的图像).

一切都在游泳(就我的蹩脚代码而言),直到我得到随机位.我想测试它,但你如何测试呢?没有Debug.Assert(i.IsRandom)(遗憾地):D

所以,在用一些茶浇水之后,我把它的大脑放在上面并提出以下内容,我只是想知道我是否能想到你的想法?

  • 基本上我知道随机位是问题,所以我把它撕成了一个委托(然后将其传递给对象构造函数).
  • 然后我创建了一个几乎与实时代码执行相同逻辑的类,但是记住在私有变量中选择的值.
  • 然后我把那个代表扔到了直播课上并对其进行了测试:

Debug.Assert(myObj.RndVal == RndIntTester.ValuePassed);
Run Code Online (Sandbox Code Playgroud)

但我忍不住想,我是在浪费时间吗?我通过大量的迭代运行它,看看它是否随时崩溃等.

你觉得我在浪费时间吗?或者我可以逃脱:

令人敬畏的随机数发生器

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

迪尔伯特随机

更新到澄清

  • 我应该补充一点,我基本上不希望从Y大小的池中看到与X次相同的结果.
  • 添加测试容器基本上允许我查看是否"随机"选择了任何先前选择的图像.
  • 我在技术上认为这里的东西不是在RNG中进行测试(因为我从未编写过该代码),而是我希望从有限的池中随机获得结果,并且我想跟踪它们.

testing random automated-tests unit-testing

8
推荐指数
3
解决办法
1069
查看次数

标签 统计

random ×2

automated-tests ×1

math ×1

puzzle ×1

testing ×1

theory ×1

unit-testing ×1