2015-09-22 5 views
1

Я пытаюсь создать код, который сначала найдет мне все идеальные квадраты под modulos p, в функции perfectsq(p).Использование списков для поиска решений

С этим списком идеальных квадратов. Я хочу найти все решения уравнения y^2=x^3+Ax+B. Я делаю это, используя список в perfectsq(p), чтобы проверить, что в этом списке m=x^3+Ax+B. Может кто-нибудь сказать мне, почему этот код не компилируется?

def perfectsq(p): 
    x=[] 
    for i in range(1,p): 
     m=(i**2)%p 
     x.extend(m) 
     i+=1 


def ellipticpt(a, b, p): 
    x=perfectsq(p) 
    if 4*(a**3)+27*(b**2) != 0: 
     for i in range(0,p): 
      m=(i**3+a*i+b)%p 
      if m in x: 
       i=x.index(m)+1 
       print (m,i) 
       i+=1 
      else: 
       i+=1 
    else: 
     print "Error" 
+0

какая ошибка поживаешь? –

+0

Если вы находитесь в Python 3+, 'print' требует скобки:' print ("Error") '. –

+0

=============================== >>> >>> ellipticpt (8,7,73) Traceback (самый последний вызов последнего): Файл "", строка 1, в ellipticpt (8,7,73) Файл "C: \ Users \ Alexandra \ Anaconda \ Scripts \ Alexandra \ Проблема Set C Code" , строка 54, в эллиптической форме x = perfectsq (p) Файл «C: \ Users \ Alexandra \ Anaconda \ Scripts \ Alexandra \ Problem Set C Code», строка 50, в perfectsq x.extend (m) ТипError: Объект 'int' не повторяется –

ответ

5

perfectsq x.extend(m) TypeError: 'int' object is not iterable

Вы можете не .extend() списка с одним номером аргументом, то для расширения списка с другим списком. Используйте вместо этого .append(), чтобы добавить в конец списка.

perfectsq Также() не возвращает ничего

Try:

def perfectsq(p): 
    x=[] 
    for i in range(1,p): 
     m=(i**2)%p 
     x.append(m) 
     i+=1 
    return x 


def ellipticpt(a, b, p): 
    x=perfectsq(p) 
    if 4*(a**3)+27*(b**2) != 0: 
     for i in range(0,p): 
      m=(i**3+a*i+b)%p 
      if m in x: 
       i=x.index(m)+1 
       print (m,i) 
       i+=1 
      else: 
       i+=1 
    else: 
     print "Error" 
+0

Он работает !!! спасибо –

Смежные вопросы