Жребий Крижановского
Версия для печати

Результаты соревнований

Результаты

Первые соревнования состоялись 19 мая 1999 года. В турнире 19 мая приняло участие 44 программы. В результате, после 5000 туров, места распределились следующим образом:

Место Очки    Программа  Автор
  1   4648      kk1.exe Кноп К.А.
  2   4632    mart3.exe Мартюгин Павел
  3   2440    mart2.exe Мартюгин Павел
  4   2268      kk3.exe Кноп К.А.
  5   2046   belov1.exe Белов Алексей
  6   1999  zhukov1.exe Жуков Василий
  7   1822      krr.com Игорь Красиков
  8   1802  zhukov3.exe Жуков Василий
  9   1711  snv_str.exe Васильев Стас
 10   1403  zhukov2.exe Жуков Василий
 11   1125     eon3.exe Ермоленко Олег
 12   1094    petr3.exe Петров Илья
 13   1001      yz2.exe Зайдельман Я.Н.
 14    997   savin1.exe Савин Антон
 15    946   savin2.exe Савин Антон
 16    770    petr2.exe Петров Илья
 17    718   Antig3.exe Максим Разин
 18    641   belov2.exe Белов Алексей
 19    513      yz0.exe Зайдельман Я.Н.
 20    362 snv_high.exe Васильев Стас
 21    280  lobkov1.exe Лобков Григорий
 22    240  gribov1.exe Грибов Михаил
 23    224  lobkov2.exe Лобков Григорий
 24    204      yz1.exe Зайдельман Я.Н.
 25    186      ov3.exe Овечкина Катя
 26    184  gribov3.exe Грибов Михаил
 27    139  lobkov2.exe Лобков Григорий
 28    118  gribov2.exe Грибов Михаил
 29     44  parfen1.exe Парфененков А.
 30      0      kk2.exe Кноп К.А.
 31      0     eon1.exe Ермоленко Олег
 32      0     eon2.exe Ермоленко Олег
 33      0  snv_low.exe Васильев Стас
 34      0   gosha1.exe Гуляев Игорь
 35      0   gosha2.exe Гуляев Игорь
 36      0   gosha3.exe Гуляев Игорь
 37      0    petr1.exe Петров Илья
 38      0 konoval1.exe Коновалов А.
 39      0 konoval2.exe Коновалов А.
 40      0 konoval3.exe Коновалов А.
 41      0    mart1.exe Мартюгин Павел
 42      0   belov3.exe Белов Алексей
 43      0  parfen2.exe Парфененков А.
 44      0  parfen3.exe Парфененков А.

Приведем также часть письма от автора победившей программы (Кноп К.А. - ведущий одноименнонго раздела в КомпьюТерре):

Предлагалось написать функцию от двух переменных, одна из которых - число участников, а вторая - номер тура. Сначала я начал думать над тем, как должна зависеть эта функция от номера тура, и понял, что не могу придумать ничего нетривиального. Иначе говоря, все, что приходило мне в голову и не использовало RND-датчиков, с большой вероятностью пришло бы в голову еще кому-нибудь, и наши программы просто либо работали бы синхронно, "забивая" друг друга, либо с 50% шансами чужой "блуждальщик" всегда бы выигрывал у моего. А работать с RND мне очень не хотелось - это значило бы заведомо отдавать себя на волю случая.

Поэтому я отказался от "блуждающих" алгоритмов - прежде всего из-за явной моей неспособности придумать разумную формулу для такого блуждания.

Оставалась только одна переменная величина, да и то, к моменту игры уже однозначно известная. Я решил, что моя "ставка" должна линейно зависеть от числа участников. Главное - прикинуть коэффициент пропорциональности C, после чего называть числа около N/C. В итоге я взял C=12, ибо в дюжине мне почудилась какая-то символичность, но с тем же успехом мог бы взять и 13 или 14...

Сначала я хотел "забить" три последовательных натуральных числа. N/C+1, N/C+2, N/C+3. Потом решил, что может произойти одно из двух - либо такая тактика будет давать много очков всем трем программам (т.е. они повыигрывают с одинаковой частотой), либо все три "пролетят" по какой-либо причине. Второго варианта мне хотелось избежать. И я решил, что из трех последовательных чисел я оставлю только большее, как дающее наиболее "весомый" вклад в успех, а два меньших числа сделаю фиксированными. Я поставил их на 3 и 4, сам не понимаю, почему - хотел поставить на 4 и 5... Ну да ладно.

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

На будущих чемпионатах, конечно, такие простые фокусы уже не пройдут. Придется придумывать что-то еще. Главное здесь - не умение писать программы, а фантазия и хитрость...


Тексты программ Константина Кнопа, представленные на турнир "Жребий Крижановского"

Program kk1;
var n,code: integer;
begin
  val(ParamStr(1),n,code);
  n:=4+(n div 12);
  halt(n);
end.

Program kk2;
begin
  halt(3);
end.

Program kk3;
begin
  halt(4);
end.

Для получения более подробных сведений Вы можете загрузить полный журнал турнира, а также программку для его просмотра. Кроме того, Вам понадобится поименный список всех участников.

Удачных стратегий!