不同函数的 'perceived randomness'评分算法

标签 algorithm compression information-theory

我有一些函数将英文字母表中的小写字母作为输入并返回 True 或 False。

这样可能的函数有 2^26 个。以下是一些函数及其 26 位表示:

00000000000000000000000001(仅限 z) 01010101010101010101010101(仅限偶数字母) 10000000000000000000000000(仅一个) 10001000100000100000100000(仅限元音) 10000001000000000000000100(仅限 a、h、x)

我想做的是对这些函数的感知随机性进行评分,即它们对人类来说有多任意?似乎有某种模式,还是我只是随机挑选了一些字母?

我认为分数可能基于量化向其他人描述模式所需的最少信息,或者压缩时模式字符串的大小。

有适合​​这个的算法吗?它是否可以包含人类可能提前知道的额外信息,例如“aeiou”属于“元音”类,“gjpqy”属于“低悬”类,“bdfhijklt”属于“高”类?

最佳答案

仅用一个样本无法确定过程的随机性。这部 xkcd 漫画很好地说明了这一点:

4 is random

事实上,我们的宇宙本身可能难以置信,但它只需要发生一次。

“感知随机性”是一个非常模糊的概念。您需要对人类和您的弦进行试验,看看他们认为什么是“随机”的,什么不是,然后尝试构建一个模型。

您可以使用游程编码和面向位的 LZ77 类型压缩等方法来检测重复的字符串,但是无论如何,您将很难压缩一开始只有 26 位长的字符串你设计什么描述语言。特别是如果您尝试包含高度、元音等内容。因此,科洛莫戈洛夫复杂度将不是人类“感知随机性”的良好模型。

关于不同函数的 'perceived randomness'评分算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32607785/

相关文章:

Sokumenzu/侧 View 生成器背后的算法

Java:使用随机 int 创建数组(int 只能使用一次)

string - 可以使一组字符串唯一的最少字符数

video - Electron ffmpeg 集成

powershell - 如何使用 Compress-Archive 压缩/归档隐藏文件?

matlab - MATLAB 中的霍夫曼编码 - 传输字典/树

cryptography - 物理学中的熵与信息系统中的熵

java - 水库采样算法

encryption - 如何计算位串的近似熵?

php - 以位为单位保护随机十六进制大小以防止暴力破解