Змея / Говнокод #26300 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
from random import random
from math import log

def championship(champions = 16):
    space = '          '
    count_of_laps = int(log(champions,2))
    koef = [i for i in range(count_of_laps)]

    nummer = 1
    num_of_champions = []
    for i in range(champions):
        num_of_champions.append(nummer)
        nummer += 2
    value_of_champions = [("%.4f" % (random())) for i in range(champions)]

    lap0 = []
    for i in range(champions):
        lap0.append([num_of_champions[i], value_of_champions[i], space*koef[0]])
    koef.append(koef[-1]+1)
    count_lap = 1

    laps = []
    for i in range(count_of_laps):
        fighter1 = 0
        fighter2 = 1
        exec(f'lap{count_lap} = []')

        while fighter2 <= eval(f'len(lap{count_lap - 1})'):
            num_winner = (eval(f'lap{count_lap - 1}[{fighter1}][0]') + eval(f'lap{count_lap - 1}[{fighter2}][0]'))//2
            value_winner = max(eval(f'lap{count_lap - 1}[{fighter1}][1]'), eval(f'lap{count_lap - 1}[{fighter2}][1]'))
            probel = space*koef[i+1]
            winner = [num_winner, value_winner, probel]
            exec(f'lap{count_lap}.append({winner})')
            fighter1 += 2
            fighter2 += 2
        count_lap += 1

    laps = []
    for i in range(count_of_laps+1):
        exec(f'laps += lap{i}')
    laps.sort()

    for i in range(nummer-2):
        print(laps[i][2] + str(laps[i][1]))

if __name__ == "__main__":
    while True:
        value = int(input('Write power of two: '))
        print()
        if (value & (value - 1)) == 0:
            championship(value)
            print()
        else:
            print('not power of two')

Прога воспроизводит турнир между цифрами от 0 до 1. Самое большое побеждает

Запостил: Fantoner Fantoner, (Updated )

Комментарии (0) RSS

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8