Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
40 / 40 / 10
Регистрация: 22.05.2009
Сообщений: 491
1

Перечислить все расстановки 8-ми ферзей на шахматной доске

27.04.2010, 21:36. Просмотров 1234. Ответов 0
Метки нет (Все метки)

Может есть у кого нибудь такая задача? она считается классической, хочу разобрать это решение, но она на паскале, не мог бы кто нибудь помочь с переводом на с++?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 program Queens;
   const N=8;
   type Index=1..N;
    Rasstanovka=array [Index] of 0..N;
   var X:Rasstanovka;
       Count:word;
   function P(var X:Rasstanovka;k,y:Index):boolean;
     var i:Index;
   begin
     i:=1;
     while (i<k)and(y<>X[i])and(abs(k-i)<>abs(y-X[i])) do inc(i);
     P:=i=k
   end;
   procedure Backtracking(k:Index);
     var i,y:Index;
   begin
     for y:=1 to N do
       if P(X,k,y) then
     begin
       X[k]:=y;
       if k=N then
         begin
           for i:=1 to N do write(X[i]);writeln;inc(Count)
         end;
       Backtracking(k+1)
     end
   end;
 begin
   Count:=0;
   writeln('Расстановки ',N,' ферзей:');
   Backtracking(1);
   writeln('Всего ',Count,' расстановок')
 end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2010, 21:36
Ответы с готовыми решениями:

Перечислить все расстановки N ферзей на шахматной доске NxX, при которых они не бьют друг друга
Задача: Перечислить все расстановки N ферзей на шахматной доске NxX, при которых они не бьют друг...

Нужно написать программу для расстановки 5 ферзей на шахматной доске
Нужно написать программу для расстановки 5 ферзей на шахматной доске,чтобы эти 5 ферзей били всё...

Расстановка ферзей на шахматной доске
Найти на кубической доске всевозможные расстановки 15 ферзей так, чтобы они не били друг друга

Варианты размещения восьми ферзей на шахматной доске
Само задание: Найти все варианты размещения восьми ферзей на шахматной доске таким образом, чтобы...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2010, 21:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Расставить 8 ферзей на шахматной доске 8 на 8, которые не бьют друг друга
Нужно написать программу которая расставляет на шахматной доске 8 ферзей, которые не бьют друг...

Расстановка восьми ферзей на шахматной доске так, чтобы ни один не угрожал другому
5. Расстановка восьми ферзей на шахматной доске так, чтобы ни один не угрожал другому.

На шахматной доске даются координаты 8 ферзей. Узнать пары, которые бьют друг друга
Дана шахматная доска 8х8. На вход подаются координаты местоположения 8 ферзей. Требуется узнать...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.