Pull to refresh

Comments 30

Легче всего решается вторая:
Заголовок спойлера
>>> for a in range(1,1000):
… for b in range(1,1000):
… for c in range(1,1000):
… abc = a*b-c
… bca = b*c-a
… cab = c*a-b
… if bin(abc).count(«1»)==1 and bin(bca).count(«1»)==1 and bin(cab).count(«1»)==1:
… print a, b, c

1 1 2
1 1 3
1 1 5
1 1 9
1 1 17
1 1 33
1 1 65
1 1 129
1 1 257
1 1 513
1 2 1
1 3 1
1 3 11
1 5 1
1 5 13
1 9 1
1 11 3
1 13 5
1 17 1
1 19 27
1 25 41
1 27 19
1 33 1
1 41 25
1 65 1
1 113 145
1 129 1
1 145 113
1 257 1
1 481 545
1 513 1
1 545 481
2 1 1
2 2 2
2 2 3
2 2 5
2 3 2
2 5 2
2 6 11
2 11 6


это ж математическая олимпиада, а не пргограммистская, вряд ли у них что-то сложнее калькулятора была )
спасибо за «слив» «спойлера» :) а то решил 1а и начал думать как вторая задача может быть проще…
тут указание на подсказку для 1а
условие пункта «б» явно намекает на вид решений пункта а :)
думаю, что и б решил, но как-то слишком «просто»
вообще, это был тролололинг в связи с публикацией на хабре.
но, похоже, слишком толстый…
А -1 это степень двойки? А -2?
а вообще использование bin+count по полученной строке не смутило, не?

код писался специально под newbie, через stackoverflow-driven.
Зачастую в таких задачах подразумевается, что разные числа обознаются разными буквами, поэтому решив данную задачу, вы поймете, что тройка чисел, удовлетворяющая условию второй задачи, всего одна.
Так он вообще не то понаходил. У него -1 вдруг стал степенью двойки. Программер-индус. Не иначе.
За три минуты программистское решение «влоб»:
Заголовок спойлера
#!/usr/bin/perl -w

findSol();

sub findSol
{
  my $m = 1000;
  for (my $a = 1; $a < $m; $a++)
  {
    for (my $b = $a + 1; $b < $m; $b++)
    {
      for (my $c = $b + 1; $c < $m; $c++)
      {
        print "$a $b $c\n" if(IsPower2($a*$b - $c) && IsPower2($b*$c - $a) && IsPower2($c*$a - $b));
      }
    }
  }
}
sub IsPower2
{
  my ($t) = @_;
  return 0 if ($t <= 1);
  return 1 if ($t == 2);
  return (0 == ($t & ($t - 1)));
}

Ну а математическое, покажет почему тройка единственная.
не, а правда, а 2,6,11 чем не понравилась решению?
К сожалению, в невнимательности. Почему-то понял «неотрицательное число», как положительное. С другой стороны, из-за этого оценка сверху увеличивается. Ну и решать, немного, проще, если n > 0.
У вас IsPower2 возвращает ложь на единицу, но в задаче единица степенью двойки является (2^n, где n — не отрицательное)
Поэтому удивляет минус datacompboy, 2 6 11 подходит.
Есть такие тройки, как 3,5,7 и 2,6,11. Ну, и 2,2,2, конечно.
Шестая задача мне сложной не показалась. А со второй пока справиться никак не могу. В общем, пока за 3 часа — 2 задачи (1 и 6).
да, именно поэтому их три:
2,2,2
2,6,11
3,5,7
5 июля в Чианг-Мае (Таиланд) завершилась 56-я Международная математическая олимпиада. Первое место заняли США, второе — Китай, третье — Южная Корея, четвертое — Северная Корея, пятое — Вьетнам, шестое — Австралия, седьмое — Иран.

А место России?
Забавно, безобидный вроде вопрос, а заминусили:
Команда России заняла 8 место
В индивидуальном зачете 25 (я посчитал с нуля почему-то, поэтому получилось 24 :) ) место занял представитель России Sergei Norine
Впервые за пол века ни одной золотой медали…
Российская Федерация столько не существует, ей всего 24 года
Что-то я не понял. CIS в 92-м году это что? Те, кто хотел бы выступать за СССР и при этом не попал в команду России?
Саму олимпиаду я помню, в Измайлово проходила.
И почему «не СССР»? В СССР получили примерно 37% от возможных золотых медалей (считать трудно из-за переменного количества участников). В России — 64.5% — почти вдвое больше :)
Alexander Gunning (Австралия) — 36

Да-да, Австралы — мы такие.
Aussie, Aussie, Aussie, Oi Oi Oi!
А никого не удивило, что Северная Корея, которую показывают такой отсталой и недоразвитой, при этом заняла !4 место?
а меня удивило, что в топ 7 лучших математиков — 5 азиатов и 2 европеоида
Удивительно, что 2 европеоида. Тенденция такая.
Sign up to leave a comment.

Articles

Change theme settings