|
|
@ -167,6 +167,13 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
|
k+=1 |
|
|
|
cisla = rocnik_cisla[k-1] |
|
|
|
for ci in range(3, len(cisla)+1): # pro všechna čísla |
|
|
|
resitele_size = round(7/8 * 30 * size) # očekáváný celkový počet řešitelů |
|
|
|
poc_res = rnd.randint(round(resitele_size/8), round(3*resitele_size/4)) |
|
|
|
# dané číslo řeší něco mezi osminou a tříčtvrtinou všech řešitelů |
|
|
|
# (náhodná hausnumera, možno změnit) |
|
|
|
# účelem je, aby se řešení generovala z menší množiny řešitelů a tedy |
|
|
|
# bylo více řešení od jednoho řešitele daného čísla |
|
|
|
resitele_cisla = rnd.sample(resitele, poc_res) |
|
|
|
for pi in range(1, ((size + 1) // 2) + 1): |
|
|
|
|
|
|
|
poc_op = rnd.randint(1, 4) # počet opravovatelů |
|
|
@ -226,9 +233,9 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) |
|
|
|
for ri in range(poc_reseni): |
|
|
|
if rnd.randint(1, 10) == 6: |
|
|
|
# cca desetina řešení od více řešitelů |
|
|
|
res_vyber = rnd.sample(resitele, rnd.randint(2, 5)) |
|
|
|
res_vyber = rnd.sample(resitele_cisla, rnd.randint(2, 5)) |
|
|
|
else: |
|
|
|
res_vyber = rnd.sample(resitele, 1) |
|
|
|
res_vyber = rnd.sample(resitele_cisla, 1) |
|
|
|
res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0]) |
|
|
|
# problem a resitele přiřadíme později, ManyToManyField |
|
|
|
# se nedá vyplnit v create() |
|
|
|