Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

должность, уч. степень, звание



ГУАП

КАФЕДРА №

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

 

 

 

 

 

должность, уч. степень, звание

 

подпись, дата

 

инициалы, фамилия

 

ОТЧЕТ О ВЫПОЛНЕНИИ ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКИ

Номер варианта: 9

 
 

 

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР.

 

 

 

 

Калиниченко В.Н.

 

 

 

подпись, дата

 

инициалы, фамилия

Санкт-Петербург 2014


 

Задание №1 (Вариант 5): Составить алгоритм действий и решить. Даны три кучки камней, содержащих соответственно 2, 3 и 4 камня. За один ход разрешается или удвоить количество камней в меньшей кучке (если их две — то в каждой из них), или добавить по 1 камню в каждую из всех трех кучек. Выигрывает тот игрок, после хода которого во всех трех кучках суммарно становится не менее 23 камней. Игроки ходят по очереди. Выяснить, кто выигрывает при правильной игре — первый или второй игрок. Ответ обоснуйте.

Решение: В случае если игроки стараются выиграть и имеют возможность продумать свои действия, то становится понятно, что преимущество определенно на стороне одного из игроков. В пошаговых играх не редко игра идет в пользу игрока, совершающего первый ход, но в данном случае, сочетание правил игры и начальной позиции дают 100% преимущество в пользу второго игрока. Эту игру можно закончить минимум за 4 хода, и максимум за 5. И если расписать все возможные комбинации ходов(табл.1) можно увидеть, что все решающие ходы находятся на стороне второго игрока.

#

Возможные комбинации ходов

 

2 3 4

 

3 4 5

3 4 4

 

4 5 6

4 5 6

4 5 5

3 8 8

 

5 6 7

5 6 8

5 6 6

5 5 8

4 9 9

6 8 8

 

(21)

(23)

(22)

(24)

(20)

(22)

(21)

(28)

(25)

(26)

(25)

(28)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                 

Табл.1

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



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

Задание №2 (Вариант 6): Два игрока играют в следующую игру. На координатной плоскости в точке с координатами (2;3) стоит фишка. Игроки ходят по очереди. Ход состоит в том, что игрок перемещает фишку из точки с координатами (x,y) в одну из трех точек: (2x;y), (x,2y) или (x,y+2). Выигрывает тот игрок, после хода которого расстояние по прямой от фишки до начала координат (0,0) больше 13 единиц. Кто выигрывает — игрок, делающий ход первым, или игрок, делающий ход вторым?

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

Победа на четвертом ходе обеспечивается следованием схеме №1(см. ниже). Второму игроку достаточно на втором ходе выбрать вариант в соответствии с ходом первого игрока (пунктирные стрелочки), и далее закончить игру на четвертом.

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


 

Задание №3 (Вариант 7): Написать алгоритм программы, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x1, y1 – действительные числа) и определяется принадлежность точки некоторой области, включая ее границы. Область ограничена графиком y=f(x) и прямыми y= a, x=b и х=c.

По заданию можно судить, что для решения задачи нужно ограничить область плоскости некоторыми функциями (см. рис 2).

Рис. 2. График искомой области.

Для проверки попадания точки в две данные фигуры, последовательно проверим каждую из границ и в случае если все границы соблюдены мы можем быть уверены, что точка лежит в данных областях. Итак, нижней границей будет служить функция , левой границей – , правой – , а верхней . Теперь достаточно составить алгоритм и написать простенькую программу.


 

Начало

Ввод x1, x2 c клавиатуры

Вывод положительного результата на экран

Конец

Вывод отрицательного результата на экран

да

нет

&&

&&

&&

Алгоритм для выполнения задачи №3.

 

 

Текст программы на C/C++:

#include <stdio.h>

#include <math.h>

 

int main()

{

float x1,y1;

scanf("%f %f", &x1, &y1);

if ((x1>=2) && (x1<=7) && (y1>=0) && (y1<=sin(x1)+1))

printf("(%.2f,%.2f) - located on given area", x1, y1);

else

printf("(%.2f,%.2f) - not located on given area", x1, y1);

}

Вывод: Языки программирования высокого уровня очень хорошо подходят для решения прикладных и математических задач.

Задание №4 (Вариант 8): Вывести все десятичные числа A (0<А<500), в двоичной записи которых число нулей в 2 раза превосходит число единиц.

Решение: Для решения данной задачи отлично подойдет один из языков программирования высокого уровня. Задача сводится к тому во время отработки рекуррентной формулы нахождения двоичного числа найти количество единиц и нулей, а проверка условия займет не более двух строк. Все это повторить используя цикл с параметром.

Алгоритм

Конец

i

да

Вывод числа на экран

нет

d/=2

k*=10

нет

да

да

t++

f++

Начало

i=0…500

k=1; t=0; f=0; d=i

f==2*t

&& f!=0


:


 

Текст программы на C/C++:

 

#include <stdio.h>

int main()

{

for(int i=0; i<501; i++)

{

int k=1, t=0, f=0, d=i;

while (d)

{

if((d%2)==0)

f++;

else

t++;

d/=2;

k*=10;

}

if(f==2*t && f!=0)

printf("%3i ", i);

}

}


 

Задание №5 (Вариант 9): Решить логическую задачу. Примеры выполнения задания приведены в Приложении.

В театре готовились к постановке новой пьесы, и студенты решили пойти на премьеру. Двоим студентам было поручено заблаговременно купить билеты. Когда же дата премьеры была объявлена, оказалось, что все забыли, кому именно это было поручено. Студенты высказали ряд догадок. Возникли следующие предположения: Билеты должны были купить Андрей и Борис, Борис и Володя, Борис и Галя, Володя и Галя, Володя и Даша, Даша и Галя, Сергей и Даша.

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

 

Решение:

Представим предложенные учениками догадки в виде таблицы.

 

А+Б

Б+В

Б+Г

В+Г

В+Д

Д+Г

С+Д

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

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

 

А+Б

Б+В

Б+Г

В+Г

В+Д

Д+Г

С+Д

 

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

 

А

Б+В

Б+Г

В+Г

В+Д

Д+Г

С

 

Из чего следует, что за билеты отвечали: Андрей и Сергей.

 


Дата добавления: 2015-09-29; просмотров: 41 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
0оьт практическое занятие № 1 | 01Моя бабушка всегда звонит мне на день рождения.

mybiblioteka.su - 2015-2024 год. (0.023 сек.)