Дуже схожа на відповідь псевдоніма, отриману іншими способами.
Загальна кількість доступних комбінацій доступна методом зірок і брусків , тому вона повинна бути . Загальна кількість 64-розрядних чисел, з яких ви намагаєтеся відібрати свій номер, було б, очевидно, набагато вищим за це.c = ( 64)н)
Тоді вам потрібна функція, яка може привести вас від псевдовипадкового числа , починаючи від до , до відповідної 64-бітної комбінації.1 cк1c
Трикутник Паскаля може допомогти вам у цьому, тому що значення кожного вузла відображає саме кількість шляхів від цього вузла до кореня трикутника, і кожен шлях може бути зроблений таким чином, щоб він відображав один з рядків, який ви шукаєте, якщо всі ліві повороти є позначено позначкою , а кожен правий поворот .010
Тож нехай - кількість бітів, що залишилися для визначення, а - кількість оставшихся для використання.уху
Ми знаємо, що , і ми можемо використовувати його, щоб правильно визначити наступний біт числа на кожному кроці:( ху) = ( х-1у) + ( х-1у- 1)
ш ч я л еx > 0
i fх > у
i fk > ( x - 1у) :s ← s+ " 1 " ,k ← k - ( x - 1у) ,у← у- 1
e l s e :s ← s+ " 0 "
e l s e :s ← s+ " 1 " ,у← у- 1
x ← x - 1