valentingordien
29.08.2020 08:36

Мини-судоку Решите рекурсивно мини-судоку размером 4x4. Для этого напишите функцию solve_sudoku(matrix), где matrix - целочисленная матрица (список списков).

В мини-судоку числа от 1 до 4 встречаются ровно один раз в каждой вертикали и горизонтали, а также в квадратах 2x2.

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

Формат ввода
Со стандартного потока ввода для решения выдается Судоку, представленный в виде таблицы чисел, в которой нулями обозначены пустые места:

0000
0020
0100
3004

Формат вывода
Решённый судоку выведите на экран:

2341
1423
4132
3214


Мини-судоку Решите рекурсивно мини-судоку размером 4x4. Для этого напишите функцию solve_sudoku(matr

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ПаучьяХватка
18.09.2021 14:07

var

a:array[1..10,1..10] of integer;

b:array[1..10,1..10] of integer;

sum:array[1..10,1..10] of integer;

pol,otr,max,min:real;

i,j,indexi,indexj:integer;

begin

min:=0;

 max:=0;

randomize;

for j:=1 to 10 do

begin

 for i:=1 to 10 do

begin

randomize;

 

 a[i,j]:=random(51);

randomize;

 

 b[i,j]:=random(51);

 a[i,j]:=a[i,j]*2;

writeln(a[i,j]);

a[i,j]:=a[i,j]/2;

end;

end;

for j:=1 to 10 do

begin

for i:=1 to 10 do

begin

a[i,j]:=a[i,j]+b[i,j];

writeln(a[i,j]);

a[i,j]:=a[i,j]-b[i,j];

end;

end;

for j:=1 to 10 do

begin

for i:=1 to 10 do

begin

if a[i,j]<min then

begin

 

 min:=a[i,j];

 indexi:=i;

 indexj:=j;

 end;

end;

end;

writeln(min,indexi,indexj);

for j:=1 to 10 do

begin

 

 for i:=1 to 10 do

 begin

if (a[i,j]>0) and (a[i,j]>max) then

max:=a[i,j];

end;

end;

writeln(max);

max:=0;

for j:=1 to 10 do

begin 

for i:=1 to 10 do

begin

 

if (a[i,j]<0) and (a[i,j]>max) then max:=a[i,j];

end;

end;

writeln(max);

end.

 

 программа выполняет сразу все 7 пунктов. Значения задаются сами. На выходе с каждой строки Вы получите каждый пункт задания.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,0(0 оценок)
Ответ:
vinitskay74
16.10.2020 15:20

Выигрывает 2 игрок. Для доказательства стоит рассмотреть дерево игры.

на доске записано 2.

первый игрок делает любой ход и на доске может появится одно из чисел 5, 7 или 4.

потом  ходит второй игрок. И на доске может появится одно из следующих чисел: 8, 9, 10, 12, 14. Естественно, если каждый игрок играет на выигрыш, то числа 12 и 14 он писать не будет. Тогда наступает ход первого игрока, при котором на доске может появится 11, 13, 16, 15, 20, 18. Таким образом видим, что при любом ходе первого игрока, второй все равно выиграет.

                                                                |     2     |

1 игрок                       | 5 |                            | 7  |                            |4|

2 игрок          | 8          10        10|       |10        12         14 |       | 8      8       9|

1 игрок     |11  13  16|      |  13   15    20|          выигрыш 1    |11    13   16|   |12   14    18|

 

надеюсь, что стало понятно :)

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота