img img img img img img img img img img img img img img img img img img img img img img
Логотип Человек живет, пока думает.
Решайте задачи и живите долго!
Для участия в проекте необходимо
и достаточно зарегистрироваться!
Rss Регистрация || Вход
Вход
Diofant.ru
Картинка
Отражение Отражение Картинка Картинка
Рисунок
Rss

Задачи: Информатика   

Пожалуйста, не пишите нам, что вы не можете решить задачу.
Если вы не можете ее решить, значит вы не можете ее решить :-)
Показывать на странице:
Задачу решили: 9
всего попыток: 17
Задача опубликована: 12.11.12 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 1
сложность: 1 img
баллы: 100
Темы: игрыimg
Лучшее решение: TALMON (Тальмон Сильвер)

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

Проигрывает тот, кому камней не досталось, и кто поэтому не может сделать ход.

Мы рассмотрим наиболее популярную версию игры с тремя кучками камней.

Пусть начальная позиция описывается тройкой чисел (n1,n2,n3), где  n1,n2 и n3 - количество камней в каждой из трех кучек.

  • Позиция называется выигрышной, если первый игрок, правильно выбрав стратегию, может гарантировать свою победу.
  • Позиция называется проигрышной, если первый игрок при правильной игре второго всегда проигрывает.

Например, позиция (0,n,n) – проигрышная для любых n, ибо второй игрок всегда может выравнивать количество камней в двух оставшихся кучках, пока в них что-то остается. По этой же причине позиция (1,2,3) – тоже проигрышная, ибо второй игрок своим ходом всегда может создать позицию вида (0,n,n), например:

Первый игрок: (1,2,1)         Второй игрок: (1,0,1)

Первый игрок: (0,0,1)         Второй игрок: (0,0,0) – победа.

Подсчитайте, сколько существует проигрышных позиций вида (n,2n,3n), где n – натуральное число, не превышающее 1012.

Задачу решили: 4
всего попыток: 5
Задача опубликована: 19.11.12 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 1
сложность: 1 img
класс: 8-10 img
баллы: 100

Назовем натуральное число n мощным, если для его любого простого делителя p число n делится также на p2.

Назовем натуральное число n точной степенью, если оно является степенью другого натурального числа.

Назовем натуральное число n ахиллесовым, если оно мощное, но не является точной степенью. Например, числа 864 = 25•33 и 1800 = 23•32•52 — ахиллесовы.

Назовем натуральное число S сильно ахиллесовым, если и S, и φ(S) — ахиллесовы.  Здесь φ(S) означает функцию Эйлера. 

Например, число 864 — сильно ахиллесово число, поскольку φ(864) = 288 = 25•32, а число 1800 — ахиллесово, но не сильно ахиллесово, так как φ(1800) = 480 = 25•31•51.

Существует 2 трехзначных и 5 четырехзначных сильно ахиллесовых чисел, а восьмизначных насчитывается 396.

Найдите количество 18-значных сильно ахиллесовых чисел.

Задачу решили: 3
всего попыток: 8
Задача опубликована: 10.12.12 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 1
сложность: 1 img
класс: 8-10 img
баллы: 100

Рассмотрим бесконечную строку S, состоящую из записанных подряд натуральных чисел в десятичной записи:

S =1234567891011121314151617181920212223242...

Ясно, что десятичная запись каждого натурального числа n встретится в строке S бесконечно много раз. Будем отмечать, где именно встретились такие вхождения. Например, число 12 первый раз встретится, начиная с позиции 1 строки S, а второй раз — с позиции 14, и так далее.

Обозначим через f(n) номер позиции в строке S, с которого начинается n-ое вхождение числа n. Например, f(1)=1, f(5)=81, f(11)=235, а f(7780)=111111365.

Найдите ∑f(11k), где 1≤k≤6.

Задачу решили: 2
всего попыток: 3
Задача опубликована: 31.12.12 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 1
сложность: 2 img
баллы: 100
Темы: алгоритмыimg

 

Английский математик Джон Хортон Конвей изобрел множество математических развлечений, доставляющих не только удовольствие, но и пищу для серьезных размышлений. Одно из его изобретений – язык программирования FRACTRAN, о котором пойдет речь в данной задаче.

Память данных виртуальной машины языка FRACTRAN содержит одно единственное целое число, а программа представляет собой упорядоченную последовательность рациональных дробей. На каждом шаге выполнения программы машина просматривает эти дроби одну за другой слева направо и умножает каждую из них на число из памяти, пока произведение не окажется целым. Полученное целое число записывают в память вместо предыдущего. 

Вот, например, FRACTRAN-программа, предложенная Конвеем для получения последовательности простых чисел:

17/91, 78/85, 19/51, 23/38, 29/33, 77/29, 95/23, 77/19, 1/17, 11/13, 13/11, 15/2, 1/7, 55/1.

Записав в память исходное значение 2, получим в памяти ряд чисел в следующей последовательности:

15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, 910, 170, 156, 132, 116, 308, 364, 68, 4, 30, ..., 136, 8, 60, ..., 544, 32, 240, ...

Оказывается, степени двойки в полученной последовательности встречаются только с простыми показателями: 22, 23, 25, ..., и можно проверить, что данная последовательность будет содержать в порядке возрастания все степени двух с простыми показателями.

Заметим, что для получения 22 из исходного числа 2 потребовалось 19 шагов программы, и при этом три раза происходило умножение на дробь 13/11.

А сколько раз придется выполнить умножение на 13/11 при переходе от исходного числа 2 к 2111119?

 

 

Задачу решили: 3
всего попыток: 3
Задача опубликована: 14.01.13 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 1
сложность: 1 img
класс: 8-10 img
баллы: 100

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

Проигрывает тот, кто не может сделать очередной ход.

Позиция в Простом Ниме характеризуется тройкой неотрицательных целых чисел (a,b,c).

Как обычно, выигрышной позицией считается такая позиция, что при правильной стратегии очередной игрок может обеспечить себе победу. Остальные позиции называются проигрышными.

Можно подсчитать, что при 0≤a≤b≤c≤29 существует 651 проигрышная позиция.

Найдите, сколько существует проигрышных позиций при 0≤a≤b≤c≤20000.

Задачу решили: 4
всего попыток: 4
Задача опубликована: 04.02.13 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 1
сложность: 2 img
баллы: 100

Рассмотрим игру на прямоугольной клетчатой доске. Одна клетка доски не занята, на остальных стоят фишки. Каждым ходом игрок передвигает на свободную клетку одну из соседних (по вертикали или горизонтали) фишек. В начале игры пустая клетка находится в правом нижнем углу, в левом верхнем углу находится красная фишка, а на остальных клетках стоят синие фишки. Цель игры — переместить красную фишку в правый нижний угол за наименьшее количество ходов. На рисунке ниже показана последовательность ходов для доски 2 х 2.

eu313-1.gif

Пусть S(m,n) -минимальное количество ходов, необходимое для перемещения красной фишки в правый нижний угол для доски m х n. Можно проверить, что S(5,4) = 25.

eu313-2.gif

Существует всего 256 различных досок с сторонами m и n, не превышающими 100, для которых S(m,n) является квадратом натурального числа.

Подсчитайте количество досок со сторонами m и n, не превышающими 1010, для которых S(m,n) является квадратом натурального числа.

Задачу решили: 4
всего попыток: 4
Задача опубликована: 18.03.13 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 1
сложность: 2 img
баллы: 100
Лучшее решение: Shamil

Обозначим через N(i) наименьшее натуральное число n,  факториал которого n! делится на (i!)1234567890 .

Сумма N(i) для всех составных натуральных i, не превышающих 1000, равна 520804933959105.

Найдите сумму N(i) для всех составных натуральных i, не превышающих 1 000 000. В качестве ответа укажите 18 младших разрядов результата.

Задачу решили: 1
всего попыток: 1
Задача опубликована: 22.04.13 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 2
сложность: 2 img
баллы: 100

Обозначим через f(n) количество способов, которыми можно построить башню 3×3×n из блоков 2×1×1.

Блоки можно вращать произвольным образом. При этом башни, отличающиеся поворотом или симметрией, считаются различными.

Например, 

f(2) = 229,

f(4) = 117805,

f(6) = 64647289,

f(63) mod 123456789 = 75292539,

f(66) mod 123456789 = 56150940.

Здесь a mod q означает остаток от деления a на q.

Найдите f(612345) mod 123456789.

 
Задачу решили: 1
всего попыток: 4
Задача опубликована: 20.05.13 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 2
сложность: 3 img
баллы: 100
Темы: алгоритмыimg

Широко известна игра, где один из участников задумывает целое число, а другой пытается его угадать, задавая вопросы. В этой задаче исследуется вариант такой игры, когда задумывают натуральное число из промежутка [1,n], а в качестве вопросов разрешается называть натуральные числа из этого же интервала. При этом стоимость каждого вопроса равна названному числу. Допускаются ответы трех видов:

  1. Ты назвал число меньше задуманного.
  2. Ты угадал!
  3. Ты назвал число больше задуманного.

Требуется определить  задуманное число и при этом минимизировать суммарную стоимость вопросов (в дальнейшем – цена игры). Для данного числа n назовем стратегию оптимальной, если она минимизирует цену игры для самого неудачного задуманного числа.

Например, при n=3 наилучшим первым ходом будет число "2". После этого при любом ответе можно будет точно определить задуманное число, поэтому больше вопросов не потребуется, и цена игры будет равна 2.

Если n=8, мы могли бы выбрать в качестве стратегии "бинарный поиск". Если первым ходом мы назовем число "4", а задуманное число будет больше, чем 4, нам потребуется еще два вопроса. Пусть вторым ходом мы называем число "6". Если задуманное число больше, чем 6, нам потребуется еще один ход, скажем, "7", и цена игры составит 4+6+7=17.

Мы можем существенно улучшить нашу стратегию для n=8, если первым ходом назовем число "5". Если задуманное число больше, чем 5, то вторым ходом мы можем назвать число "7", и этого будет достаточно для нахождения задуманного. Тогда цена игры составит 5+7=12. Если же задуманное число меньше, чем 5, то для его определения достаточно  вторым и третьим ходом назвать "3" и "1", а цена игры составит 5+3+1=9. Поскольку 12 > 9, в худшем случае цена игры при этой стратегии будет равна 12. Получается, что данная стратегия более выгодна, чем предыдущая, и оказывается, что она оптимальна, то есть никакая другая стратегия не может гарантировать для n=8 результат меньший, чем 12.

Пусть C(n) – максимальная цена игры, которая может получиться для оптимальной стратегии в худшем случае. 

Тогда C(1) = 0, C(2) = 1, C(3) = 2 и C(8) = 12.

Можно подсчитать, что  C(100) = 400.

Найдите С(500000).

 
Задачу решили: 0
всего попыток: 0
Задача опубликована: 10.06.13 08:00
Прислал: admin img
Источник: Проект "Эйлер" (http://projecteuler.net)
Вес: 1
сложность: 2 img
баллы: 100

На каждую клетку доски N×N положили по шашке, окрашенной в белый цвет с одной стороны и в черный цвет с другой.

Каждым ходом разрешается перевернуть одну шашку, а вместе с нею N-1 шашек, стоящих  на одной с ней вертикали, и N-1 шашек, стоящих  на одной с ней горизонтали. Таким образом, каждым ходом игрок должен перевернуть 2×N-1 шашку. Игра заканчивается, когда все шашки будут стоять белой стороной вверх. Ниже приведен пример игры для доски 5×5.

eu331.gif  

Несложно проверить, чтобы закончить игру из данной начальной позиции, нужно как минимум 3 хода.

Пусть строки и столбцы перенумерованы целыми числами от 0 до N-1.

Построим на доске N×N начальную конфигурацию CN. Для этого на клетку с координатами x и y положим шашку черной стороной вверх, если (N-1)2≤x2+y2<N2, и белой стороной вверх в противном случае. Конфигурацию C5 мы видели в приведенном примере.

Пусть T(N) – минимальное количество ходов, необходимых для окончания игры из начального положения CN (если это невозможно T(N) = 0).

Ясно , что T(1)=T(2)=1. Мы видели, что T(5)=3. Можно проверить, что T(10)=29, а T(1000)=395253.

Найдите сумму T(k!) для 1≤k≤12.

 
 
Внимание! Если Вы увидите ошибку на нашем сайте, выделите её и нажмите Ctrl+Enter.