Практика программирования (Бейсик, Си, Паскаль)



         

Задачи, советы и ответы - часть 17


FOR K=0 TO 35: A(K)=K: PRINT USING "####";A(K); : NEXT К

FOR J=0 TO 4

MIXER A()

PRINT "Перетасованная колода:"

FOR K=0 TO 35: PRINT USING "####";A(K); : NEXT К NEXT J END

SUB MIXER(B() AS INTEGER) DEFINT A-Z

RANDOMIZE INT(32767*RND)

FOR J=0 TO 10000

I=INT(35*RND+.5)

TMP=B(0)

B(0)=B(I)

B(I)=TMP

NEXT J

END SUB

Программа 4_10.с

#include <stdlib.h>

#include <conio.h>

void mixer(char *b);

main()

{

char j,k, a[36];

clrscr();

printf("\n Упорядоченная колода:\n");

for (k=0; k<36; k++) {

a[k]=k;

printf("%4d",a[k]); }

for(j=0; j<5; j++) {

mixer(a);

printf("\n Перетасованная колода:\n");

for(k=0; k<36; k++)

printf("%4d",a[k]);

begin clrscr;

writeln('Упорядоченная колода:') ;

for k:=0 to 35 do begin

a[k]:=k; write(a[k]:4);

end;

writeln;

for j:=0 to 4 do begin

mixer(a);

writeln('Перетасованная колода:');

for k:=0 to 35 do

write(a[k]:4);

writeln;

end;

readln;

end.

Задание 4.11. Игра в НИМ

Правила игры:

  • в начале игры в каждой из п кучек находится отличное от 0 количество каких-то предметов (например, спичек);

  • два игрока ходят по очереди. За один ход разрешается взять любое, отличное от 0, количество предметов из любой кучки;

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

    Совет 1 (общий)

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

    Совет 2 (общий)

    Программу игры целесообразно разбить на четыре процедуры:

  • start, осуществляющую выбор количества кучек и начальный расклад;




    Содержание  Назад  Вперед