Səkkiz vəzir problemi — Şahmat taxtasında səkkiz vəzirin bir-birini vurmadan necə yerləşdiriləcəyini müzakirə edən problemdir. Səkkiz vəzir problemi daha ümumi olan n vəzir probleminin xüsusi halıdır. n vəzir problemi n×n ölçülü şahmat taxtasında n sayda vəzirinin bir-birini vurmadan necə yerləşdirilməsi haqqında olan problemdir.
Tarixi
Bu problem ilk dəfə 1848-ci ildə şahmat oyunçusu Maks Bezzel tərəfindən ortaya atılmışdır. Daha sonra Qauss, Qeorq Kantor tərəfindən haqqında araşdırmalar aparılmışdır. Məsələnin ilk həlli 1850-ci ildə F. Nauck tərəfindən verilmişdir. Həmçinin Nauck məsələni daha qlobal bir şəkilə nxn halına salmışdır.
Məsələnin həlli
Səkkiz vəzir probleminin 92 həll yolu vardır. Digər həllər yuxarıdakı on iki həllin simmetrik çevrilməsi nəticəsində yaradılmışdır.
N vəzir problemi hələlik 26-a kimi həll edilmişdir. 27 və sonrası yüksək hesablama gücü tələb etdiyinə görə hələlik həll edilməmişdir.
Pascal proqramlaşdırma dilində həlli
program eightqueen1(output); var i : integer; q : boolean; a : array[ 1 .. 8] of boolean; b : array[ 2 .. 16] of boolean; c : array[ -7 .. 7] of boolean; x : array[ 1 .. 8] of integer; procedure try( i : integer; var q : boolean); var j : integer; begin j := 0; repeat j := j + 1; q := false; if a[ j] and b[ i + j] and c[ i - j] then begin x[ i ] := j; a[ j ] := false; b[ i + j] := false; c[ i - j] := false; if i < 8 then begin try( i + 1, q); if not q then begin a[ j] := true; b[ i + j] := true; c[ i - j] := true; end end else q := true end until q or (j = 8); end; begin for i := 1 to 8 do a[ i] := true; for i := 2 to 16 do b[ i] := true; for i := -7 to 7 do c[ i] := true; try( 1, q); if q then for i := 1 to 8 do write( x[ i]:4); writeln end.
Xarici keçidlər
- Digər proqramlaşdırma dillərində təsviri
- Java tətbiqetmə ilə ümumi metod n queens
wikipedia, oxu, kitab, kitabxana, axtar, tap, meqaleler, kitablar, oyrenmek, wiki, bilgi, tarix, tarixi, endir, indir, yukle, izlə, izle, mobil, telefon ucun, azeri, azəri, azerbaycanca, azərbaycanca, sayt, yüklə, pulsuz, pulsuz yüklə, haqqında, haqqinda, məlumat, melumat, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, şəkil, muisiqi, mahnı, kino, film, kitab, oyun, oyunlar, android, ios, apple, samsung, iphone, pc, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, web, computer, komputer
Sekkiz vezir problemi Sahmat taxtasinda sekkiz vezirin bir birini vurmadan nece yerlesdirileceyini muzakire eden problemdir Sekkiz vezir problemi daha umumi olan n vezir probleminin xususi halidir n vezir problemi n n olculu sahmat taxtasinda n sayda vezirinin bir birini vurmadan nece yerlesdirilmesi haqqinda olan problemdir Hell yollarindan biri a7 b4 c2 d8 e6 f1 g3 h5 87 TarixiBu problem ilk defe 1848 ci ilde sahmat oyuncusu Maks Bezzel terefinden ortaya atilmisdir Daha sonra Qauss Qeorq Kantor terefinden haqqinda arasdirmalar aparilmisdir Meselenin ilk helli 1850 ci ilde F Nauck terefinden verilmisdir Hemcinin Nauck meseleni daha qlobal bir sekile nxn halina salmisdir Meselenin helliSekkiz vezir probleminin 92 hell yolu vardir Diger heller yuxaridaki on iki hellin simmetrik cevrilmesi neticesinde yaradilmisdir N vezir problemi helelik 26 a kimi hell edilmisdir 27 ve sonrasi yuksek hesablama gucu teleb etdiyine gore helelik hell edilmemisdir Pascal proqramlasdirma dilinde helliprogram eightqueen1 output var i integer q boolean a array 1 8 of boolean b array 2 16 of boolean c array 7 7 of boolean x array 1 8 of integer procedure try i integer var q boolean var j integer begin j 0 repeat j j 1 q false if a j and b i j and c i j then begin x i j a j false b i j false c i j false if i lt 8 then begin try i 1 q if not q then begin a j true b i j true c i j true end end else q true end until q or j 8 end begin for i 1 to 8 do a i true for i 2 to 16 do b i true for i 7 to 7 do c i true try 1 q if q then for i 1 to 8 do write x i 4 writeln end Xarici kecidlerDiger proqramlasdirma dillerinde tesviri Java tetbiqetme ile umumi metod n queens