Size: a a a

Сообщество Python Программистов

2021 April 04

ПФ

Павел Фиделин... in Сообщество Python Программистов
#вопрос Написал функцию перевода из одной системы счисления в другую, как её можно ускорить? а то по таймингу не прохожу(
источник

ПФ

Павел Фиделин... in Сообщество Python Программистов
def convert(num, to_base=10, from_base=10):
   txt = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
   dd = 0
   rrr = []
   for _ in range(len(num)):
       dd += int(txt.find(num[_], 0,35))*from_base**(len(num)-1-_)
   while dd != 0:
       rr1 = int(dd) // to_base
       rr2 = int(dd) % to_base
       rrr.append(txt[rr2])
       dd = rr1
   ss = ''.join(rrr[::-1])
   return ss
источник

AM

Alexander Morozov in Сообщество Python Программистов
Вместо:
       rr1 = int(dd) // to_base
       rr2 = int(dd) % to_base
использовать divmod()
rr1, rr2 = divmod(dd, to_base)
источник

AM

Alexander Morozov in Сообщество Python Программистов
rrr можно заменить на строку:
rrr += txt[rr2]
источник

E

Egor in Сообщество Python Программистов
Что за нейминг то ебана
источник

E

Egor in Сообщество Python Программистов
Для перевода в 10 можешь юзать int("...", basis), он вернет значение в 10
источник

E

Egor in Сообщество Python Программистов
Для 2, 8, 16 можешь встроенные bin, oct, hex
источник

E

Egor in Сообщество Python Программистов
Для перевода из одной сс в другую, где одна сс - другая в n степени - используй соответствующие правила
источник

E

Egor in Сообщество Python Программистов
И опять же, нейминг. Хер поймешь потом, что такое txt. Делай from string import ascii_upper
источник

AM

Alexander Morozov in Сообщество Python Программистов
В теории символы цифр для систем с разрядностью > 16 могут быть и не GHIJKLMNOPQRS ...
источник

VD

Vlad Dimmer in Сообщество Python Программистов
Есть вообще возможность избавиться от двух последовательных циклов?

Ну и списковые включения вроде как быстрее работают, хотя выглядеть будет страшнее.
источник

AM

Alexander Morozov in Сообщество Python Программистов
Без двух циклов не обойтись для произвольной разрядности from и to. При одном цикле формирование числа из строки может отстать от формирования из числа строки.
источник

AM

Alexander Morozov in Сообщество Python Программистов
На счет скорости str vs list - согласен, но, учитывая, то, что помимо включения и извлечения есть другие операции с данными, желательно проверить экспериментально.
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Из любой в любую? Или из определённого набора в определённый набор?
источник

ПФ

Павел Фиделин... in Сообщество Python Программистов
Да, из любой в любую
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Как будешь записывать числа в 512-ричной системе счисления?
источник

НХ

Никита Хмель... in Сообщество Python Программистов
всем привет
чем посоветуете визуализировать конечный автомат? в networkx нету self loop (а он мне нужен обязательно)
источник

AT

Alexander T in Сообщество Python Программистов
4.1 против 4.7 у меня
https://pastebin.com/Y87ydXq3
источник

AT

Alexander T in Сообщество Python Программистов
^ из любой в любую
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Интересно, а будет ли там поддержка фи-ричной СС?)
источник