Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Вот бы проверить как обстояли бы дела, если бы выбирая каждую следующую ячейку в стоге, мы бы не выбирали уже проверенные


// Рандомим иглу и кидаем ее в стог
needle = random(cell + 1);
potenArr[needle] = 1;На самом деле вариантов много, можно разделить стог на 10 маленьких, перебирать маленькие с начала до конца, но выбирать маленький стог рандомно. Можно даже проверенные исключать из массива.
То есть массив 1… 10
Рандом выдал 2
Исключаем 2 из массива
Следующий Рандом из 9 элементов
heap_size = 1000 # размер стога
needle = random(heap_size) # запоминаем позицию иголки
# последовательный поиск
def seq_search(_needle):
for i in 1..heap_size:
if i == _needle:
return
# случайный поиск
def rand_search(_needle):
n_checks = 0
do:
i = random(heap_size)
++n_checks
while (i != _needle)
return n_checks # заодно вернём количество "обращений к стогу"
Ищем иголку в стоге без использования всем известных алгоритмов