Rachunek prawdopodobieństwa/kombinacje
JetemCiemny: Witam, jak obliczyć wszystkie możliwe wyniki/kombinacje dla sum:
1. 100
2. 110
3. 120
Wiadomo ze będzie 300, 310, 320, 330, 340, 350, 350, 360. Ale nie ogarniam jaki wzór będzie
potrzeby przy większych ilościach. Np.
1. 150
2. 220
3. 330
4. 130
26 sty 12:30
Jerzy:
| | |
Jeśli dwuskładnikowe , to | |
| |
26 sty 12:34
Jerzy:
A właściwie,to nie wiem, o co pytasz.
26 sty 12:35
JetemCiemny: Już tłumaczę dokładniej...
Mam pierwszą pozycję wynikiem 100
Druga pozycja z wynikiem 110
Mam trzecią pozycję z wynikiem 120
I chciałbym otrzymać wszystkie możliwe sumy tych trzech pozycji. Czyli 100+100+100 = 300
100+100+110 = 310, nastepnie 100+110+110 = 320 itd. Przy trzech pozycjach to można szybko
samemu policzyć, ale przy 12 pozycjach to już problem.
26 sty 12:41
Jerzy:
A do czego ci to potrzebne ?
26 sty 12:43
JetemCiemny: Do projektu. Generator czasu na poszczególne elementy.
Ten przelicznik zamienia się na czas.
100 = 1h 40min
110 = 1h 50min
120 = 2h
Te wartości są sumowane. Następnie przed granicą, która wynosi max 480 czyli 8h.
Granica to te sumy, gdy kombinacja tych sum da np. 310 (5h 10min) to dalej program
sam przydziela np. 120(7h 10min) i wylicza resztę czasu nie przekraczającą 8h. Czyli tutaj
zostatnie 50.
26 sty 12:51
Jerzy:
To nie pomogę, nie znam się na programowaniu.
26 sty 12:54
JetemCiemny: To nie ma żadnego wzoru, który da wszystkie możliwe wyniki trzech sum ? o.O
26 sty 12:56
Jerzy:
W kombinatoryce z pewnością nie.
26 sty 12:57
JetemCiemny: To w jakim dziale powinienem szukać ?
26 sty 12:59
Pytający:
Zależy w czym piszesz, poza tym wciąż nie wiadomo np.:
• czy zawsze sumujesz po 3 liczby, czy po tyle, ile jest wszystkich "pozycji"?
• interesują Cię jedynie możliwe sumy do uzyskania, czy też istotne jest na ile sposobów można
daną sumę uzyskać?
• dane wejściowe zawsze są tak ustrukturyzowane (tworzą ciąg arytmetyczny)?
Prosty skrypt w pythonie (korzystający z gotowej funkcji bibliotecznej):
https://ideone.com/Pvd2Ko
Pewnie właśnie kombinacje z powtórzeniami Cię interesują.
26 sty 15:28
JetemCiemny: Pisze to własnie w Pythonie
Tutaj wycinek funkcji :
https://ideone.com/Pq9PgK
Myślę ze teraz zrozumiesz. Tutaj są akurat 3 pozycje(100, 110, 120). Bo tyle daje możliwości.
Później chciałbym dodać więcej szt. na WO. Chwilowo skupiam się na 2 szt. i wychodzą 3
możliwości,
wiec trzeba je sumować na różne sposoby. Zaraz zagłębię się w kodzie który podesłałeś.
Przy podaniu 3.... wo = int(input("Sztuki na WO: "))
Są już takie możliwości:
1. 3szt. każdy po 50 = 150
2. 3szt. 50,50,60 = 160
3. 3szt. 50,60,60 = 170
4. 3szt. 60,60,60 = 180
Po głębszych przemyśleniach stwiedzam, że cięzko jest uzyskac wyniki nie przekraczające 8h,
albo z otrzymaniem reszty nie niższej niż np. wartosc ustalona 50min.
Tutaj chodzi o to ze masz 9 rulonów i masz przydzielić im czasy. Z góry wiem ze 6 z nich muszą
mieć 50 min a 3 po 1h.
Tylko że ma to wyglądać tak:
2 rulony − czas laczny
3 rulony − czas laczny
4 rulony − czas laczny
I to wszystko musi zmieścić się w 8h. To jednak zbyt skomplikowane. Musi być wiele zmiennych i
warunków, które wykluczają póżniej inne możliwości.
26 sty 16:27
Pytający:
Ano nie do końca rozumiem, bo wciąż jasno nie określiłeś problemu. Najpierw określ porządnie
jakie są dane i jaki ma być pożądany rezultat.
Potem śmiało coś tam dopowiadaj o swoich dotychczasowych próbach.
W sensie napisz tak tę treść, że jakbyś ją dostał na jakimś egzaminie i miałbyś sklecić
algorytm rozwiązujący ten problem, to nie miałbyś pytań, co do samej treści. Nikt Ci nie powie
jak coś rozwiązać, jeśli nie zrozumie, o co pytasz. Nie mam pojęcia czym są WO, sztuki na WO,
rulony itp. (i być może nie muszę rozumieć, może to nieistotne, ale tego nie wiem).
Raz mówisz że masz jakieś 3 pozycje, a raz że "masz 9 rulonów i masz przydzielić im czasy. Z
góry wiem ze 6 z nich muszą mieć 50 min a 3 po 1h". No zgadywać nie będę, co jest danymi
wejściowymi i co chcesz uzyskać.
26 sty 18:53