0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 4

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

25.12.2012, 14:50. Показов 3422. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите решить задачку. Расстановка 8 ферзей на шахматной доске так, чтобы они не били друг друга. Нужен самый простой в написании код, который будет выдавать кол-во возможных вариантов расстановки. Без формы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2012, 14:50
Ответы с готовыми решениями:

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

Расставить 8 ферзей на шахматной доске так, чтобы они не били друг друга
В коде какая-то ошибка поправьте пожалуйста unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils,...

Рекурсия: На шахматной доске расставить 8 ферзей так, чтобы они не били друг друга
Всем привет. Прошу помочь в решении задачи в VBA c помощью рекурсии. Задача: На шахматной доске расставить 8 ферзей так, чтобы они не...

3
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
25.12.2012, 15:43
Лучший ответ Сообщение было отмечено как решение

Решение

Visual Basic
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
Sub main()
Dim I As Integer, J As Integer, Amin As Integer, CountP As Integer
 ReDim a(1 To 8): For J = 1 To 8: a(J) = J: Next J
1:
 For I = 1 To 8 - 1
   For J = I + 1 To 8
     If Abs(a(I) - a(J)) = (J - I) Then GoTo 2
   Next J
 Next I
 CountP = CountP + 1
2:
 For J = 8 - 1 To 1 Step -1
   If a(J) < a(J + 1) Then
     For I = 8 To J + 1 Step -1
       If a(J) < a(I) Then Exit For
     Next I
     Amin = a(I): a(I) = a(J): a(J) = Amin
     For I = 1 To (8 - J) \ 2
       Amin = a(J + I): a(J + I) = a(8 - I + 1): a(8 - I + 1) = Amin
     Next I
     GoTo 1
   End If
 Next J
MsgBox CountP
End Sub
4
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
25.12.2012, 16:16
Я с ходу алгоритм не понял
С рекурсией ИМХО проще: Рекурсия: На шахматной доске расставить 8 ферзей так, чтобы они не били друг друга
1
25.12.2012, 21:09

Не по теме:

Цитата Сообщение от Казанский Посмотреть сообщение
Я с ходу алгоритм не понял
Это одно из моих ранних произведений (без рекурсии).
Привел для полноты картины:pardon:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.12.2012, 21:09
Помогаю со студенческими работами здесь

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

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

Рекурсия: расставить на шахматной доске 8 ладей так, чтобы они не били друг друга
Нужно расставить на шахматной доске 8 ладей так, чтобы они не били друг друга, вот что я наваял: using System; using...

Сколькими способами можно разместить на шахматной доске восемь ладей так, чтобы они не били друг друга?
Помогите решить, задачу,если есть возможность объяснить первый шаг решения задачи,или общий ход решения. Сколькими способами можно...

Вывести максимальное количество ферзей, которых можно расставить на доске N*M так, чтобы они не били друг друга
Задается шахматная доска N*M Нужно вывести максимальное количество Ферьз которых можно расставить так чтоб они не билидруг друга Формат...


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

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

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru