Skip to content

Instantly share code, notes, and snippets.

@ferayebend
Last active July 20, 2017 10:23
Show Gist options
  • Save ferayebend/b4269df95b6f10ca12131ed9a5f0c332 to your computer and use it in GitHub Desktop.
Save ferayebend/b4269df95b6f10ca12131ed9a5f0c332 to your computer and use it in GitHub Desktop.
import sys
import itertools
import copy
import random
def overlap_rule(l, mi):
desired = []
length = len(l)
c_l = copy.deepcopy(l)
index = random.randint(1,length) - 1
chosen_element = c_l[index]
c_l.pop(index)
desired.append(chosen_element)
for element in c_l:
overlap_eval = True
for added_element in desired:
intersection = set(added_element) & set(element)
min_overlap = (len(intersection) <= mi)
overlap_eval = overlap_eval and min_overlap
if overlap_eval:
desired.append(element)
return desired
if __name__ == "__main__":
ingredients = int(sys.argv[1])
min_overlap = int(sys.argv[2])
all_recipes = [i for i in itertools.combinations(range(ingredients),4)]
rule_recipes = overlap_rule(all_recipes,min_overlap)
print(rule_recipes)
print(len(rule_recipes))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment