From 0159f5b1848c49514e463a795a7131c6c816609c Mon Sep 17 00:00:00 2001 From: Kostanjevec Date: Fri, 29 Apr 2022 18:55:36 +0200 Subject: [PATCH] dodal funkcijo za generiranje prob decka --- test.py | 65 ++++++++++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/test.py b/test.py index 2a5c540..2676854 100644 --- a/test.py +++ b/test.py @@ -21,8 +21,8 @@ def generate_clltn (n_of_cards): # USER ## config -max_due = 2 -max_new = 1 +max_due = 15 +max_new = 5 max_deck_size = max_new + max_due # setup user_clltn = generate_clltn(100) @@ -49,16 +49,12 @@ def run_sr(): #2 Probabilistic ## problem je, da pri probabilističnem težko nardiš, da pač en dan ni nič v decku, ker pač vedno izbere glede določeno število pač glede na uteži -def generate_weights(user_clltn, max_deck_size): +def generate_weights(user_clltn): """generiramo uteži za due in new cards posebej; vrne tuple dveh listov za weightse...""" weights_due = [] weights_new = [] - for card in user_clltn: - #problem je edgecase, ko ni populacije kar propade... - if len(user_clltn) 0: @@ -70,25 +66,30 @@ def generate_weights(user_clltn, max_deck_size): return weights_new, weights_due -#TODO -def generate_deck_prob(user_clltn, max_deck_size, max_new): - deck = [] - for c in range(max_deck_size): - deck.append(user_clltn[c]) # tu vzame prvic ampak moralo bi random c brez ponavljanja obteženih z "due". rabimo tudi naključnih/najnovejših? max_new novih cardov. +def generate_deck_prob(user_clltn, max_new, max_due): + deck, dck_due, dck_new = [], [], [] + w_new, w_due = generate_weights(user_clltn) + + new_cards = sum(w_new) + due_cards = sum(w_due) + + #preverimo, če imamo dovolj kartic + if new_cards0: - #due - dck = choices(user_clltn, cum_weights=weights_new, k=max_due) - dck_new = choices(user_clltn, k=max) - #new - #?? - else: - dck = choices(user_clltn, k=max_new) - """ return deck - +print(generate_deck_prob(user_clltn, max_new, max_due)) +#TODO? def prob_eval(card): id, title, due, interval, owned_by, shared = card #due je tukaj interest rate @@ -119,9 +120,17 @@ def run_prob(deck, user_clltn): # random python stuff +""" +Output = [item for item in Input + if item[0] == 3 or item[1] == 3] ## kako najt tuple v listu in ga spremeniti? -## kako vzet weight iz tuple in ga assignat pri izbiranju? +recordlist = [('sku1','item1','bro1'),('sku2','item2','bro2')] +for index, item in enumerate(recordlist): + itemlist = list(item) + if itemlist[0] == 'sku1': + itemlist[1] = itemlist[1]+','+'item' + item = tuple(itemlist) - - -print(generate_weights(user_clltn, max_deck_size)) \ No newline at end of file + recordlist[index] = item +print(recordlist) +""" \ No newline at end of file