""" Napisz program, który - podaną przez użytkownika w argumencie wywołania programu liczbę razy - zasymuluje rzut kostką (typową 6-ścienną kością do gry) oraz rzut monetą. Następnie niech program: 1) zwróci listy uzyskanych w każdym kroku wyników (niech w przypadku monety orzeł odpowiada wartości 1, a reszka -1, 2) utworzy i zwróci listę powstałą przez przemnożenie odpowiadających sobie elementów list z poprzedniego punktu, 3) stworzy i zwróci listę zawierającą cząstkowe sumy elementów listy z punktu powyżej, 4) zwróci jakie unikalne wartości pojawiły się w liście powyżej, 5) to samo, ale z informacją ile razy pojawiła się każda z nich. """ import random import sys N=int(sys.argv[1]) #liczba rund losowania #za pomocą list sklejanych (_ to nazwa zmiennej! umownie sugeruje, że nie jest nigdzie potrzebna) k=[random.randint(1,6) for _ in range(N)] m=[random.choice([-1,1]) for _ in range(N)] #Można jeszcze zwięźlej, używając random.choices: #k=random.choices(range(1,6),k=N) #m=random.choices([-1,1],k=N) mk=[m[i]*k[i] for i in range(N)] sums=[] suma=0 for i in range(N): suma+=mk[i] sums.append(suma) #zwięźlej, ale niekoniecznie wydajniej, bo sumowanie jest powtarzane od nowa: #sums=[sum(mk[0:i+1]) for i in range(0,N)] wartosci=sorted(set(sums)) slownik={} for i in sorted(sums): slownik[i]=slownik.get(i,0) + 1 print("Kości: \n",k) print("Monety: \n",m) print("Przemnożone: \n",mk) print("Suma cząstkowa: \n",sums) print("Wartości: \n",wartosci) print("Wystąpienia: \n",slownik)