 |
Kto pomoget? |
 |
14.07.2002, 23:07
|
#1
|
Авик
Join Date: 07 2002
Location: Yerevan
Age: 38
Posts: 1,348
Rep Power: 0
|
Kto pomoget?
Narod kto znaet zadachu o 8 korolev v shaxmatax?
------------------
dlja tex kto ne znaet
Nado rasspologit 8 Koroliv na doske shaxmatnoj tak chtobi ni odna druguju ne bila
 ------------------
Esli kto moget podskazat algoritm pogaluista pomogite.
A esli u kogo on est napisannij na C++ to prishlite
Zaranie spasibo
__________________
вот собственно все, что я хотел сказать.
|
|
|
15.07.2002, 01:10
|
#2
|
Младенец
Join Date: 07 2002
Location: Hell .. (the Netherlands)
Posts: 2
Rep Power: 0
|
ah.. ja ete znaju
palaji tak
E1,A2,H3,f4,C5,G6,B7,D8
__________________
hu...???, oh lol i got it!!!
|
|
|
15.07.2002, 02:43
|
#3
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
посмотри в книге вирта 'алгоритмы+структуры данных=программы', там на паскале, но думаю сойдет. а еще я ее на прологе писал, жаль, не сохранилась  а то бы попугал
|
|
|
15.07.2002, 11:25
|
#4
|
Студент
Join Date: 06 2002
Location: Yerevan
Posts: 258
Rep Power: 0
|
Quote:
Originally posted by MuZe:
ah.. ja ete znaju
palaji tak
E1,A2,H3,f4,C5,G6,B7,D8
|
A posle etogo mogesh' ciklicheski menyat' poloski doski both vertically and horizontally i poluchish' vse vozmognye varianty
A algorithm ochen' prostoj, prosto raspolagaesh' drug za drugom i obychno na 8-om shage mesta ne budet, pojdesh' nazad do xoda kogda u tebya byl vybor, vyberesh' chto-nibud' drugoe i tak dalee. Drugimi slovami - brute force
|
|
|
21.07.2002, 01:31
|
#5
|
Студент
Join Date: 05 2002
Location: Armenia
Posts: 276
Rep Power: 0
|
BAYC ET XNDIRI MEJ KAROL CHI KARALEVA A
|
|
|
22.07.2002, 04:35
|
#6
|
Дошкольник
Join Date: 05 2002
Location: The Dark Side of The Moon
Posts: 102
Rep Power: 0
|
postav pervuu korolevu v verkhnem levom uglu
sleduushuu postav tochno tak kak esli bi ti
sigral konem v pravo i t.d. tak ti postavish 4
korolevi
potom 5-uu postvishish ot verkhnei levoi opiat
po zakonu khoda konia no uje vnis, i takje ostalnie
4 korolevi
naskolko ia snau eto edinstvenni algorithm
__________________
BM
|
|
|
22.07.2002, 08:19
|
#7
|
Студент
Join Date: 06 2002
Location: Yerevan
Posts: 258
Rep Power: 0
|
2 BlackMoon.
Eto skoree ne algoritm, a odno chastnoe reshenie (dlya sluchaya 8x8). Kotoroe vyshe uge bylo ukazano by MuZe. (i esli razlichno to kak ya uge opyat' taki skazal ciklicheskoj perestanovkoj vsex stolbcov i strok mogno poluchit' vse resheniya iz odnogo dannogo)
|
|
|
24.07.2002, 23:40
|
#8
|
Авик
Join Date: 07 2002
Location: Yerevan
Age: 38
Posts: 1,348
Rep Power: 0
|
Quote:
Originally posted by Eddi:
Ja uznal eta zadacha imeet 92 reshenija!!!
|
__________________
вот собственно все, что я хотел сказать.
|
|
|
25.07.2002, 01:23
|
#9
|
Студент
Join Date: 06 2002
Location: Yerevan
Posts: 258
Rep Power: 0
|
http://users.net1plus.com/brianl/8queens.htm - this has a java program using recursive algorithm.
I was wrong before stating that you'll get all the solutions from one. There are 12 different solutions (other 80 come from rotations and reflections).
http://mathworld.wolfram.com/QueensProblem.html - also this link gives you the formula to calculate the number of placings for nxn board and k queens.
Have fun
|
|
|
31.07.2002, 13:54
|
#10
|
Младенец
Join Date: 01 2002
Location: Nor Hajen
Posts: 12
Rep Power: 0
|
Nerkayatcnum em xndri lutsman im tsragir@, vor@ inchpes tesnum eq bavakanin kar& e yev ashxatum e shat arag...
Arajarkeq dzer@...
Code:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void main()
{
vector< unsigned int > Pattern( 8 );
for ( unsigned int i = 0; i <= 7; i++ )
Pattern[ i ] = i + 1;
unsigned int uiCount = 0;
vector< unsigned int >::iterator start = Pattern.begin(), end = Pattern.end();
while ( next_permutation( start, end ) )
{
bool bFound = true;
for ( unsigned int i = 0; i <= 7 && bFound; i++ )
for ( unsigned int j = i + 1; j <= 7 && bFound; j++ )
bFound = ( abs( Pattern[ i ] - Pattern[ j ] ) != abs( i - j ) );
if ( bFound )
{
uiCount++;
ostream_iterator< unsigned int > outIt( cout, " " );
copy( start, end, outIt );
cout << endl;
}
}
cout << endl << uiCount << " solutions." << endl;
}
__________________
Best of luck!
|
|
|
31.07.2002, 23:53
|
#11
|
Авик
Join Date: 07 2002
Location: Yerevan
Age: 38
Posts: 1,348
Rep Power: 0
|
__________________
вот собственно все, что я хотел сказать.
|
|
|
01.08.2002, 19:10
|
#12
|
Школьник
Join Date: 05 2002
Location: Yerevan
Posts: 202
Rep Power: 0
|
Плохой алгоритм.... Идёт тупой перебор, а это не есть хорошо... Вот так вот.
В том же Дейтеле описан неплохой алгоритм, который достаточно легко реализовать, попробуй.
А вообще это задача на рекурсию с возвратом.
__________________
This game has no name,
It will never be the same....
|
|
|
27.08.2002, 06:02
|
#13
|
Младенец
Join Date: 08 2002
Location: Yerevan
Posts: 14
Rep Power: 0
|
Рекурсивно решать или нет, все равно в основе решения этой задачи перебор. А рекурсия получается естественно, так-как посик идет по дереву кандидатов, так что каждая из его вершин приходится один раз. Это позволяет если найдено и должным образом зафиксировано одно решение, просто перейту к следующему кандидату, предлагаемому процессом полного перебора как в программе выше. Общая схема приблизительно такая.
void try(int i)
{
for ( int k = 0 to SQUARE_COUNT )
{
выбор к-го кандидата;
если подходит, записываем;
if ( i < SQUARE_COUNT )
try i+1);
}
}
Приблизительно так!
Вообще посмотрите в прекрасной статье Вирта "Program Development by Stepwise Refinement", классическая статья в программировании.
Удачи.
|
|
|
27.08.2002, 07:46
|
#14
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
|
посик по дереву кандидатов ходит ?  )
а кандидаты не жалуются  ????
а так в принципе алгоритм именно такой  )))
могу предложить другую более интерестную модификацию. Написать параллельный алгоритм для ее решения, который решает ее за (наи)меньшее количество времени
|
|
|
All times are GMT. The time now is 00:00. |
|
|