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
Картинка
Отражение Отражение Картинка Картинка
отражение
Лента событий: avilow предложил задачу "«Собака» и «параллелепипед»" (Математика):
Рисунок
Rss

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

Пожалуйста, не пишите нам, что вы не можете решить задачу.
Если вы не можете ее решить, значит вы не можете ее решить :-)
Показывать на странице:
Задачу решили: 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?

 

 

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

 eu315.gif

Сэм и Макс решили сделать из электронных часов прибор для демонстрации последовательности математических вычислений. Для испытания они запрограммировали его на расчет однозначной суммы цифр натуральных чисел. Напомним, что для вычисления однозначной суммы цифр суммируют все десятичные цифры числа, затем все десятичные цифры результата, и так далее, пока не получится однозначное число.

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

Например, если взять число 137, индикатор покажет последовательность "137"→"11"→"2", а затем погаснет до прихода нового числа.

Каждая цифра на индикаторе состоит из нескольких отрезков, как показано на рисунке.

Например, цифра "8" использует семь отрезков – четыре вертикальных и три горизонтальных, цифра "1" состоит из двух вертикальных, а именно, правого верхнего и правого нижнего, а цифра "4" – из четырех отрезков: левого верхнего, правого верхнего и правого нижнего вертикальных и горизонтального, лежащего посередине.

Индикатор потребляет электроэнергию, только когда отрезки включаются или выключаются. Так, включение или выключение числа 2 требует пяти единиц энергии, а числа 7 – четырех единиц энергии.

Сэм и Макс предложили разные конструкции прибора.

Работа прибора Сэма показана на картинке слева. Когда  этот прибор получает число 137, оно отображается на индикаторе, затем полностью гаснет, затем прибор показывает число 11, которое также гаснет, и, наконец, загорается число 2, которое тоже гаснет

В таблице приведен расчет энергопотребления прибора Сэма для числа 137.

"137":(2 + 5 + 4) ?× 2 = 22 переключений ("137" включается и выключается).

"11":(2 + 2) × 2 = 8 переключений ("11" включается и выключается).

"2":(5) × 2 = 10 переключений ("2" включается и выключается).

Всего получается 40 переключений и, соответственно, тратится 40 единиц энергии.

Прибор Макса (изображен справа) работает по-другому. Он не выключает каждый раз весь индикатор, а выбирает только те отрезки, которые не понадобятся для следующего числа.

Вот, как он будет работать с числом 137:

"137":2 + 5 + 4 = 11 переключений (включение трех цифр числа "137"), 7 переключений (выключение отрезков, не нужных для числа "11"). 0 переключений (число "11" уже и так горит)

"11":3 переключения (выключение первой единички и нижней части второй единички; верхняя часть остается гореть, поскольку она нужна для цифры "2").

"2":4 переключения (включение оставшихся отрезков цифры "2"), 5 переключений (выключение цифры "2").

Итого: 30 переключений.

Понятно, что прибор Макса тратит меньше энергии. Так, при подсчете однозначной суммы цифр для числа 137 экономия составляет 10 единиц энергии.

Найдите общую экономию энергии при подсчете однозначной суммы цифр для всех простых чисел, не превышающих  2×107.

Задачу решили: 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).

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

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

Перед тем, как прыгнуть, лягушка квакает. 

Если номер сектора, в котором сидит лягушка, является простым числом, она с вероятностью 2/3 квакает "P" и с вероятностью 1/3 квакает "N".

Если номер сектора, в котором сидит лягушка, не является простым числом, она с вероятностью 2/3 квакает "N" и с вероятностью 1/3 квакает "P".

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

Результат представьте в виде несократимой дроби, а в качестве ответа укажите ее числитель.

 
Задачу решили: 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.

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

Вообразите бесконечный в оба конца ряд чаш, перенумерованных целыми числами.

В некоторых чашах лежат бобы. Разрешается делать ходы следующего вида: взять два боба из одной чаши и разложить их в две соседние. Игра заканчивается, когда сделать ход невозможно.

В примере на рисунке в две соседние чаши положили 2 и 3 боба, а остальные чаши оставили пустыми. Как видно, такую игру можно закончить за 8 ходов.

 eu334.gif

Рассмотрим последовательность целых чисел bi следующего вида:

b0 = 0, b1 = 289, b2 = 145

bi = (bi-1 + bi-2 + bi-3) mod 2013,

где x mod y означает остаток от деления x на у.

Пусть количество бобов в двух соседних чашах определяется числами b1 = 289 и b2 = 145, а остальные чаши в начальном положении пусты. В этом случае игру можно закончить за 3419100 ходов.

Подсчитайте, сколько ходов потребуется для завершения игры , если в начальном положении в чашах с номерами от 1 до 1500 лежит b1, b2, ... b1500 бобов, соответственно, а остальные чаши пусты.

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

"Передур же поехал дальше долиной реки, вдоль которой расстилались луга. И на одном берегу реки он увидел стадо белых овец, а на другом - стадо черных. И как только одна из белых овец блеяла, черная овца переплывала реку и становилась белой. Когда же блеяла черная овца, одна из белых овец переплывала реку и делалась черной"
Передур, сын Эвраука

Первоначально каждое стадо состоит из n овец. Каждая овца, независимо от масти, может заблеять в очередной раз. Передур стремится максимизировать количество черных овец. Для этого он может прогонять прочь любое количество белых овец, но делать это он может лишь после того, как заблеяла очередная овца и до того, как овца с противоположного берега вошла в реку.
Пусть E(n) – ожидаемое количество черных овец, которое останется у Передура при оптимальной стратегии. Например, E(5) ≈ 6.871346…
Найдите наименьшее n, для которого E(n)>20000.

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

Полем игры из этой задачи является полоска из n клеток, а фишками — монеты.
Одна из этих монет — серебряный доллар — ценная, а остальные — медные — ценности не представляют. Игроки могут совершать ходы двух типов:
1. Сдвинуть любую монету влево на одну или несколько клеток. При этом поставить монету можно только на свободную клетку, и перескакивать через занятые клетки нельзя.
2. Забрать с доски монету, ближайшую к левому краю.
Если ходов первого типа нет, игрок обязан забрать самую левую монету.
Выигрывает тот, кто заберет серебряный доллар.

eu344.gif

Выигрышной называется позиция, при которой очередной игрок, правильно выбирая ходы, может обеспечить себе победу независимо от действий второго игрока. Остальные позиции называются проигрышными.
Пусть L(n,c) – количество проигрышных позиций для поля из n клеток, на которое расставляют c медных монет и один серебряный доллар.
Можно проверить, что L(10,3)=150 и L(103,13)= 32792060838490304.
Найдите остаток от деления L(1000003,103) на 1000003.

Задачу решили: 9
всего попыток: 18
Задача опубликована: 02.12.13 08:00
Прислал: Rep img
Вес: 1
сложность: 3 img
баллы: 100
Темы: алгоритмыimg
Лучшее решение: mikev

Степени двойки, как известно, редко начинаются с цифры 9 (см. задачу 316). Так, первый раз это случается только для 53-й степени (253 = 9007199254740992). С двух девяток подряд начинается 93-я степень, а с трех девяток - только 2621-я.

Найдите минимальный показатель степени n такой, что десятичная запись числа 2n начинается с десяти девяток подряд.

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

Известно, что некий вирус поражает 2% овец. Ветеринару нужно выявить зараженных животных в стаде из 25 голов. При этом в его распоряжении имеется достаточно дорогой, но очень чувствительный метод анализа, позволяющий обнаруживать инфекцию в крови при крайне низких ее концентрациях.

Чтобы сэкономить дорогостоящие реактивы, ветеринар решил не проверять каждую овцу, а разработал следующую программу действий:
Он разбил стадо на 5 групп по 5 овец в каждой. Пробы крови для каждой группы были объединены и проанализированы. Затем, если в объединенной пробе вирус не обнаружен, все овцы из данной группы считаются здоровыми. В противном случае анализируются пробы крови для каждого из пяти животных группы.
Поскольку вероятность заражения отдельной овцы равна 0,02, первый тест для каждой группы даст
• Отрицательный результат с вероятностью 0,985 = 0,9039207968. Для такой группы дополнительные тесты не понадобятся.
• Положительный результат с вероятностью 1 - 0,9039207968 = 0,0960792032. Для такой группы потребуется проанализировать еще 5 отдельных проб.
Тогда ожидаемое количество анализов для каждой группы составит 1 + 0,0960792032 × 5 = 1,480396016, а для всего стада – 1,480396016 × 5 = 7,40198008 тестов, то есть экономия составит более 70%!
Однако это не предел. Алгоритм можно еще усовершенствовать следующим образом:
• Сначала можно проанализировать объединенную пробу для всех 25 овец. Легко проверить, что примерно в 60,35% случаев результат будет отрицательный, и дальнейшее исследование не потребуется.
• Если групповая проба для 5 овец была положительной, и первые четыре овцы из группы оказались здоровы, то пятую можно не проверять – она наверняка инфицирована.
• Можно попробовать поварьировать размер и количество групп. Это позволит минимизировать ожидаемое количество анализов.
Чтобы не усложнять задачу, мы несколько ограничим круг рассматриваемых алгоритмов. Мы примем следующее дополнительное правило: если проанализирована объединенная проба для группы овец, то овцы, не входящие в данную группу, не исследуются, пока не поставлен окончательный диагноз каждой овце из данной группы.
Оставаясь в рамках данного правила, мы можем найти оптимальную стратегию, позволяющую ограничиться всего 4,155452 тестами в среднем для стада из 25 овец и вероятности заражения 0,02.
Обозначим через T(s,p) ожидаемое количество тестов при использовании оптимальной стратегии, когда стадо состоит из s овец, а вероятность заражения отдельной овцы равна p.
Тогда T(25, 0,02) ≈ 4,155452 и T(25, 0,10) ≈ 12,702124.
Найдите p, для которого T(10000, p)=5000. Результат умножьте на миллион и округлите вниз до целого.

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