Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 15. 01. 2011 10:21 — Editoval Mr.Pinker (15. 01. 2011 12:07)

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

šachy

zdravím dostal sem zápočtovej program a vůbec nevim jak bych ho měl řešit tak bych vás rád poprosil o radu.
máš běžnou šahcovnici a na ní černýho krále a bílýho koně věž a krále . na vstupu dostanu jejich pozice a na kolik tahu musej vynutit mat .

Offline

 

#2 15. 01. 2011 11:37

Stýv
Vrchní cenzor
Příspěvky: 5702
Reputace:   215 
Web
 

Re: šachy

hmm... co je to "věžná šahcovnice"?:-D

Offline

 

#3 15. 01. 2011 12:07

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: šachy

ouh sorry přepis tam mělo bějt běžná hned to edituju :-D

Offline

 

#4 15. 01. 2011 13:07

check_drummer
Příspěvky: 5182
Reputace:   106 
 

Re: šachy

Na kolik taku musí vynutit mat je vstup nebo výstup? Stačí najít jakékoliv řešení nebo optimální (nejmenší počet tahů)?


"Máte úhel beta." "No to nemám."

Offline

 

#5 15. 01. 2011 13:11

Stýv
Vrchní cenzor
Příspěvky: 5702
Reputace:   215 
Web
 

Re: šachy

↑ Mr.Pinker: a taky to asi měla bejt šachovnice;)

Offline

 

#6 15. 01. 2011 13:34

pizet
Místo: Levice/Praha
Příspěvky: 459
Reputace:   11 
 

Re: šachy

Správanie čierneho kráľa určuješ ty alebo má nejaké prepísané správanie. Lebo by mohol aj spolupracovať a tak by sa dal dosiahnúť určite menší počet ťahov.


Do you follow my way? Or you just see a black stain swimming in the Milky Way ...
KSP je určený pre študentov základných a stredných škôl, ktorí majú záujem naučiť sa niečo z oblasti algoritmov, logických úloh, programovania a informatiky.

Offline

 

#7 15. 01. 2011 14:53

vojta01
Příspěvky: 63
Reputace:   
 

Re: šachy

Ahoj, to je typická úloha na prohledávání do šířky. Postupně budeš pomocí fronty zkoušet všechny možnosti na 1 tah, 2 tahy, 3 tahy, až jednou narazíš na situaci, kdy dojde k vynucenému matu. Avšak těch možností tahů bude velmi mnoho a program to nebude schopen spočítat, protože vynucený mat muže nastastat v nejhorším případě i po více než 20 tazích (40 půltazích).
I kdybych použil heuristiku, že moje věž se v každém tahu může posunout o jedno políčko blíže soupeřevu králi horizontálně nebo vertikálně (2 možnosti) a můj král buď vždy se může posunout za věž buď horizontálně nebo vertikálně (2 možnosti, tedy celkem 4 možnosti mých tahů). Soupeřův král se může posunout buď blíže k věži (pokud to lze - 1 tah), pokud to nejde, tak o jedno políčko dál od věže, horizontálním nebo vertikálním směrem (zde 2 možnosti, tedy max 2 možnosti). V každém tahu tedy proběhně maximálně 8 možností tahů bílého a černého dohromady, za 20 tahů to bude 8^20, tedy 2^60, což je pořád obrovské číslo a nelze v rozumném čase propočítat.

Jiné řešení nebo vylepšení mě nenapadá, ale zajímalo by mě, jak se to dá řešit efektivněji.

Offline

 

#8 15. 01. 2011 16:33

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

Re: šachy

zadání přesně znělo udělat program kterej na vstupu dostane umístění figurek a na kolik tahu má dát mat udělat

Offline

 

#9 15. 01. 2011 17:05

jindra
Příspěvky: 78
Reputace:   
 

Re: šachy

To je dosti málo informací. Už jen pro to že nevíme co má dělat král "kterého máme vymatovat". Jestli stojí na místě. Pomáhá ke své "vraždě". Nebo se snaží unikat. V posledním případě by to bylo asi nejsložitější, protože by jsi musel napsat pro něj "podle čeho" má kam utíkat. Takže čím lepší utíkací algoritmus by jsi napsal, tím složitější by byl algoritmus na jeho zastavení. A najítí počtu tahů delší.

Za předpokladu že stojí na místě, bylo by to asi nejsnazší. Já bych si pomocí souřadnice krále zjistil kde musí stát jiné figurky aby byl mat. Pak by stačilo "šachově"(kůň do L, atd.) procházet po šachovnici. Jakmile by byla figurka tam kde má být. Zastavil bych procházení. Při každém posunu zvětšit počet tahů.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson