Как я могу продолжать ходить к следующему номеру в моем итерационном для всех значений моего симпи -суммирования?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу продолжать ходить к следующему номеру в моем итерационном для всех значений моего симпи -суммирования?

Сообщение Anonymous »

Я работаю в Python и специально использую суммирование симпи. У меня есть итератор, который просто поднимается на 1, используя Next (). Для всех значений моего суммирования симпи я хочу продолжать подниматься на 1, используя Next (). < /P>
Я имею в виду, что когда x - 1, то это должно быть 1 Когда он работает Next (), тогда, когда X будет 2, он должен быть 2, потому что он снова работает (), а когда 3 должно быть 3, потому что он снова работает () снова и так далее. < /P>
Код, который я использую: < /p>
from sympy import symbols, summation, gcdex, Piecewise, Eq, Abs, Mul, Le, mod_inverse, solve, invert, Mod, Max, log, \
floor, simplify, And, Ge
import random

x = symbols('x')

#just a placeholder function that I was trying to change how next() operates so it can go up by 1 each tine i call next()
def callFunc(args):
if args:
return args
return args

class DynamicIterator:
def __init__(self, func, a, b):
self.func = func # Function to generate values
self.counter = 0 # Keeps track of the current index
self.a = a
self.b = b
self.can_advance = True # Default to allowing automatic advancement
self.advanced = False # Flag to control when to advance

def __iter__(self):
return self

def __next__(self, ):
if not self.can_advance:
raise StopIteration # Stop iteration if cannot advance

value = self.func(self.counter, self.a, self.b) # Generate the value
self.counter += 1 # Increment the counter

return value

def generate_combinations(n, a, c):
range_size = c - a + 1
l = a + (n % range_size)
return l # Only return `l`

# Create an instance of the iterator
expressions = DynamicIterator(generate_combinations, 1, 2 ** 256 + 1)

def next_expr():
iterate = next(expressions)
return iterate

def formula109(l, integer):
random_number = random.randint(integer, integer+1) + l
random_number2 = random_number - l # i removed the x so you can see how the values are the same each time without me using x.

return random_number2

logic = formula109(x, callFunc(next_expr()))
total = summation(logic, (x, 1, 900000))
print(total)

#see what numbers are for each value of x
terms = [logic.subs(x, k) for k in range(1, 10)]
print(terms)
< /code>
Как вы можете видеть, когда вы запустите это, значения остаются на уровне 2 все время. Я знаю, что если я добавлю к этому X, то он поднимется, но это не то, что я хочу. Я хочу иметь возможность использовать Next () каждый раз, чтобы повторно использовать каждый раз для каждого значения x. Кто -нибудь может показать мне, что делать? < /P>
Вывод: < /p>
1800000
[2, 2, 2, 2, 2, 2, 2, 2, 2]


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

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

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

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

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

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

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