Как определить статистическую случайность двоичной строки?Как определить статистическую случайность двоичной строки?
Ergo, как я могу закодировать свой собственный тест и вернуть единственное значение, которое соответствует статистической случайности, значение от 0 до 1.0 (0 не является случайным, 1.0 является случайным)?
Тест должен работать на двоичные строки любого размера.
Когда вы это делаете с ручкой и бумагой, вы можете изучить строки, как это:
0 (произвольная случайность, единственным выбором является 1)
00 (не случайным, его повторения и спичек размер)
01 (лучше, два разных значения)
010 (менее случайный, палиндром)
011 (менее случайное, больше 1, по-прежнему приемлемые)
0101 (менее случайный, рисунок)
0100 (лучше, меньше из них, но любое другое распределение вызывает паттерны)
Конкретные примеры:
Размер: 1, Возможности: 2
0: 1.0 (случайное)
1: 1.0 (случайное)
Размер: 2, P: 00:?
01: 1.0 (случайный)
10: 1.0 (случайный)
11:?
S: 3, P: 8
000:? неслучайное
001: 1.0 (random)
010:? менее случайные
011: 1.0 (случайная)
100: 1.0 (случайные)
101:? менее случайным
110 1,0 (случайный)
111:? неслучайное
И так далее.
Я чувствую, что это может сыграть большую роль в разрыве струны во всевозможные подстроки и сравнение частот, но похоже, что эта основа была уже сделана в первые дни компьютерных наук.
какой-либо одной бинарной строкой можно рассматривать как случайный! Вам нужно иметь образец пространства, в котором можно сравнить его ... –
Что вы на самом деле делаете? –
Только это: прочитайте в произвольной двоичной строке и обратите внимание на ее статистическую случайность. Например, 0101010101010101 имеет сбалансированное количество 1 и 0, но вряд ли случайное. Можно сказать, что: [00000000 имеет случайность 0] [01010101 имеет случайность 0,01] [00000101 имеет случайность 0,05] [01001011 имеет случайность 1,0] – Tim