Discussion:
Tablica 4x4
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Avatar
2004-12-18 20:27:14 UTC
Permalink
witam serdecznie.

Pisze program w C++ ktory ma symulowac "magiczny kwadrat"
czyli do tablicy 4x4 wpisuje liczby od 1 do 16 sumuje przekatne
i sprawdzam czy ich sumy sa rowne. Teraz tak, wszystko cacy,
program mi chodzi, ale chcialbym zapytac, w jaki sposob mozna
wypelnic cala tablice _Wszystkimi_ mozliwymi permutacjami z tego
zakresu jakikolwiek hint bedzie przydatny, a za algorytm, czy
tez zrodelko sie nie pogniewam :)

Po prostu wiem ze odpowiedz mam na wyciagniecie reki ale jej
nie widze.

Pozdrawiam,
Avatar
Krzysztof Rudnik
2004-12-18 20:42:12 UTC
Permalink
Post by Avatar
witam serdecznie.
Pisze program w C++ ktory ma symulowac "magiczny kwadrat"
czyli do tablicy 4x4 wpisuje liczby od 1 do 16 sumuje przekatne
i sprawdzam czy ich sumy sa rowne. Teraz tak, wszystko cacy,
program mi chodzi, ale chcialbym zapytac, w jaki sposob mozna
wypelnic cala tablice _Wszystkimi_ mozliwymi permutacjami z tego
zakresu jakikolwiek hint bedzie przydatny, a za algorytm, czy
tez zrodelko sie nie pogniewam :)
Hint nr 1: liczyles kiedys 16! ?

Krzysiek Rudnik
Avatar
2004-12-18 22:15:19 UTC
Permalink
Jak podaje NASA, na ksiezycu, ruski lunochod "Krzysztof Rudnik"
Post by Krzysztof Rudnik
Post by Avatar
witam serdecznie.
Pisze program w C++ ktory ma symulowac "magiczny kwadrat"
czyli do tablicy 4x4 wpisuje liczby od 1 do 16 sumuje przekatne
i sprawdzam czy ich sumy sa rowne. Teraz tak, wszystko cacy,
program mi chodzi, ale chcialbym zapytac, w jaki sposob mozna
wypelnic cala tablice _Wszystkimi_ mozliwymi permutacjami z tego
zakresu jakikolwiek hint bedzie przydatny, a za algorytm, czy
tez zrodelko sie nie pogniewam :)
Hint nr 1: liczyles kiedys 16! ?
Krzysiek Rudnik
Ok ... moze powiem tak - wiecej niz hinta :)

Czy chodzi Ci o rekurencje? jesli tak, to w jakiej formie? rekurencyjnie
wywolac petle?
czyli zrobic 16 razy rekurencyjne wywolanie ? Bardzo prosze o pomoc

Avatar
Krzysztof Rudnik
2004-12-18 22:27:29 UTC
Permalink
Post by Avatar
Jak podaje NASA, na ksiezycu, ruski lunochod "Krzysztof Rudnik"
Post by Krzysztof Rudnik
Post by Avatar
witam serdecznie.
Pisze program w C++ ktory ma symulowac "magiczny kwadrat"
czyli do tablicy 4x4 wpisuje liczby od 1 do 16 sumuje przekatne
i sprawdzam czy ich sumy sa rowne. Teraz tak, wszystko cacy,
program mi chodzi, ale chcialbym zapytac, w jaki sposob mozna
wypelnic cala tablice _Wszystkimi_ mozliwymi permutacjami z tego
zakresu jakikolwiek hint bedzie przydatny, a za algorytm, czy
tez zrodelko sie nie pogniewam :)
Hint nr 1: liczyles kiedys 16! ?
Krzysiek Rudnik
Ok ... moze powiem tak - wiecej niz hinta :)
Czy chodzi Ci o rekurencje? jesli tak, to w jakiej formie? rekurencyjnie
wywolac petle?
czyli zrobic 16 razy rekurencyjne wywolanie ? Bardzo prosze o pomoc
A liczyles ta wartosc - to jest cos rzedu jedynki i 13 zer. Nigdy
nie doczekasz sie zakonczenia algorytmu, ktory mialby
wygenerowac/przejrzec wszystkie permutacje.

Krzysiek Rudnik
Avatar
2004-12-18 22:40:01 UTC
Permalink
Jak podaje NASA, na ksiezycu, ruski lunochod "Krzysztof Rudnik"
bazgrze co nastepuje:

[ciach]
Post by Krzysztof Rudnik
A liczyles ta wartosc - to jest cos rzedu jedynki i 13 zer. Nigdy
nie doczekasz sie zakonczenia algorytmu, ktory mialby
wygenerowac/przejrzec wszystkie permutacje.
Krzysiek Rudnik
w takiej sytuacji, co proponujesz? program powinien wypelniac kwadrat
tak dlugo, az znajdzie taki, w ktorym suma po przekatnych jest taka sama.
Wiec, wypelniac go losowo, i modlic sie zeby trafil? ( tak dzialal do tej
pory,
czyli az do momentu kiedy sie ambitny zrobilem)
Czy moze pokombinowac z jakims przesuwaniem liczb po calej tablicy?

Pozdrawiam,
Avatar.
Krzysztof Rudnik
2004-12-18 23:09:51 UTC
Permalink
Post by Avatar
Jak podaje NASA, na ksiezycu, ruski lunochod "Krzysztof Rudnik"
[ciach]
Post by Krzysztof Rudnik
A liczyles ta wartosc - to jest cos rzedu jedynki i 13 zer. Nigdy
nie doczekasz sie zakonczenia algorytmu, ktory mialby
wygenerowac/przejrzec wszystkie permutacje.
Krzysiek Rudnik
w takiej sytuacji, co proponujesz? program powinien wypelniac kwadrat
tak dlugo, az znajdzie taki, w ktorym suma po przekatnych jest taka sama.
Wiec, wypelniac go losowo, i modlic sie zeby trafil? ( tak dzialal do tej
pory,
czyli az do momentu kiedy sie ambitny zrobilem)
Czy moze pokombinowac z jakims przesuwaniem liczb po calej tablicy?
Pozdrawiam,
Avatar.
Przede wszystkim skoro chodzi tylko o sume po przekatnych to ogranicz
sie do nich (8 niezaleznych liczb z tych 16) tu juz znacznie prostsze.
Trzeba znalezc takie 8 liczb ze da sie z nich utworzyc dwie czworki
o tej samej sumie (od razu widac ze suma calej osemki powinna byc
parzysta). Teraz mozesz dowolnie permutowac kazda z czworek niezalenie
i niezaleznie permutowac cala reszte kwadratu. Dostaniesz jakies 24mln
kwadratow od kazdej znalezionej pary czworek (jak to wydrukujesz?).
Nigdy nie nie bawilem taka matematyka, ale jak widac chwila namyslu
pozwala znalezc wazne zaleznosci. Zawsze nalezy troche pomyslec
przed pisaniem programu, wrecz wiecej czasu nalezy myslec nad
problemem niz nad programem. No i jeszcze sa google...


Krzysiek Rudnik
Avatar
2004-12-19 09:08:25 UTC
Permalink
Jak podaje NASA, na ksiezycu, ruski lunochod "Krzysztof Rudnik"
bazgrze co nastepuje:

[ciach]
Post by Krzysztof Rudnik
Przede wszystkim skoro chodzi tylko o sume po przekatnych to
ogranicz sie do nich (8 niezaleznych liczb z tych 16) tu juz
znacznie prostsze. Trzeba znalezc takie 8 liczb ze da sie z nich
utworzyc dwie czworki o tej samej sumie (od razu widac ze suma
calej osemki powinna byc parzysta). Teraz mozesz dowolnie
permutowac kazda z czworek niezalenie i niezaleznie permutowac
cala reszte kwadratu. Dostaniesz jakies 24mln kwadratow od kazdej
znalezionej pary czworek (jak to wydrukujesz?). Nigdy nie nie
bawilem taka matematyka, ale jak widac chwila namyslu pozwala
znalezc wazne zaleznosci. Zawsze nalezy troche pomyslec przed
pisaniem programu, wrecz wiecej czasu nalezy myslec nad problemem
niz nad programem. No i jeszcze sa google... Krzysiek Rudnik
Dzieki
Łukasz Misek
2004-12-19 21:33:47 UTC
Permalink
Post by Avatar
witam serdecznie.
Pisze program w C++ ktory ma symulowac "magiczny kwadrat"
czyli do tablicy 4x4 wpisuje liczby od 1 do 16 sumuje przekatne
i sprawdzam czy ich sumy sa rowne. Teraz tak, wszystko cacy,
program mi chodzi, ale chcialbym zapytac, w jaki sposob mozna
wypelnic cala tablice _Wszystkimi_ mozliwymi permutacjami z tego
zakresu jakikolwiek hint bedzie przydatny, a za algorytm, czy
tez zrodelko sie nie pogniewam :)
Po prostu wiem ze odpowiedz mam na wyciagniecie reki ale jej
nie widze.
a nie lepiej uzyc gotowego algorytmu na tworzenie kwadratow magicznych?
niestety teraz to go nie podam, bo nie pamietam, ale kiedys w
podstawowce sie pojawil ;) i mozna nim bylo utworzyc *dowolnej*
wielkosci kwadrat magiczny...
--
Łukasz
Loading...