Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Перевод числа в троичную систему счисления питон: помощь с кодом

  1. Перевод числа в троичную систему счисления питон: помощь с кодом

    Привет, коллеги! Мне нужно перевести число в троичную систему счисления с помощью Python. Я пытаюсь сделать это для проекта, и немного застрял. В интернете вроде есть информация, но с моим кодом что-то явно не так. Подскажите, пожалуйста, рабочий пример кода для этого? Буду очень благодарен за помощь!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Можно использовать рекурсивный алгоритм для перевода числа в троичную систему счисления. Вот пример кода на Python:

    Программный код:

    def to_ternary
    (n):

        if 
    3:

            return 
    str(n)

        else:

            return 
    to_ternary(// 3) + str(n % 3)



    number 10

    ternary 
    to_ternary(number)

    print(
    f'Ternary of {number} is {ternary}'
    Переобразование происходит путём деления числа на 3 до тех пор, пока результат не станет меньше 3, затем собираем оставшиеся части в строку.

  4. Цитата Сообщение от NebulaDreamer
    Привет! Можно использовать рекурсивный алгоритм для перевода числа в троичную систему счисления. Вот пример кода на Python:

    Программный код:

    def to_ternary
    (n):

        if 
    3:

            return 
    str(n)

        else:

            return 
    to_ternary(// 3) + str(n % 3)



    number 10

    ternary 
    to_ternary(number)

    print(
    f'Ternary of {number} is {ternary}'
    Переобразование происходит путём деления числа на 3 до тех пор, пока результат не станет меньше 3, затем собираем оставшиеся части в строку.
    Хотелось бы узнать, на какой алгоритм ты ориентировался? Вроде слишком сложно для простого перевода в троичную систему.

  5. Есть вариант попроще, можно использовать цикл:

    Программный код:

    def int_to_ternary
    (n):

        
    result ''

        
    while 0:

            
    result str(3) + result

            n 
    //= 3

        
    return result or '0'



    print(int_to_ternary(10)) 
    Может, стоит попробовать этот способ?

  6. Цитата Сообщение от Яблоня
    Есть вариант попроще, можно использовать цикл:

    Программный код:

    def int_to_ternary
    (n):

        
    result ''

        
    while 0:

            
    result str(3) + result

            n 
    //= 3

        
    return result or '0'



    print(int_to_ternary(10)) 
    Может, стоит попробовать этот способ?
    Цикл выглядит понятнее, но что произойдет, если ввести отрицательное число? Нужно учесть и такие случаи.

  7. Если разобраться в теории, то троичная система счисления — это тоже самое, что и десятичная, только основание равно 3.

    Так что нам просто надо постоянно делить и складывать остатки. Вот код:

    Программный код:

    def convert_to_ternary
    (n):

        if 
    == 0:

            return 
    '0'



        
    ternary ''

        
    while n:

            
    ernary str(3) + ternary

            n 
    //= 3

        
    return ternary



    print(convert_to_ternary(10))   # Output: 101 
    Попробуй, должно сработать.

  8. Цитата Сообщение от OrbMaster
    Если разобраться в теории, то троичная система счисления — это тоже самое, что и десятичная, только основание равно 3.

    Так что нам просто надо постоянно делить и складывать остатки. Вот код:

    Программный код:

    def convert_to_ternary
    (n):

        if 
    == 0:

            return 
    '0'



        
    ternary ''

        
    while n:

            
    ernary str(3) + ternary

            n 
    //= 3

        
    return ternary



    print(convert_to_ternary(10))   # Output: 101 
    Попробуй, должно сработать.
    Интересное объяснение! Но, может, добавим обработку для входных значений типа float?

  9. Можно проще: Python умеет работать с произвольными системами счисления через форматирование строк.

    Вот краткий способ:

    Программный код:

    def ternary
    (n):

        return 
    format(n'o').replace('4''2').replace('5''2').replace('6''2'# Примерно



    print(ternary(10)) 
    Это, конечно, не самый чистый метод, но если надо быстро — подойдёт.

  10. Цитата Сообщение от Зевс
    Можно проще: Python умеет работать с произвольными системами счисления через форматирование строк.

    Вот краткий способ:

    Программный код:

    def ternary
    (n):

        return 
    format(n'o').replace('4''2').replace('5''2').replace('6''2'# Примерно



    print(ternary(10)) 
    Это, конечно, не самый чистый метод, но если надо быстро — подойдёт.
    Ну не знаю, костыль вроде. Хотя, если время поджимает, можно и так попробовать.

Страница 1 из 2 12 ПоследняяПоследняя