I have a fairly basic math problem in Python & I dont know where to look.
Explanation:
- I have 100 dollars.
- I have 10 friends.
- I want to unevenly distribute my money across my friends.
- I want to this over & over again using a algorithm.
My only requirements are the following:
- The smallest amount any friend can receive should be > $5.
- The biggest amount any friend can receive should be < $40.
from random import randint, shuffle
def divide_number(number, parts_number, allow_zero = False ):
if (parts_number > number):
raise ValueError("Number of parts can't be higher than the number");
parts = {currency: []}
number_rest = number
for i in range(1, parts_number + 1):
if (i == parts_number):
parts[currency].append(number_rest)
break
else:
new_number = randint(0, number_rest) if allow_zero else randint(1, (number_rest -
(parts_number - i)) // 2)
number_rest -= new_number
parts[currency].append(new_number)
return parts
Running the function:
divide_number(100, 10)
Output
[2, 37, 8, 10, 2, 4, 4, 4, 26, 3]
This piece of code I've found online seems to work just great but it doesn't meet my requirements. How do I alter it so it does meet my requirements regarding min and max values?
So basicly, I want to go from unfair distribution to fair distribution.