![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 2.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam taki dylemat algorytmiczny ![]() Otóż przykładowo posiadam tablice Kod $array = array(100, 400, 300, 200, 600, 110, 500, 100); i teraz potrzebuje wylosować jedną wartość ale na podstawie parametru. Chodzi oto aby np wartość 600 miała 5% szans na wylosowanie a wartość 100 np 40%. Nie mam pojęcia jak się za to zabrać. Wszelkie sugestie, podpowiedzi mile widziane ![]() Z góry dziękuje za pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Rozkład zmiennej losowej. Probabilistyka się kłania.
Ten post edytował masiakla 6.09.2010, 20:13:24 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 2.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za pomoc
![]() Teraz zagłębie się w odpowiednie lektury i mam nadzieję że uda mi się przejść ten problem Dziękuje. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 31 Dołączył: 30.03.2009 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Wybierz taki generator liczb, aby z jednakowym prawdopodobieństwem losował liczby ze zbioru {1,2,3,...,100}.
podziel ten zbiór na mniejsze podzbiory tak aby: jeśli wylosowana liczba jest ze zbioru {1,2,3,...,39,40} to przyporządkuj->100, 40% jeśli wylosowana liczba jest ze zbioru {41,42,43,44,45}to przyporządkuj->600, 5% itd. pozdrawiam. np: http://masterixzone.wordpress.com/2008/05/...dolosowych-cz2/ Ten post edytował celbarowicz 6.09.2010, 20:47:50 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 429 Pomógł: 195 Dołączył: 6.10.2008 Skąd: Kraków/Tomaszów Lubelski Ostrzeżenie: (0%) ![]() ![]() |
Naster, nie wiem jak na podstawie parametru, parametru w funkcji? Ja zrobiłem tak (wiem że pewnie zaraz ktoś poda specjalną funkcję która właśnie to robi co poniżej napisałem no ale, nudziło mi się
@masiakla, mieciesz pojęciami ![]() Ten post edytował MateuszS 6.09.2010, 20:53:15 -------------------- O! Zimniok :P
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 2.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Panowie up:
Nie do końca oto chodzi. Nie będę znał wartości tablicy od samego początku (tzn wartości będą dynamicznie zwracane podczas działania skryptu i nie sposób ich będzie przewidzieć). Czyli nie mogę ustalić że wartość 300 będzie równe 50% :-) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Komentarz twój wynika właśnie z definicji rozkładu zmiennej gdzie suma prawdopodobieństw ma wynosić 1, dla skończonej i nieskończonej ilości wartości. W tym przypadku mamy "rozkład skokowy" co niejako ułatwia zadanie z policzeniem. @masiakla, mieciesz pojęciami ![]() Po napisaniu posta właśnie zacząłem się zastanawiać, czy nie za bardzo pojechałem, bo wszak dla mnie wydaje się to proste, ale mam trochę lat na karku, o tyle dla kogoś innego może być trudne w zrozumieniu. Do tego napisanie aplikacji, która to wykorzystuje, może nie być wcale takie proste, choćby ogarnięcie zagadnień, których nawet za moich czasów nie uczyli w liceum, a to zadanie wymaga też poznania innych działów matematyki. Dlatego rozwiązanie twoje i celbarowicz'a wydaja mnie się bardziej przystępne. Ten post edytował masiakla 6.09.2010, 21:19:48 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 2.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
masiakla: byłoby o wiele łatwiejsze (i wpadłem na nie wcześniej) gdyby nie szkopuł jeden.
Ok powiem otwarcie o co chodzi. Skrypt będzie obliczał procentową szansę na to że gracz zada cios swój na podstawie statystyk innych graczy (nie będę znał ich ilości aż do czasu uruchomienia skryptu, więc muszę na jakiejś funkcji operować). Z matematyką nie miałem jak dotąd problemów (poziom licealny ukonczony ![]() Edit: Jak się nie mylę problem mój muszę rozpatrywać na podstawie rozkładu gaussa (rozkładu normalnego) Ten post edytował Naster 6.09.2010, 21:34:47 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Rozkład Gaussa służy do rozkładu zmiennej ciągłej, w twoim przypadku jest skokowa. Czyli rozkład dwumianowy lub Poissona. Ogólnie musisz policzyć tylko dystrybuantę i wartość oczekiwaną.
Linki: W miarę przywoite wytłumaczenie wartości oczekiwanej Ten post edytował masiakla 6.09.2010, 22:26:19 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:22 |