Я хочу знать общее количество шагов, необходимых для перехода от n (в примере 15) к 1.
Вот что мне удалось сделать на данный момент:
def collatz(n):
print(n)
c = 0
while n != 1:
if n % 2 == 0:
n = n // 2
c += 1
yield(n)
yield ('{%d}' % c)
else:
n = n * 3 + 1
c += 1
yield(n)
yield ('{%d}' % c)
print(list(collatz(15)))
Вот что я получаю. Он дает мне все шаги, но мне нужно только их общее количество (в примере 17).
[46, '{1}', 23, '{2}', 70, '{3}', 35, '{4}', 106, '{5}', 53, '{6}', 160, '{7}', 80, '{8}', 40, '{9}', 20, '{10}', 10, '{11}', 5, '{12}', 16, '{13}', 8, '{14}', 4, '{15}', 2, '{16}', 1, '{17}']
Подробнее здесь: https://stackoverflow.com/questions/511 ... conjecture
Подсчет шагов в гипотезе Коллатца ⇐ Python
Программы на Python
1764616284
Anonymous
Я хочу знать общее количество шагов, необходимых для перехода от n (в примере 15) к 1.
Вот что мне удалось сделать на данный момент:
def collatz(n):
print(n)
c = 0
while n != 1:
if n % 2 == 0:
n = n // 2
c += 1
yield(n)
yield ('{%d}' % c)
else:
n = n * 3 + 1
c += 1
yield(n)
yield ('{%d}' % c)
print(list(collatz(15)))
Вот что я получаю. Он дает мне все шаги, но мне нужно только их общее количество (в примере 17).
[46, '{1}', 23, '{2}', 70, '{3}', 35, '{4}', 106, '{5}', 53, '{6}', 160, '{7}', 80, '{8}', 40, '{9}', 20, '{10}', 10, '{11}', 5, '{12}', 16, '{13}', 8, '{14}', 4, '{15}', 2, '{16}', 1, '{17}']
Подробнее здесь: [url]https://stackoverflow.com/questions/51176850/counting-steps-in-the-collatz-conjecture[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия