Найти - Пользователи
Полная версия: Являеться ли последовательность геометрической прогрессией?
Начало » Python для новичков » Являеться ли последовательность геометрической прогрессией?
1 2 3 4 5
FishHook
у FishHook'а первая выдаёт ошибку с индексом
lst = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192]
if len(lst) < 2:
    raise ValueError("len < 2")
n = lst[1]/lst[0]
start = lst[0]
def get_progress(start, n):
    val = start
    while 1:
        val *= n
        yield val
progress = get_progress(start, n)
success = True
for x in lst[1:]:
    if x != progress.next():
        success = False
        break
print success
Isem
После прически.
lst = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192]
if not lst:
    raise ValueError("lst is empty")
def get_progress(start, n):
    while True:
        yield start
        start *= n
print( all( a==b for a,b in zip( get_progress(lst[0],lst[1%len(lst)]/lst[0]), lst ) ) )
Isem
Можно еще предположить, что lst может быть равен нулю. Тогда добавить одно условие:
print( not any(lst) or all(...) )
py.user.next
FishHook
fixed
несколько ошибок:
деление на ноль

возвращает ложь для
[1, 2, 4]

возвращает истину для
[-1, 4, -4]

второй код:
деление на ноль

Isem
После прически.
считает правильным списком
[1]
FishHook
Isem
py.user.next
считает правильным списком
Я специально так сделал, так как одно число не противоречит определению геометрической прогрессии. Просто мы не знаем множитель, вот и все.


py.user.next
Isem
Просто мы не знаем множитель, вот и все.
это где говорится, что последовательность из одного элемента является геометрической прогрессией ?

формула n-ого члена известна (получается q = 1)
формула суммы n первых членов известна, и применима, только когда q != 1
Isem
py.user.next
это где говорится, что последовательность из одного элемента является геометрической прогрессией ?
Формально вы правы, но мы же программисты.
Budulianin
Isem
Формально вы правы, но мы же программисты.

Что это значит ?
Isem
Budulianin
Что это значит ?
Это значит, что список
[1]
можно считать геометрической прогрессией, которая начинается с 1.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB