Проблема, с которой я сталкиваюсь, заключается в том, что это не так. увеличивается на 1 каждый раз, когда в формуле суммирования используется новое значение. Он использует только номер 1.
Я использую следующий код:
Код: Выделить всё
from sympy import symbols, summation,Piecewise,Eq,Mul
x = symbols('0')
class Incrementer:
def __init__(self):
self.value = 0
def increment(self):
self.value += 1
return self.value
def formula(address):
address0 = int(address,16)
inc = Incrementer()
def formula109(b):
f = b + inc.increment() - b
formula10 = hex(f)
d = (int(formula10,16) - b) + b
return d
logic = formula109(x)
expr = Piecewise(
(logic, Eq(logic,address0)), # When logic equals m, return logic
(0, True) # For all other values of logic, return 0
)
total = summation(expr, (x, 1, 89238201021929110))
print(total)
return total
Причина, по которой я использую 89238201021929110, заключается в том, что я фрилансер Fiverr и мой клиент. хочет заняться математикой в области аналитики, но с помощью автоматизации Python, чтобы это было проще. Из-за этого нам необходимо проверить значения для всех шестнадцатеричных строк в диапазонах 1–89238201021929110, и нам нужно сложить целочисленные значения всех них, как это делается при суммировании.
Подробнее здесь: https://stackoverflow.com/questions/790 ... mpy-in-pyt