Как я могу неоднократно обновлять переменную в суммировании симпи?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу неоднократно обновлять переменную в суммировании симпи?

Сообщение Anonymous »

У меня есть симпатичное суммирование в Python, и в настоящее время я использую переменную, которая постоянно обновляется каждый раз, когда я это говорю. Это называется результатом.
При суммировании я хочу иметь возможность выполнять это действие, при котором переменная обновляется при каждом запуске, но на каждом этапе суммирования. Я покажу вам, о чем говорю.
Я использую следующий код:

Код: Выделить всё

from sympy import symbols, summation,Piecewise, invert

x = symbols('n')
def add(P1_c, P2_c, p, k):

if P1_c == 0:
return P2_c  # P1 is the point at infinity
if P2_c == 0:
return P1_c  # P2 is the point at infinity

x1 = P1_c % k
y1 = P1_c // k
x2 = P2_c % k
y2 = P2_c // k

if x1 == x2 and y1 != y2:
return 0

if x1 == x2 and y1 == y2:

m = (3 * x1 ** 2 * invert(2 * y1, p)) % p
else:

m = ((y2 - y1) * invert(x2 - x1, p)) % p

x3 = (m ** 2 - x1 - x2) % p
y3 = (m * (x1 - x3) - y1) % p

# Return combined number
return x3 + k * y3

def multiply(P_c, scalar, p, k,n):

result= 0  # Point at infinity (neutral element)
current = P_c

result = add(result, current, p, k)
result = add(result, current, p, k)
result = add(result,current,p,k)
#  result = point_add(result,current,p,k)
# uncomment to see different results
m = Piecewise(
(result,True)
)

return result
k = 2 ** 256
p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
Gx = (0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,
0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)[0]
Gy = (0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,

0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)[1]
G_c = Gx + k * Gy
logic = multiply(G_c, x, p, k, x)

result2 = summation(logic, (x,1, 1))  # Sum of n**2 from n=1 to n=5
print(result2)
Как видите, в моем коде в функции Multiply переменная результата должна быть указана несколько раз, чтобы ее можно было обновить. Я хочу иметь возможность автоматически обновлять его на каждом этапе суммирования.
Я хочу, чтобы вы помогли мне использовать кусочную функцию Multiply, которая выполняет это поведение за меня. p>
Я хочу, чтобы переменная результата неоднократно обновлялась по одному для каждого шага моего суммирования, вместо того, чтобы указывать это явно, как я это делал в функции умножения.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -summation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»