Проблема: Генерировать большие двоичные строки (длина 2000+). Сделайте это быстро, так как эта функция generateRandom() будет вызываться в алгоритме 300 000 раз.
Попытка решения: Создайте 3 или 4 двоичных числа и добавьте их все 500 раз. Это ужасно медленно.
Сделайте один вызов random.random() и умножьте его на огромное количество. Преобразуйте в двоичный код один раз и сделайте это. Это работает для меньших чисел, но поскольку двоичная строка должна быть определенной длины, число для преобразования в двоичный файл должно быть действительно огромным (2 ** len (binString)).
Текущий код (работает для меньших номеров):
binaryRepresentation = ''
binaryRepresentation += bin(int(random.random() * (2 ** binLength)))[2:].zfill(binLength)
Ошибка в том, что мне нужна помощь: Этот вызов выдает "длинный int too large to convert to float" с большими числами. Есть ли способ сделать общий алгоритм более эффективным или сделать это преобразование большого числа числом в плавающее?
Спасибо!