Решение головоломки Ж. Арсака
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: вид дипломной работы, красная книга доклад
| Добавил(а) на сайт: Jeskin.
1 2 3 4 5 6 | Следующая страница реферата
Решение головоломки Ж. Арсака
Выполнила ученица 11 А класса Коробова Тамара Аркадьевна
Муниципальное общеобразовательное учреждение «Лицей №43»
Саранск, 2004
Моя работа будет посвящена решению головоломки, условие которой находится в книге Ж.Арсака «Программирование игр и головоломок».
Условие головоломки таково:
Выбрали два натуральных числа большие 1 и меньшие 100. Значение их произведения сообщили господину Р, а значение суммы - господину S (причем, ни один из них не знает какое число сообщили другому). Далее между господином Р и господином S произошел такой диалог:
Господин Р: Я не могу найти эти два числа.
Господин S: Я знаю, что Вам это и не удалось бы.
Господин Р: Ах так. Ну тогда я их знаю.
Господин S: Ну тогда и я тоже их знаю.
Этим диалогом загаданные числа «вычисляются» однозначно.
Я составила программу на языке Pascal, которая «анализирует» высказывания господина Р и господина S и поэтому, естественно, состоит из 4 частей:
1) первая «отбрасывает» пары, состоящие из простых чисел;
2) вторая «отбрасывает» из оставшихся пар такие, сумма которых может быть представлена в виде двух простых слагаемых;
3) третья - те пары чисел, произведение которых встречается у какой-нибудь другой пары чисел, которая, кстати, тоже будет отброшена;
4) четвертая - те пары чисел, сумма которых встречается у какой-нибудь другой пары чисел, которая, кстати, тоже будет отброшена.
Теперь о самой программе: для хранения информации о парах чисел я использую двумерный булевский массив b, в который на соответствующие места я буду записывать «истину», если пара чисел удовлетворяет условию задачи на данном шаге и, естественно, «ложь», если – нет. Кстати, чтобы числа i, j и j, i не считались дважды перебор идет только по половине таблицы.
Булевская процедура prost будет «истиной», если число х – простое и «ложью», если – составное.
Остальные пояснения находятся в ремарках самой программы.
const n=99;
m=(n-1)*n div 2;
var b: array[2..250,2..250] of boolean;
i,j,k,l,p,vs1,vs2,vs3,vs4,sum,s: word;
fin: boolean;
function prost(x: word): boolean; {истина, если х - простое число}
Рекомендуем скачать другие рефераты по теме: изложение 7 класс, реферати українською.
Категории:
1 2 3 4 5 6 | Следующая страница реферата