Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Zadanie 1.4.

Napisz program, który przedstawi rozwiązanie problemu ośmiu hetmanów przy założeniu, że hetman w pierwszej kolumnie znajdzie się w trzecim wierszu. Wykorzystaj w tym celu algorytm z nawrotami, który każdorazowo będzie iterował od pierwszego do ósmego wiersza.

Oczywiście istnieje wiele rozwiązań tak skonstruowanej zagadki, lecz wynikiem będzie to, które wystąpi jako pierwsze. Zastosuj algorytm przedstawiony w postaci liczby kroków w zadaniu 1.2. Został on również przytoczony poniżej:

Lista kroków:

  1. Wybieramy wiersz początkowy, który znajdzie się na pierwszej pozycji ciągu. Możemy wybrać liczby z przedziału <1, 8>.

  2. Jeżeli wszystkie hetmany zostały ustawione, wypisujemy rozwiązanie.

  3. Szukamy wolnego wiersza dla następnej kolumny, która nie jest jeszcze obsadzona. Dobieramy kolejne liczby, zaczynając od wiersza pierwszego, a kończąc na wierszu ósmym.

  4. Jeżeli znaleźliśmy takie pole, sprawdzamy, czy nie dochodzi na nim do bicia z figurami stojącymi już na planszy.

  5. Jeżeli nie znaleźliśmy takiego pola, które jest poza zasięgiem ruchu ustawionych już figur, zdejmujemy hetmana z poprzedniej kolumny i wracamy do kroku trzeciego.

  6. Jeżeli znaleźliśmy pole nieatakowane przez inną figurę, ustawiamy na nim hetmana, a następnie wracamy do kroku drugiego.

Specyfikacja:

Dane:

  • x – pozycja pierwszego hetmana, liczba całkowita

Wynik:

Program na standardowe wyjście wypisuje 8 liczb naturalnych z zakresu będącymi numerami wierszy w których należy umieścić hetmany w kolejnych kolumnach.

11
Pokaż ćwiczenia:
1

Język C++

21
Ćwiczenie 1
RA9mAHEXTg5tB
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Twoje zadanie: Program wypisuje pierwsze znalezione rozwiązanie problemu ośmiu hetmanów dla przypadku, w którym pierwszy hetman został umieszczony w trzecim wierszu pierwszej kolumny.

Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny. Linia 2. kratka include otwórz nawias ostrokątny cmath zamknij nawias ostrokątny. Linia 4. using namespace std średnik. Linia 6. bool hetmany otwórz nawias okrągły int asterysk tablica przecinek int x zamknij nawias okrągły. Linia 7. otwórz nawias klamrowy. Linia 8. prawy ukośnik prawy ukośnik uzupełnij tę funkcję. Linia 9. zamknij nawias klamrowy. Linia 11. int main otwórz nawias okrągły zamknij nawias okrągły. Linia 12. otwórz nawias klamrowy. Linia 13. int asterysk tablica znak równości new int otwórz nawias kwadratowy 8 zamknij nawias kwadratowy średnik. Linia 14. tablica otwórz nawias kwadratowy 0 zamknij nawias kwadratowy znak równości 2 średnik. Linia 15. hetmany otwórz nawias okrągły tablica przecinek 1 zamknij nawias okrągły średnik. Linia 17. return 0 średnik. Linia 18. zamknij nawias klamrowy. Linia 19. at at at. Linia 20. language znak równości cpp17. Linia 21. at at at. Linia 22. Program wypisuje pierwsze znalezione rozwiązanie problemu ośmiu hetmanów dla przypadku przecinek w którym pierwszy hetman został umieszczony w trzecim wierszu pierwszej kolumny kropka. Linia 23. at at at. Linia 24. at at at. Linia 25. at at at. Linia 26. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 27. import sys. Linia 28. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły. Linia 29. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 30. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły. Linia 32. if sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły znak równości znak równości apostrof 3 1 7 5 8 2 4 6 apostrof dwukropek. Linia 33. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
1

Język Java

21
Ćwiczenie 2
RRCIduaE7GpSD
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Twoje zadanie: Program wypisuje pierwsze znalezione rozwiązanie problemu ośmiu hetmanów dla przypadku, w którym pierwszy hetman został umieszczony w trzecim wierszu pierwszej kolumny.

Linia 1. import java kropka util kropka Arrays średnik. Linia 3. public class Main otwórz nawias klamrowy. Linia 4. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. int otwórz nawias kwadratowy zamknij nawias kwadratowy tablica znak równości new int otwórz nawias kwadratowy 8 zamknij nawias kwadratowy średnik. Linia 6. tablica otwórz nawias kwadratowy 0 zamknij nawias kwadratowy znak równości 2 średnik. Linia 7. hetmany otwórz nawias okrągły tablica przecinek 1 zamknij nawias okrągły średnik. Linia 8. zamknij nawias klamrowy. Linia 10. public static void hetmany otwórz nawias okrągły int otwórz nawias kwadratowy zamknij nawias kwadratowy tablica zamknij nawias okrągły otwórz nawias klamrowy. Linia 11. prawy ukośnik prawy ukośnik uzupełnij tę funkcję. Linia 12. zamknij nawias klamrowy. Linia 14. prawy ukośnik prawy ukośnik tu napisz dodatkowe funkcje potrzebne do wykonania tego zadania. Linia 15. zamknij nawias klamrowy. Linia 16. at at at. Linia 17. language znak równości java11. Linia 18. at at at. Linia 19. Program wypisuje pierwsze znalezione rozwiązanie problemu ośmiu hetmanów dla przypadku przecinek w którym pierwszy hetman został umieszczony w trzecim wierszu pierwszej kolumny kropka. Linia 20. at at at. Linia 21. at at at. Linia 22. at at at. Linia 23. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 24. import sys. Linia 26. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły. Linia 29. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 30. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły. Linia 33. expected podkreślnik output znak równości cudzysłów 3 1 7 5 8 2 4 6 cudzysłów. Linia 34. input znak równości sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły. Linia 35. if input znak równości znak równości expected podkreślnik output kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 36. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.
1

Język Python

21
Ćwiczenie 3
R7IoGCWYZgKF4
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.

Twoje zadanie: Program wypisuje pierwsze znalezione rozwiązanie problemu ośmiu hetmanów dla przypadku, w którym pierwszy hetman został umieszczony w trzecim wierszu pierwszej kolumny.

Linia 1. def hetmany otwórz nawias okrągły tablica przecinek x zamknij nawias okrągły dwukropek. Linia 2. kratka uzupełnij tę funkcję. Linia 5. tab znak równości otwórz nawias kwadratowy 0 zamknij nawias kwadratowy asterysk 8. Linia 6. tab otwórz nawias kwadratowy 0 zamknij nawias kwadratowy znak równości 2. Linia 7. hetmany otwórz nawias okrągły tab przecinek 1 zamknij nawias okrągły. Linia 8. at at at. Linia 9. language znak równości python37. Linia 10. at at at. Linia 11. Program wypisuje pierwsze znalezione rozwiązanie problemu ośmiu hetmanów dla przypadku przecinek w którym pierwszy hetman został umieszczony w trzecim wierszu pierwszej kolumny kropka. Linia 12. at at at. Linia 13. at at at. Linia 14. at at at. Linia 15. kratka wykrzyknik prawy ukośnik usr prawy ukośnik bin prawy ukośnik python3 kropka 7. Linia 16. import sys. Linia 18. podkreślnik podkreślnik TF znak równości open otwórz nawias okrągły 3 przecinek apostrof w apostrof zamknij nawias okrągły. Linia 19. def podkreślnik pt otwórz nawias okrągły t zamknij nawias okrągły dwukropek. Linia 20. print otwórz nawias okrągły str otwórz nawias okrągły t zamknij nawias okrągły przecinek file znak równości podkreślnik podkreślnik TF zamknij nawias okrągły. Linia 23. expected podkreślnik output znak równości cudzysłów 3 1 7 5 8 2 4 6 cudzysłów. Linia 24. input znak równości sys kropka stdin kropka read otwórz nawias okrągły zamknij nawias okrągły kropka strip otwórz nawias okrągły zamknij nawias okrągły. Linia 25. if input znak równości znak równości expected podkreślnik output kropka strip otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 26. podkreślnik pt otwórz nawias okrągły 0 zamknij nawias okrągły.