1. Python / Говнокод #26300

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 02 Января 2020

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

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

    Ошибка компиляции комментария:
    1. Гости могут высказаться только в понедельник, среду, четверг или воскресение
    ava Семь раз отмерь — один отрежь, guest!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код