Niestety nie wyrobiłem się w terminie z podaniem następnych zadań. Cóz, oto są. Jedno powinno być w miarę proste, drugie może być bardzo trudne.
Zadanie VIII
Napisz funkcję która sprawdzi czy dany kwadrat liczb jest faktycznie kwadratem magicznym.
W poprzednim zadaniu uwierzyliście mi na słowo, że podałem dobry algorytm. Czas to sprawdzić :)
Zadanie IX
Napisz funkcję która wypisze wszystkie możliwe kwadraty magiczne o zadanym boku.
Na początek polecam zapoznać się z pojęciem rekurencji. Teraz mała podpowiedź: nie ma algorytmu (przynajmniej ja go nie znam) tworzącego kwadrat magiczny o dowolnym boku. To co trzeba zrobić w tym zadaniu, to wygenerować wszystkie możliwe kwadraty, i każdy sprawdzić czy jest magiczny. Jak wygenerować wszystkie możliwe kwadraty? Załóżmy długość boku n=3. Zaczynamy z pustym kwadratem. Mamy 9 możliwych pozycji wstawienia liczby 1. Dla każdej pozycji liczby 1 mamy 8 możliwych pozycji liczby 2. Dla każdych możliwych pozycji liczby 1 i 2 mamy 7 możliwych pozycji liczby 3 itd, aż do 9. Po wstawieniu 9 sprawdzamy czy trójkąt jest magiczny.
P.S. W przypadku n=3 jest 9! możliwości do sprawdzenia. Dla n=4 jest 16!. Dlatego nie polecam testów z dużym n, chyba że jesteś bardzo cierpliwy.
To wszystko na dziś, zapraszamy do następnego odcinka (niekoniecznie jutro ;))


Komentarze