Skip to content

Instantly share code, notes, and snippets.

@sircinnamon
Created October 4, 2018 21:27
Show Gist options
  • Save sircinnamon/236cfc45561593772fdbfad83f415ae8 to your computer and use it in GitHub Desktop.
Save sircinnamon/236cfc45561593772fdbfad83f415ae8 to your computer and use it in GitHub Desktop.
partitions.py
bins = [0]*12
inputs = 22
threshold = 0.5
def generate_children(arr, index, remaining, max):
total = 0
valid = 0
if(index==len(arr) and remaining==0):
if((sum(arr[:3]))/inputs > threshold):
print("GOOD: "+str(arr))
return (1,1)
else:
print("BAD: "+str(arr))
return (1,0)
if((index==len(arr)) or (remaining/(len(arr)-index))>max):
# unsolvable
return (0,0)
for i in range(0,min(max+1, remaining+1)):
new_arr = arr[:index] + [i] + [0]*(len(arr)-(index+1))
# if(index==0):print(new_arr)
t = generate_children(new_arr, index+1, remaining-i, min(max,i))
total = total+t[0]
valid = valid+t[1]
return (total,valid)
print(generate_children(bins, 0, inputs, inputs))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment