Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][algorytm]Obliczenia matematyczne.
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Witam,

Temat moze jest troche offtopic dlatego nie obraze sie (bardzo) jak zostanie zamkniety albo usuniety ale.....
Jak obliczyc, jakich uzyc matematycznych funkcji, badz algorytmu aby sprawdzic wynik pewnego zagadnienia.
Mamy plansze skladajaca sie z 225 pol. Jest 2 graczy ktorzy naprzemiennie zajmuja po jednym polu. Chcialbym dowiedziec sie ile jest mozliwosci rozegrania partii. Oczywiscie kolejnosc zajmowanych pol ma znaczenie.
Wprawdzie pisalem mature z maty ale to bylo jeszcze w XXw. wiec nie pamietam nawet jakiego hasla uzyc u wujka G aby sie czegos zaczepic.
Dopiero jak poznam metode obliczenia tego to zabiore sie za ukladanie algorytmu i programowanie komputerowego przeciwnika.

PS. Wiekszosc zna ta gre ale nie powiem co to winksmiley.jpg
darko
http://pl.wikipedia.org/wiki/Kombinacja_be...%C3%B3rze%C5%84

// edit
strzelam na ślepo z sympatii do Ciebie krwiopijco :-), być może uniknę kompromitacji biggrin.gif bo maturę z matmy zdawałem jeszcze wcześniej od Ciebie
sadistic_son
Tak, to jest to. Dzięki:)
Jednakże istnieje ponad 50 miliardów możliwości rozegrania partyjki, chyba niemożliwe będzie ułożyć sprawny algorytm sad.gif
W razie jakby się przydało zamieszczam kod obliczający C ze wzoru na kombinację bez powtórzeń. Pisałem go na szybko więc jest trochę bałagan i może są jakieś zbędne zmienne ale działa poprawnie.
  1. $n=intval($_POST['n']);
  2. $k=intval($_POST['k']);
  3. // n musi byc >= k i obie musza byc liczbami naturalnymi, czyli dodatnie nieulamki.
  4. $w=1;
  5. for($i=1;$i<=$n;){
  6. $w++;
  7. $w=$i*$w;
  8. $i++;
  9. }
  10. $n_=$w;
  11.  
  12. $w=1;
  13. for($i=1;$i<=$k;){
  14. $w++;
  15. $w=$i*$w;
  16. $i++;
  17. }
  18. $k_=$w;
  19.  
  20. $w=1;
  21. $nk=$n-$k;
  22. for($i=1;$i<=$nk;){
  23. $w++;
  24. $w=$i*$w;
  25. $i++;
  26. }
  27. $nk_=$w;
  28.  
  29. $c=$n_/($k_*$nk);
flashdev
Wydaje mi się, że @darko się pomylił. Bo jeśli rozmawiamy o krze kółko i krzyżyk (plansza 15x15), to nie będzie aż tyle możliwych rozwiązań.
Wiele z tych układów wynikających z kombinacji bez powtórzeń nigdy nie wystąpi, ponieważ gra wcześniej się zakńczy.
Nie widzę w swojej głowie (za małą mam głowę) jakiegoś sprawnego algorytmu do obliczenia tego.
Jedyne co mi przychodzi na myśl, to to że końcowy wynik można podzielić przez 4 a następnie przez 2, co wynika z rotacji oraz odbicia lustrzanego odpowiednio.

Co do Twojego kodu @sadistic_son to co robisz w pętli da się zrobić w jednej linijce odpowiednim wyrażeniem. Szukaj pod hasłem 'iloczyn ciągu arytmetycznego'.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.