dzz: Dizzy の冬 (Default)
dzz ([personal profile] dzz) wrote2007-06-21 11:42 am
Entry tags:

Давненько не брал я в руки шашек!

Лёгким движением руки ускорил чужой код на питоне примерно в 60 раз ;)))

Было:

rows = [] cols = [] for key in values.keys(): row, col = key if not col in cols: cols.append(col) if not row in rows: rows.append(row) n_rows = max(rows) n_cols = max(cols)
Стало:
n_rows = 0 n_cols = 0 for key in values.keys(): row, col = key if row > n_rows: n_rows = row if col > n_cols: n_cols = col


В общем, типическое "Кто так пишет..." :)))

(Anonymous) 2007-06-23 10:41 am (UTC)(link)
А если value равно, например, 3,234634634E+45 или 7,43524395847523489E+20?
Может, сразу, ввести определение, что все числа, после некого, чётные?
Иначе пользователь алгоримта удавится ждать результата.

[identity profile] dzz.livejournal.com 2007-06-23 01:01 pm (UTC)(link)
> Иначе пользователь алгоритма удавится ждать результата.

Дык, в этом-то и вся прелесть :)

[identity profile] dzz.livejournal.com 2007-06-23 01:13 pm (UTC)(link)
Разумеется, числа вида 3,234634634E+45 будут по определению чётными, т.к. разрядность мантиссы МЕНЬШЕ 45 знаков, т.е. в конце имеется энное количество нулей.

Речь, всё же, идёт о числах меньше maxint :)