Ускорьте вложенные циклы Python2 с помощью XOR
Ответ вопрос помечен как дубликат неправильный и не удовлетворяет мои потребности.
Мой код предназначен для вычисления хеша из серии чисел.
Проще понять структуру в виде матрицы. Если у меня 16 номеров, начиная с 29, структура будет: (начало = 29, длина = 4)
29, 30, 31, 32,
33, 34, 35, 36,
37, 38, 39, 40,
41, 42, 43, 44
Данный алгоритм указывает, что хеш будет XOR чисел, выделенных жирным шрифтом:
29, 30, 31, 32, //,
33, 34, 35, //, 36,
37, 38, //, 39, 40,
41, //, 42, 43, 44
Hash =29^30^31^32^33^34^35^37^38^39
=54
Мой код:
def answer(start, length):
val=0
c=0
for i in range(length):
for j in range(length):
if j < length-i:
val^=start+c
c+=1
return val
Время, необходимое для вычисления больших значений, таких какanswer(2000000000,10**4)
это слишком много.
Ограничения:
Py2.7.6Только стандартные библиотеки, за исключением bz2, crypt, fcntl, mmap, pwd, pyexpat, select, signal, termios, thread, time, unicodedata, zipimport, zlib.Ограниченное время для вычислений.В настоящее время вычисление параметров теста (неизвестно мне) выдает ошибку тайм-аута.
Как можно улучшить скорость моего кода для больших значений?