Игра Solving Make 24 Exponent edition с использованием Python - PullRequest
0 голосов
/ 07 марта 2020

Для тех, кто не знает, «Сделайте экспонентное издание 24», это игра, в которой вы должны использовать квадрат, куб, квадрат root и куб root только один раз для любого числа, вы также можете использовать '×', '+', '-', '/' и '()'.

https://en.wikipedia.org/wiki/24_Game#Algebra / Exponents_Edition

Я пытался сделать это с грубой силой, но есть так много возможных комбинаций. Есть ли простой способ сделать это?

num_1 = int(input("Enter the first number: "))
num_2 = int(input("Enter the second number: "))
num_3 = int(input("Enter the third number: "))
num_4 = int(input("Enter the fourth number: "))
solutions = []
for a in range(1,3):
    for b in range(1,3):
        for c in range(1,3):
            for d in range(1,3):
                solutions.append((num_1**a)+(num_2**a)+(num_3**a)+(num_4**a))
                solutions.append((num_1**a)+(num_2**a)+(num_3**a)+(num_4**b))
                solutions.append((num_1**a)+(num_2**a)+(num_3**a)+(num_4**c))
                solutions.append((num_1**a)+(num_2**a)+(num_3**a)+(num_4**d))
                solutions.append((num_1**a)+(num_2**a)+(num_3**b)+(num_4**a))
                solutions.append((num_1**a)+(num_2**a)+(num_3**b)+(num_4**b))
                solutions.append((num_1**a)+(num_2**a)+(num_3**b)+(num_4**c))
                solutions.append((num_1**a)+(num_2**a)+(num_3**b)+(num_4**d))
                solutions.append((num_1**a)+(num_2**a)+(num_3**c)+(num_4**a))
                solutions.append((num_1**a)+(num_2**a)+(num_3**c)+(num_4**b))
                solutions.append((num_1**a)+(num_2**a)+(num_3**c)+(num_4**c))
                solutions.append((num_1**a)+(num_2**a)+(num_3**c)+(num_4**d))
                solutions.append((num_1**a)+(num_2**a)+(num_3**d)+(num_4**a))
                solutions.append((num_1**a)+(num_2**a)+(num_3**d)+(num_4**b))
                solutions.append((num_1**a)+(num_2**a)+(num_3**d)+(num_4**c))
                solutions.append((num_1**a)+(num_2**a)+(num_3**d)+(num_4**d))
                solutions.append((num_1**a)+(num_2**b)+(num_3**a)+(num_4**a))
                solutions.append((num_1**a)+(num_2**b)+(num_3**a)+(num_4**b))
                solutions.append((num_1**a)+(num_2**b)+(num_3**a)+(num_4**c))
                solutions.append((num_1**a)+(num_2**b)+(num_3**a)+(num_4**d))
                solutions.append((num_1**a)+(num_2**b)+(num_3**b)+(num_4**a))
                solutions.append((num_1**a)+(num_2**b)+(num_3**b)+(num_4**b))
                solutions.append((num_1**a)+(num_2**b)+(num_3**b)+(num_4**c))
                solutions.append((num_1**a)+(num_2**b)+(num_3**b)+(num_4**d))
                solutions.append((num_1**a)+(num_2**b)+(num_3**c)+(num_4**a))
                solutions.append((num_1**a)+(num_2**b)+(num_3**c)+(num_4**b))
                solutions.append((num_1**a)+(num_2**b)+(num_3**c)+(num_4**c))
                solutions.append((num_1**a)+(num_2**b)+(num_3**c)+(num_4**d))
                solutions.append((num_1**a)+(num_2**b)+(num_3**d)+(num_4**a))
                solutions.append((num_1**a)+(num_2**b)+(num_3**d)+(num_4**b))
                solutions.append((num_1**a)+(num_2**b)+(num_3**d)+(num_4**c))
                solutions.append((num_1**a)+(num_2**b)+(num_3**d)+(num_4**d))
                solutions.append((num_1**a)+(num_2**c)+(num_3**a)+(num_4**a))
                solutions.append((num_1**a)+(num_2**c)+(num_3**a)+(num_4**b))
                solutions.append((num_1**a)+(num_2**c)+(num_3**a)+(num_4**c))
                solutions.append((num_1**a)+(num_2**c)+(num_3**a)+(num_4**d))
                solutions.append((num_1**a)+(num_2**c)+(num_3**b)+(num_4**a))
                solutions.append((num_1**a)+(num_2**c)+(num_3**b)+(num_4**b))
                solutions.append((num_1**a)+(num_2**c)+(num_3**b)+(num_4**c))
                solutions.append((num_1**a)+(num_2**c)+(num_3**b)+(num_4**d))
                solutions.append((num_1**a)+(num_2**c)+(num_3**c)+(num_4**a))
                solutions.append((num_1**a)+(num_2**c)+(num_3**c)+(num_4**b))
                solutions.append((num_1**a)+(num_2**c)+(num_3**c)+(num_4**c))
                solutions.append((num_1**a)+(num_2**c)+(num_3**c)+(num_4**d))
                solutions.append((num_1**a)+(num_2**c)+(num_3**d)+(num_4**a))
                solutions.append((num_1**a)+(num_2**c)+(num_3**d)+(num_4**b))
                solutions.append((num_1**a)+(num_2**c)+(num_3**d)+(num_4**c))
                solutions.append((num_1**a)+(num_2**c)+(num_3**d)+(num_4**d))
                solutions.append((num_1**a)+(num_2**d)+(num_3**a)+(num_4**a))
                solutions.append((num_1**a)+(num_2**d)+(num_3**a)+(num_4**b))
                solutions.append((num_1**a)+(num_2**d)+(num_3**a)+(num_4**c))
                solutions.append((num_1**a)+(num_2**d)+(num_3**a)+(num_4**d))
                solutions.append((num_1**a)+(num_2**d)+(num_3**b)+(num_4**a))
                solutions.append((num_1**a)+(num_2**d)+(num_3**b)+(num_4**b))
                solutions.append((num_1**a)+(num_2**d)+(num_3**b)+(num_4**c))
                solutions.append((num_1**a)+(num_2**d)+(num_3**b)+(num_4**d))
                solutions.append((num_1**a)+(num_2**d)+(num_3**c)+(num_4**a))
                solutions.append((num_1**a)+(num_2**d)+(num_3**c)+(num_4**b))
                solutions.append((num_1**a)+(num_2**d)+(num_3**c)+(num_4**c))
                solutions.append((num_1**a)+(num_2**d)+(num_3**c)+(num_4**d))
                solutions.append((num_1**a)+(num_2**d)+(num_3**d)+(num_4**a))
                solutions.append((num_1**a)+(num_2**d)+(num_3**d)+(num_4**b))
                solutions.append((num_1**a)+(num_2**d)+(num_3**d)+(num_4**c))
                solutions.append((num_1**a)+(num_2**d)+(num_3**d)+(num_4**d))
                solutions.append((num_1**b)+(num_2**a)+(num_3**a)+(num_4**a))
                solutions.append((num_1**b)+(num_2**a)+(num_3**a)+(num_4**b))
                solutions.append((num_1**b)+(num_2**a)+(num_3**a)+(num_4**c))
                solutions.append((num_1**b)+(num_2**a)+(num_3**a)+(num_4**d))
                solutions.append((num_1**b)+(num_2**a)+(num_3**b)+(num_4**a))
                solutions.append((num_1**b)+(num_2**a)+(num_3**b)+(num_4**b))
                solutions.append((num_1**b)+(num_2**a)+(num_3**b)+(num_4**c))
                solutions.append((num_1**b)+(num_2**a)+(num_3**b)+(num_4**d))
                solutions.append((num_1**b)+(num_2**a)+(num_3**c)+(num_4**a))
                solutions.append((num_1**b)+(num_2**a)+(num_3**c)+(num_4**b))
                solutions.append((num_1**b)+(num_2**a)+(num_3**c)+(num_4**c))
                solutions.append((num_1**b)+(num_2**a)+(num_3**c)+(num_4**d))
                solutions.append((num_1**b)+(num_2**a)+(num_3**d)+(num_4**a))
                solutions.append((num_1**b)+(num_2**a)+(num_3**d)+(num_4**b))
                solutions.append((num_1**b)+(num_2**a)+(num_3**d)+(num_4**c))
                solutions.append((num_1**b)+(num_2**a)+(num_3**d)+(num_4**d))
                solutions.append((num_1**b)+(num_2**b)+(num_3**a)+(num_4**a))
                solutions.append((num_1**b)+(num_2**b)+(num_3**a)+(num_4**b))
                solutions.append((num_1**b)+(num_2**b)+(num_3**a)+(num_4**c))
                solutions.append((num_1**b)+(num_2**b)+(num_3**a)+(num_4**d))
                solutions.append((num_1**b)+(num_2**b)+(num_3**b)+(num_4**a))
                solutions.append((num_1**b)+(num_2**b)+(num_3**b)+(num_4**b))
                solutions.append((num_1**b)+(num_2**b)+(num_3**b)+(num_4**c))
                solutions.append((num_1**b)+(num_2**b)+(num_3**b)+(num_4**d))
                solutions.append((num_1**b)+(num_2**b)+(num_3**c)+(num_4**a))
                solutions.append((num_1**b)+(num_2**b)+(num_3**c)+(num_4**b))
                solutions.append((num_1**b)+(num_2**b)+(num_3**c)+(num_4**c))
                solutions.append((num_1**b)+(num_2**b)+(num_3**c)+(num_4**d))
                solutions.append((num_1**b)+(num_2**b)+(num_3**d)+(num_4**a))
                solutions.append((num_1**b)+(num_2**b)+(num_3**d)+(num_4**b))
                solutions.append((num_1**b)+(num_2**b)+(num_3**d)+(num_4**c))
                solutions.append((num_1**b)+(num_2**b)+(num_3**d)+(num_4**d))
                solutions.append((num_1**b)+(num_2**c)+(num_3**a)+(num_4**a))
                solutions.append((num_1**b)+(num_2**c)+(num_3**a)+(num_4**b))
                solutions.append((num_1**b)+(num_2**c)+(num_3**a)+(num_4**c))
                solutions.append((num_1**b)+(num_2**c)+(num_3**a)+(num_4**d))
                solutions.append((num_1**b)+(num_2**c)+(num_3**b)+(num_4**a))
                solutions.append((num_1**b)+(num_2**c)+(num_3**b)+(num_4**b))
                solutions.append((num_1**b)+(num_2**c)+(num_3**b)+(num_4**c))
                solutions.append((num_1**b)+(num_2**c)+(num_3**b)+(num_4**d))
                solutions.append((num_1**b)+(num_2**c)+(num_3**c)+(num_4**a))
                solutions.append((num_1**b)+(num_2**c)+(num_3**c)+(num_4**b))
                solutions.append((num_1**b)+(num_2**c)+(num_3**c)+(num_4**c))
                solutions.append((num_1**b)+(num_2**c)+(num_3**c)+(num_4**d))
                solutions.append((num_1**b)+(num_2**c)+(num_3**d)+(num_4**a))
                solutions.append((num_1**b)+(num_2**c)+(num_3**d)+(num_4**b))
                solutions.append((num_1**b)+(num_2**c)+(num_3**d)+(num_4**c))
                solutions.append((num_1**b)+(num_2**c)+(num_3**d)+(num_4**d))
                solutions.append((num_1**b)+(num_2**d)+(num_3**a)+(num_4**a))
                solutions.append((num_1**b)+(num_2**d)+(num_3**a)+(num_4**b))
                solutions.append((num_1**b)+(num_2**d)+(num_3**a)+(num_4**c))
                solutions.append((num_1**b)+(num_2**d)+(num_3**a)+(num_4**d))
                solutions.append((num_1**b)+(num_2**d)+(num_3**b)+(num_4**a))
                solutions.append((num_1**b)+(num_2**d)+(num_3**b)+(num_4**b))
                solutions.append((num_1**b)+(num_2**d)+(num_3**b)+(num_4**c))
                solutions.append((num_1**b)+(num_2**d)+(num_3**b)+(num_4**d))
                solutions.append((num_1**b)+(num_2**d)+(num_3**c)+(num_4**a))
                solutions.append((num_1**b)+(num_2**d)+(num_3**c)+(num_4**b))
                solutions.append((num_1**b)+(num_2**d)+(num_3**c)+(num_4**c))
                solutions.append((num_1**b)+(num_2**d)+(num_3**c)+(num_4**d))
                solutions.append((num_1**b)+(num_2**d)+(num_3**d)+(num_4**a))
                solutions.append((num_1**b)+(num_2**d)+(num_3**d)+(num_4**b))
                solutions.append((num_1**b)+(num_2**d)+(num_3**d)+(num_4**c))
                solutions.append((num_1**b)+(num_2**d)+(num_3**d)+(num_4**d))
                solutions.append((num_1**c)+(num_2**a)+(num_3**a)+(num_4**a))
                solutions.append((num_1**c)+(num_2**a)+(num_3**a)+(num_4**b))
                solutions.append((num_1**c)+(num_2**a)+(num_3**a)+(num_4**c))
                solutions.append((num_1**c)+(num_2**a)+(num_3**a)+(num_4**d))
                solutions.append((num_1**c)+(num_2**a)+(num_3**b)+(num_4**a))
                solutions.append((num_1**c)+(num_2**a)+(num_3**b)+(num_4**b))
                solutions.append((num_1**c)+(num_2**a)+(num_3**b)+(num_4**c))
                solutions.append((num_1**c)+(num_2**a)+(num_3**b)+(num_4**d))
                solutions.append((num_1**c)+(num_2**a)+(num_3**c)+(num_4**a))
                solutions.append((num_1**c)+(num_2**a)+(num_3**c)+(num_4**b))
                solutions.append((num_1**c)+(num_2**a)+(num_3**c)+(num_4**c))
                solutions.append((num_1**c)+(num_2**a)+(num_3**c)+(num_4**d))
                solutions.append((num_1**c)+(num_2**a)+(num_3**d)+(num_4**a))
                solutions.append((num_1**c)+(num_2**a)+(num_3**d)+(num_4**b))
                solutions.append((num_1**c)+(num_2**a)+(num_3**d)+(num_4**c))
                solutions.append((num_1**c)+(num_2**a)+(num_3**d)+(num_4**d))
                solutions.append((num_1**c)+(num_2**b)+(num_3**a)+(num_4**a))
                solutions.append((num_1**c)+(num_2**b)+(num_3**a)+(num_4**b))
                solutions.append((num_1**c)+(num_2**b)+(num_3**a)+(num_4**c))
                solutions.append((num_1**c)+(num_2**b)+(num_3**a)+(num_4**d))
                solutions.append((num_1**c)+(num_2**b)+(num_3**b)+(num_4**a))
                solutions.append((num_1**c)+(num_2**b)+(num_3**b)+(num_4**b))
                solutions.append((num_1**c)+(num_2**b)+(num_3**b)+(num_4**c))
                solutions.append((num_1**c)+(num_2**b)+(num_3**b)+(num_4**d))
                solutions.append((num_1**c)+(num_2**b)+(num_3**c)+(num_4**a))
                solutions.append((num_1**c)+(num_2**b)+(num_3**c)+(num_4**b))
                solutions.append((num_1**c)+(num_2**b)+(num_3**c)+(num_4**c))
                solutions.append((num_1**c)+(num_2**b)+(num_3**c)+(num_4**d))
                solutions.append((num_1**c)+(num_2**b)+(num_3**d)+(num_4**a))
                solutions.append((num_1**c)+(num_2**b)+(num_3**d)+(num_4**b))
                solutions.append((num_1**c)+(num_2**b)+(num_3**d)+(num_4**c))
                solutions.append((num_1**c)+(num_2**b)+(num_3**d)+(num_4**d))
                solutions.append((num_1**c)+(num_2**c)+(num_3**a)+(num_4**a))
                solutions.append((num_1**c)+(num_2**c)+(num_3**a)+(num_4**b))
                solutions.append((num_1**c)+(num_2**c)+(num_3**a)+(num_4**c))
                solutions.append((num_1**c)+(num_2**c)+(num_3**a)+(num_4**d))
                solutions.append((num_1**c)+(num_2**c)+(num_3**b)+(num_4**a))
                solutions.append((num_1**c)+(num_2**c)+(num_3**b)+(num_4**b))
                solutions.append((num_1**c)+(num_2**c)+(num_3**b)+(num_4**c))
                solutions.append((num_1**c)+(num_2**c)+(num_3**b)+(num_4**d))
                solutions.append((num_1**c)+(num_2**c)+(num_3**c)+(num_4**a))
                solutions.append((num_1**c)+(num_2**c)+(num_3**c)+(num_4**b))
                solutions.append((num_1**c)+(num_2**c)+(num_3**c)+(num_4**c))
                solutions.append((num_1**c)+(num_2**c)+(num_3**c)+(num_4**d))
                solutions.append((num_1**c)+(num_2**c)+(num_3**d)+(num_4**a))
                solutions.append((num_1**c)+(num_2**c)+(num_3**d)+(num_4**b))
                solutions.append((num_1**c)+(num_2**c)+(num_3**d)+(num_4**c))
                solutions.append((num_1**c)+(num_2**c)+(num_3**d)+(num_4**d))
                solutions.append((num_1**c)+(num_2**d)+(num_3**a)+(num_4**a))
                solutions.append((num_1**c)+(num_2**d)+(num_3**a)+(num_4**b))
                solutions.append((num_1**c)+(num_2**d)+(num_3**a)+(num_4**c))
                solutions.append((num_1**c)+(num_2**d)+(num_3**a)+(num_4**d))
                solutions.append((num_1**c)+(num_2**d)+(num_3**b)+(num_4**a))
                solutions.append((num_1**c)+(num_2**d)+(num_3**b)+(num_4**b))
                solutions.append((num_1**c)+(num_2**d)+(num_3**b)+(num_4**c))
                solutions.append((num_1**c)+(num_2**d)+(num_3**b)+(num_4**d))
                solutions.append((num_1**c)+(num_2**d)+(num_3**c)+(num_4**a))
                solutions.append((num_1**c)+(num_2**d)+(num_3**c)+(num_4**b))
                solutions.append((num_1**c)+(num_2**d)+(num_3**c)+(num_4**c))
                solutions.append((num_1**c)+(num_2**d)+(num_3**c)+(num_4**d))
                solutions.append((num_1**c)+(num_2**d)+(num_3**d)+(num_4**a))
                solutions.append((num_1**c)+(num_2**d)+(num_3**d)+(num_4**b))
                solutions.append((num_1**c)+(num_2**d)+(num_3**d)+(num_4**c))
                solutions.append((num_1**c)+(num_2**d)+(num_3**d)+(num_4**d))
                solutions.append((num_1**d)+(num_2**a)+(num_3**a)+(num_4**a))
                solutions.append((num_1**d)+(num_2**a)+(num_3**a)+(num_4**b))
                solutions.append((num_1**d)+(num_2**a)+(num_3**a)+(num_4**c))
                solutions.append((num_1**d)+(num_2**a)+(num_3**a)+(num_4**d))
                solutions.append((num_1**d)+(num_2**a)+(num_3**b)+(num_4**a))
                solutions.append((num_1**d)+(num_2**a)+(num_3**b)+(num_4**b))
                solutions.append((num_1**d)+(num_2**a)+(num_3**b)+(num_4**c))
                solutions.append((num_1**d)+(num_2**a)+(num_3**b)+(num_4**d))
                solutions.append((num_1**d)+(num_2**a)+(num_3**c)+(num_4**a))
                solutions.append((num_1**d)+(num_2**a)+(num_3**c)+(num_4**b))
                solutions.append((num_1**d)+(num_2**a)+(num_3**c)+(num_4**c))
                solutions.append((num_1**d)+(num_2**a)+(num_3**c)+(num_4**d))
                solutions.append((num_1**d)+(num_2**a)+(num_3**d)+(num_4**a))
                solutions.append((num_1**d)+(num_2**a)+(num_3**d)+(num_4**b))
                solutions.append((num_1**d)+(num_2**a)+(num_3**d)+(num_4**c))
                solutions.append((num_1**d)+(num_2**a)+(num_3**d)+(num_4**d))
                solutions.append((num_1**d)+(num_2**b)+(num_3**a)+(num_4**a))
                solutions.append((num_1**d)+(num_2**b)+(num_3**a)+(num_4**b))
                solutions.append((num_1**d)+(num_2**b)+(num_3**a)+(num_4**c))
                solutions.append((num_1**d)+(num_2**b)+(num_3**a)+(num_4**d))
                solutions.append((num_1**d)+(num_2**b)+(num_3**b)+(num_4**a))
                solutions.append((num_1**d)+(num_2**b)+(num_3**b)+(num_4**b))
                solutions.append((num_1**d)+(num_2**b)+(num_3**b)+(num_4**c))
                solutions.append((num_1**d)+(num_2**b)+(num_3**b)+(num_4**d))
                solutions.append((num_1**d)+(num_2**b)+(num_3**c)+(num_4**a))
                solutions.append((num_1**d)+(num_2**b)+(num_3**c)+(num_4**b))
                solutions.append((num_1**d)+(num_2**b)+(num_3**c)+(num_4**c))
                solutions.append((num_1**d)+(num_2**b)+(num_3**c)+(num_4**d))
                solutions.append((num_1**d)+(num_2**b)+(num_3**d)+(num_4**a))
                solutions.append((num_1**d)+(num_2**b)+(num_3**d)+(num_4**b))
                solutions.append((num_1**d)+(num_2**b)+(num_3**d)+(num_4**c))
                solutions.append((num_1**d)+(num_2**b)+(num_3**d)+(num_4**d))
                solutions.append((num_1**d)+(num_2**c)+(num_3**a)+(num_4**a))
                solutions.append((num_1**d)+(num_2**c)+(num_3**a)+(num_4**b))
                solutions.append((num_1**d)+(num_2**c)+(num_3**a)+(num_4**c))
                solutions.append((num_1**d)+(num_2**c)+(num_3**a)+(num_4**d))
                solutions.append((num_1**d)+(num_2**c)+(num_3**b)+(num_4**a))
                solutions.append((num_1**d)+(num_2**c)+(num_3**b)+(num_4**b))
                solutions.append((num_1**d)+(num_2**c)+(num_3**b)+(num_4**c))
                solutions.append((num_1**d)+(num_2**c)+(num_3**b)+(num_4**d))
                solutions.append((num_1**d)+(num_2**c)+(num_3**c)+(num_4**a))
                solutions.append((num_1**d)+(num_2**c)+(num_3**c)+(num_4**b))
                solutions.append((num_1**d)+(num_2**c)+(num_3**c)+(num_4**c))
                solutions.append((num_1**d)+(num_2**c)+(num_3**c)+(num_4**d))
                solutions.append((num_1**d)+(num_2**c)+(num_3**d)+(num_4**a))
                solutions.append((num_1**d)+(num_2**c)+(num_3**d)+(num_4**b))
                solutions.append((num_1**d)+(num_2**c)+(num_3**d)+(num_4**c))
                solutions.append((num_1**d)+(num_2**c)+(num_3**d)+(num_4**d))
                solutions.append((num_1**d)+(num_2**d)+(num_3**a)+(num_4**a))
                solutions.append((num_1**d)+(num_2**d)+(num_3**a)+(num_4**b))
                solutions.append((num_1**d)+(num_2**d)+(num_3**a)+(num_4**c))
                solutions.append((num_1**d)+(num_2**d)+(num_3**a)+(num_4**d))
                solutions.append((num_1**d)+(num_2**d)+(num_3**b)+(num_4**a))
                solutions.append((num_1**d)+(num_2**d)+(num_3**b)+(num_4**b))
                solutions.append((num_1**d)+(num_2**d)+(num_3**b)+(num_4**c))
                solutions.append((num_1**d)+(num_2**d)+(num_3**b)+(num_4**d))
                solutions.append((num_1**d)+(num_2**d)+(num_3**c)+(num_4**a))
                solutions.append((num_1**d)+(num_2**d)+(num_3**c)+(num_4**b))
                solutions.append((num_1**d)+(num_2**d)+(num_3**c)+(num_4**c))
                solutions.append((num_1**d)+(num_2**d)+(num_3**c)+(num_4**d))
                solutions.append((num_1**d)+(num_2**d)+(num_3**d)+(num_4**a))
                solutions.append((num_1**d)+(num_2**d)+(num_3**d)+(num_4**b))
                solutions.append((num_1**d)+(num_2**d)+(num_3**d)+(num_4**c))
                solutions.append((num_1**d)+(num_2**d)+(num_3**d)+(num_4**d))
for i in solutions:
    if i == 24:
        print(i)

А также это не показывает, как я получил 24.

1 Ответ

0 голосов
/ 07 марта 2020

Я бы предложил посмотреть в этой статье формулу, написанную в python.

...