from random import sample import threading def guessInput(amount): while True: try: answer = input(f'Gjett {amount} tall\n').split(' ') assert len(answer) == amount return [int(num) for num in answer] except: print(f'Er du sikker på at du har skrevet inn {amount} tall? Prøv igjen.') drawNumber = lambda numList, amount: sample(numList, amount) compList = lambda list1, list2: len([1 for elem in list1 if elem in list2]) def Winnings(rightNums, rightExtraNums): isBiggerThan = lambda rn, ren: rightNums >= rn and rightExtraNums >= ren if isBiggerThan(7,0): return 2749455 elif isBiggerThan(6,1): return 102110 elif isBiggerThan(6,0): return 3385 elif isBiggerThan(5,0): return 95 elif isBiggerThan(4,1): return 45 else: return 0 numbers = list(range(1,35)) calculateRightNumbers = lambda list: compList(list, drawNumber(numbers, len(list))) combinedRightNumbers = lambda list1, list2: Winnings(calculateRightNumbers(list1), calculateRightNumbers(list2)) def main(): myGuess = guessInput(7) print('Nå skal du gjette ekstra-tall') myExtraGuess = guessInput(3) print('Du vant {} kroner'.format(combinedRightNumbers(myGuess, myExtraGuess) - 5)) # g) def calculateMillionSum(threadNum): timesPerTread = int(1000000/threadNum) results = [] def threadTarget(): partialSum = sum([combinedRightNumbers(sample(numbers, 7), sample(numbers, 3)) - 5 for _ in range(timesPerTread)]) results.append(partialSum) threads = [threading.Thread(target=threadTarget) for _ in range(threadNum)] for thread in threads: thread.start() for thread in threads: thread.join() return sum(results) if __name__ == "__main__": # main() result = calculateMillionSum(64) print(result)