Size: a a a

2021 March 25

[

[BRM]White Rabbit in Haskell
toriningen
просто брутфорс выглядит бесперспективной идеей - какой бы ни была верхняя граница проверенных значений, это все равно не даст 100% уверенность
Если есть одно число, которое не достигает единицы, то есть бесконечное количество чисел, которые не достигают единицы.
источник

t

toriningen in Haskell
[BRM]White Rabbit
Если есть одно число, которое не достигает единицы, то есть бесконечное количество чисел, которые не достигают единицы.
согласен, но как узнать, что оно не достигает единицы, а не просто долго бродит?
источник

[

[BRM]White Rabbit in Haskell
toriningen
сорян, сорян ._. могу программу на хаскеле написать, которая будет перебирать все значения в обратном порядке, тогда будет онтопик?
Напиши🌚
источник

t

toriningen in Haskell
да пишу, пишу. надо сначала разобраться, в какую сторону этот ваш хаскель включать
источник

A

Andrey in Haskell
звучит как решето Эратосфена наоборот
источник

A

Andrey in Haskell
не понимаю пока, какая практическая польза от этого
источник

[

[BRM]White Rabbit in Haskell
toriningen
согласен, но как узнать, что оно не достигает единицы, а не просто долго бродит?
возможно, итог сводится к циклу.
Например, единица.
Нечётное число - умножаем на 3, прибавляем 1.
4 - чётное число. Делим на два.
2 - Опять делим.
Единица.
Последовательность зациклилась.
источник

Y

Yuuri in Haskell
[BRM]White Rabbit
Готово! Функция, которая считает, сколько итераций понадобилось для достижения единицы.
Если эта функция не завершилась, то самое время звонить в Гарвард!
А теперь перепиши на хвостовую рекурсию!
источник

к

кана in Haskell
там и есть хвостовая рекурсия, просто на скрине ошибка - скобки забыты
источник

к

кана in Haskell
в противном случае там явное зацикливание потому что по сути

colatz x = f (colatz x)

без построения значения
источник

Y

Yuuri in Haskell
кана
там и есть хвостовая рекурсия, просто на скрине ошибка - скобки забыты
Не-а, там же 1 +
источник

Y

Yuuri in Haskell
Но скобки действительно забыты
источник

[

[BRM]White Rabbit in Haskell
Yuuri
А теперь перепиши на хвостовую рекурсию!
источник

к

кана in Haskell
ты уверен что это все еще правильная функция?
источник

[

[BRM]White Rabbit in Haskell
Вот я её сейчас запустил и уже перестал быть уверен
источник

к

кана in Haskell
у тебя f возварщает количество, а ты потом это количество делишь на 2 например
источник

Y

Yuuri in Haskell
Конечно неправильная, потому что Collatz с двумя l 😛
источник

к

кана in Haskell
f (i + 1) (n `div` 2)

и снизу так же
источник

[

[BRM]White Rabbit in Haskell
Ага, теперь работает.
Кстати, а чё хлс так много жрёт?
источник

IK

Ilya Kos in Haskell
[BRM]White Rabbit
Ага, теперь работает.
Кстати, а чё хлс так много жрёт?
Память течёт
источник