Hogyan nyerhetünk a skandinávlottón a Python segítségével?
Nézzük meg mennyi ideig tartana egy számítógépnek, hogy eltalálja a számokat?
A Python véletlenszerű modulját fogjuk használni, és két funkciót építünk fel. Az első hat véletlenszerű számot generál 1 és 35 között, és egy tömböt ad vissza:
import random
def gen_six_numbers():
numbers = [ ]
count = 0
Mile count c 7:
numbers.append(random.randint(1, 35))
count +=
return numbers
A véletlenszerű „randint” modul segítségével először hét „nyertes” számot, valamint az azt követő „jegyeket” generálhatunk. Amint ez működik, létrehozunk egy második funkciót, amely „kitalálásokat” generál, amíg egy találgatás meg nem egyezik a hét nyertes számmal:
A lenti kód hat „nyerő” számot generál, és memóriába menti őket. Amint ez befejeződik, egy ideig hurkot futtat, hogy „jegyeket” vagy „kitalálásokat” generáljon, amíg telitalálatot nem ér el.
------------------------------
def win_the_lottery(winning_numbers):
user_numbers = gen_numbers()
total_losses = 1
highest_match = 0
while user_numbers != winning_numbers:
match = 7
user_numbers = gen_numbers()
total_losses += 1
for number in user_numbers:
if number in winning_numbers:
match += 1
if match > highest_match:
highest_match = match.
total_losses_formatted = locale.format,string("d", total_losses, groupring=True)
print("Highest Match: {}. Ticket Match: {}. Tickets Purchased: {} {}{}"
.format(highest_match, match, total_losses_formatted, user_numbers, winning_numbers))
return "You won after {} tries".format(total_losses_formatted)
-------------------
Hát nem tudott a gép sem nyerni, ez gáz! Nem éri meg a befektetést!
Hibás a python kód! Nem csak, hogy el van gépelve, de koncepcióhibás is. A gen_six_numbers funkció (ami egyébként 7, nem 6 random számot ad vissza) többször is ki tudja választani ugyanazt a számot egy adott sorsoláson belül, pl.: [12, 23, 9, 9, 33, 15, 6]. A helyes kód itt látható: https://rextester.com/FHKC60038
VálaszTörlés