Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/225: Рейтинг темы: голосов - 225, средняя оценка - 4.78
-16 / 3 / 0
Регистрация: 15.12.2018
Сообщений: 82

Сиракузская последовательность

29.12.2018, 15:49. Показов 47059. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сиракузская последовательность, или последовательность Коллатца, строится так: возьмём натуральное число n; если оно чётное, то заменим его числом n/2; если же оно нечётное, то заменим его числом 3n+1. Получившееся число — следующее в сиракузской последовательности после числа n. Затем заменяем получившееся число по тому же правилу, и так далее.
Определите, сколько шагов потребуется сиракузской последовательности, стартующей с заданного числа, чтобы прийти к 1.

Если вы обнаружите число, сиракузская последовательность от которого не приходит к 1, то... вы, скорее всего, ошиблись. Но если нет, то поздравляем: вы прославитесь, ведь вопрос о том, всегда ли сиракузская последовательность приходит к 1 (независимо от начального числа), давно будоражит умы математиков.

Пример
Ввод
10
Вывод
6

вот мой код, но он неправильно выводит результат в некоторых примерах
Python
1
2
3
4
5
6
7
8
9
10
n = int(input())
sum = 1
while n != 1:
    if n % 2 == 0:
        n = n // 2
        sum += 1
    else:
        n = (3 * n + 1) // 2
        sum += 1
print(sum)
Ввод
68
Ожидаемый результат
14
Вывод
12

Помогите исправить, пожалуйста
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.12.2018, 15:49
Ответы с готовыми решениями:

Вставить в последовательность число так, чтобы последовательность осталась неубывающей
Дана последовательность действительных чисел a1<=a2...<=an. Вставить в нее действительное число b так, чтобы последовательность осталась...

Сиракузская последовательность
Начинаем с некоторого натурального числа n На каждом шагу делаем следующее. Если число четное – делим его на 2. Если число нечетное –...

Сиракузская последовательность на Delphi
Сиракузская последовательность, или последовательность Коллатца, строится так: возьмём натуральное число n; если оно чётное, то заменим его...

5
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
29.12.2018, 16:08
Оберни код в теги [PYTHON][/PYTHON]

Добавлено через 2 минуты
Цитата Сообщение от Kalet Посмотреть сообщение
sum = 1
Первая ошибка.

Цитата Сообщение от Kalet Посмотреть сообщение
n = (3 * n + 1) // 2
Вторая.
1
-16 / 3 / 0
Регистрация: 15.12.2018
Сообщений: 82
29.12.2018, 18:22  [ТС]
спасибо большое, нашел свои ошибки и справил
1
1 / 1 / 0
Регистрация: 02.01.2019
Сообщений: 12
05.01.2019, 21:58
Оберни код в теги Добавлено через 2 минуты
Цитата Сообщение от Kalet Посмотреть сообщение
sum = 1
Первая ошибка.

Цитата Сообщение от Kalet Посмотреть сообщение
n = (3 * n + 1) // 2
Вторая.
РЕБЯТА СКИНТЕ ПОЖАЛУЙСТА ПРАВИЛЬНЫЙ КОД ЭТОЙ ЗАДАЧИ, ПРОСТО НЕТ ВРЕМЕНИ ИСПРАВЛЯТЬ ИХ((((
0
0 / 0 / 1
Регистрация: 15.10.2019
Сообщений: 3
15.10.2019, 21:22
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
n = int(input())
sum = 0
while n != 1:
    if n % 2 == 0:
        n = n // 2
        sum += 1
    else:
        n = 3 * n + 1
        sum += 1
print(sum)
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
16.10.2019, 08:49
mimimimimimimim, ак если у тебя нет времени его исправлять, откуда у нас то оно возьмется?

Элементарно:
Python
1
2
3
4
5
6
7
8
# -*- coding: utf-8 -*-
 
n = int(input())
counter = 0
while n != 1:
    n = 3 * n + 1 if n % 2 else n // 2
    counter += 1
print(counter)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.10.2019, 08:49
Помогаю со студенческими работами здесь

Сиракузская последовательность чисел. Добавить классы
Добрый вечер! Написал программу на c# нужно переделать код так, чтобы использовались классы и была передача между ними Код моей...

Ввести последовательность и N целых чисел. Сохранить последовательность в файле. Отсортировать последователь
Ввести последовательность и N целых чисел. Сохранить последовательность в файле. Отсортировать последовательность методом выбора. ...

Задана последовательность N вещественных чисел. Отсортировать последовательность по убыванию методом выбор
И снова прошу помощи написать код. Задана последовательность N вещественных чисел. Отсортировать последовательность по убыванию...

Вставить в последовательность действительное число b так, чтобы последовательность осталась неубывающей
Дана последовательность действительных чисел a1 <= a2<= ... <=an вставить действительное число b так чтобы последовательность осталась...

Задана последовательность слов. Определить частоту вхождения каждого слова в последовательность.
Доделать программу, чтобы работала как надо Задана последовательность слов. Определить частоту вхождения каждого слова в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru