Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alek7andr
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 5
#1

Как много шахматных слонов можно расставить, чтобы они не угрожали друг другу? - C++

26.06.2014, 11:35. Просмотров 1484. Ответов 7
Метки нет (Все метки)

Какое наибольшее число слонов можно расставить на шахматной доске так, чтобы никакие из них не угрожали друг другу. Задачу решить численным методом. Заранее благодарю.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2014, 11:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как много шахматных слонов можно расставить, чтобы они не угрожали друг другу? (C++):

Сколько коней можно без угроз друг другу расставить на шахматной доске размером M на N - C++
Сколько коней можно без угроз друг другу расставить на шахматной доске размером M на N. ;)

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

Задача страуструпа: Измените программу так, чтобы она выводила числа, которые почти равны друг другу - C++
Есть программа #include <iostream> using namespace std; int main () { double val_1 = 0.0;

Рекурсивный алоритм шахматная доска расставить фигуры так чтобы не били друг друга - C++
На шахматной доске n x n,расставить фигуры так,чтобы они не били друг друга,нужно реализовать 2 отдельных программы,в первой фигуры...

На шахматной доске необходимо расставить 8 ферзей так, чтобы они не угрожали друг другу - Turbo Pascal
На шахматной доске необходимо расставить 8 ферзей так, чтобы они не угрожали друг другу Делал проверку чтобы только 1 ферзь стоял на 1...

Разместить на шахматной доске 8 тур так, чтобы они не угрожали друг другу - Pascal ABC
задача на двумерный масив и рекурсии Помогите написать программу: Разместить на шахматной доске 8 тур так, чтобы они не угрожали...

7
John Prick
831 / 764 / 154
Регистрация: 27.07.2012
Сообщений: 2,176
Завершенные тесты: 3
26.06.2014, 16:39 #2
64. Спорим?
0
Alek7andr
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 5
26.06.2014, 16:41  [ТС] #3
Ты бы мне составил программу в С++?
0
John Prick
831 / 764 / 154
Регистрация: 27.07.2012
Сообщений: 2,176
Завершенные тесты: 3
26.06.2014, 16:44 #4
Алгоритм был бы, тогда бы составил. Самому алгоритм гуглить либо изобретать "велосипед" нету желания.
0
SlavaSSU
217 / 162 / 45
Регистрация: 17.07.2012
Сообщений: 587
26.06.2014, 17:13 #5
написал переборчик, который для доски 8*8 или больше долго работает(несколько минут считал у меня), и получается, что ответ - 1, если доска 1*1, или 2*n - 2 иначе(n - размер доски). ну эт так, ответ знать будешь, перебор то тебе не нужен.
0
Alek7andr
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 5
26.06.2014, 17:30  [ТС] #6
он мне как раз и нужен(
0
SlavaSSU
217 / 162 / 45
Регистрация: 17.07.2012
Сообщений: 587
26.06.2014, 17:33 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
просто у тебя написано "решить задачу численным методом"

а этот перебор долго работает.

C++ (Qt)
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
34
35
36
37
38
39
#include <iostream>
 
using namespace std;
 
bool d1[111], d2[111];
int n;
int ans = 0;
int cnt;
 
void rec(int i, int j)
{
    ans = max(ans, cnt);
 
    for(int ii = i; ii <= n; ii++)
    {
        int f = (ii == n ? j : 1);
        for(int jj = f; jj <= n; jj++)
        {
            int idx1 = ii + (n - jj);
            int idx2 = ii + jj - 1;
            if(!d1[idx1] && !d2[idx2])
            {
                d1[idx1] = d2[idx2] = true;
                cnt++;
                rec(ii, jj);
                cnt--;
                d1[idx1] = d2[idx2] = false;
            }
        }
    }
}
 
int main()
{
    cin >> n;
    rec(1, 1);
    cout << ans << endl;
    return 0;
}
1
Alek7andr
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 5
26.06.2014, 17:35  [ТС] #8
да я просто написал задание в таком виде, в каком мне его дали, большое спасибо за помощь!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2014, 17:35
Привет! Вот еще темы с ответами:

Максимальное число шахматных коней расположенных так, чтобы они не били друг друга - Pascal
Доброго времени суток, нужно написать программу для нахождения максимального числа шахматных коней стоящих на шахматной доске 8x8 так,...

Расставить числа так, чтобы суммы этих чисел в каждом горизонтальном ряду были равны друг другу - Lisp
Здравствуйте,помогите с заданием) Задание: Расставьте в этих клетках числа от 1 до 27(четыре числа уже стоят) так, чтобы суммы этих...

Расставить в клетках K ферзей так, чтобы они друг друга не били - Алгоритмы
Очень нужна помощь! Напишите, пожалуйста, код программы (а если с пояснениями что в нем используется было бы круто) можно на С, С++, java...

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


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

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

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