IlyaCk's blog

By IlyaCk, history, 4 years ago, In Russian

Под "header-ами&footer-ами" понимаю описанное тут.

Кажется совершенно логичным использовать именно такой подход, в частности (но не только) в ситуациях, когда хотим в задаче на какую-то структуру данных подсовывать программе участника огромные размеры входных данных, но не~тратить время на их реальное считывание из входного файла, а генерировать в части, написанной жюри, согласно указанным в настоящем входном файле размерам и некоторым seed-ам. Это, по-видимому, лучше, чем когда генератор описывается в условии и требуется, чтоб участники сами его реализовали в своей программе (и потому, что наименее опытные участники не~нагружаются мутной и непонятной им работой, и потому, что наиболее опытные участники получают меньше возможностей не~решать задачу по сути, а искать, как обойти эту суть, изучив особенности генератора).

Но есть ли какие-то стандартные приёмы, сформулированные best practices и т.д. в вопросе того, как лучше поступать, чтоб гарантировать одинаковость генераторов в header-ах&footer-ах разных языков программирования? Или, может вдруг, есть выводы и practices, показывающие, что гарантировать надо не~одинаковость данных, а что-то другое? Есть ли, например, какой-то набор реализаций на разных языках программирования генераторов случайных чисел, о которых с достаточной мерой уверенности известно, что они при одинаковых seed-ах дают одинаковые последовательности?

Правильно ли я понимаю, что в подавляющем большинстве таких задач следует ожидать, что Python будет проигрывать по быстродействию плюсам, паскалю и даже джаве значительно сильнее, чем в среднем? Я ещё не пробовал, но, учитывая "Видимо, глобальная область видимости плохо влияет на выполнение программы", "keep namespace clean" и "Python accesses local variables much more efficiently than global variables.", следует ожидать ведь именно этого? Ведь в задачах с header-ами&footer-ами участник может хранить что-то своё между разными запусками его функций только в глобальных переменных? Или я что-то упускаю?

И вообще, кто что скажет?

  • Vote: I like it
  • +22
  • Vote: I do not like it