Тест по игровым стратегиям. 1. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может
а) добавить в любую кучу один камень;
б) увеличить количество камней в любой куче в четыре раза.
Игра завершается в тот момент, когда суммарное количество камней в двух кучах становится не менее 83. В начальный момент в первой куче было 5 камней, а во второй – S камней, 1 ≤ S ≤ 77.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Назовите минимальное значение S, при котором это возможно.
2.Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может
а) добавить в любую кучу три камня;
б) увеличить количество камней в любой куче в два раза.
Игра завершается в тот момент, когда суммарное количество камней в двух кучах становится не менее 61. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 61 камень или больше. В начальный момент в первой куче было 7 камней, а во второй – S камней, 1 ≤ S ≤ 53.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.
3.Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может
а) добавить в любую кучу два камня;
б) увеличить количество камней в любой куче в два раза.
Игра завершается в тот момент, когда суммарное количество камней в двух кучах становится не менее 75. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 75 камней или больше. В начальный момент в первой куче было 9 камней, а во второй – S камней, 1 ≤ S ≤ 65.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.
4. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может
а) добавить в кучу один камень;
б) увеличить количество камней в куче в два раза;
в) увеличить количество камней в куче в три раза.
Игра завершается в тот момент, когда количество камней в куче становится не менее 43. Если при этом в куче оказалось не более 72 камней, то победителем считается игрок, сделавший последний ход. В противном случае победителем становится его противник.
В начальный момент в куче было S камней, 1 ≤ S ≤ 42.
Найдите минимальное значение S, при котором Ваня выигрывает своим первым ходом при любой игре Пети.
using namespace std;
int main()
{
int a = 0, b = 0, c = 0;
int h = 0, g = 0, k = 0;
int j = 0, v = 0, l = 0;
cout << "a - chas" << "\n" << "b - minutes" << "\n" << "c - seconds" << "\n";
cin >> a >> b >> c;
cout << "h - chas" << "\n" << "g -minutes" << "\n" << "k - seconds" << "\n";
cin >> h >> g >> k;
j = ((a*60)*60)+(b*60)+c;
v = ((h*60)*60)+(g*60)+k;
l = v - j;
cout << l;
}
ответ:
округлением чисел в python занимается встроенная функция round.
round(number[, ndigits]) - округляет число number до ndigits знаков после запятой (по умолчанию, до нуля знаков, то есть, до ближайшего целого)
тут есть одна особенность, о которой нужно знать, и о которой часто забывают.
со школы многие привыкли, что, когда (n + 1) знак = 5, а последующие знаки равны нулю, округление производится всегда в большую по модулю сторону.
однако, как видно из примеров, в python это не так. здесь используется так называемое "банковское округление", то есть округление к ближайшему чётному.
на практике это оказывается не так уж и важно
что-то не так, правда? на самом деле, всё именно так, как и задумывалось. просто из-за проблем с точностью чисел с плавающей точкой это число чуть больше, чем 2.85, а потому округляется до 2.9