2016-03-23 3 views
2

Я никогда не использовал SageMath в своей жизни, и я полагаюсь на интернет для крушения курса о том, как получить то, что я хочу, из SageMath (для построения эллиптической кривой над конечным полем).Построение эллиптической кривой в SageMath

Я использую this code, наклеенные ниже:

@interact 
def f(label='37a', p=tuple(prime_range(1000))): 
try: E = EllipticCurve(label) 
except: 
print "invalid label %s"%label; return 
try: 
show(graphics_array([plot(E,thickness=3),plot(E.change_ring(GF(p)))]),frame=True) 
except Exception, msg: 
print msg 

Там, кажется, скобка отсутствует, но у меня нет опыта, чтобы знать, где он должен идти. Сообщение об ошибке я получаю:

Error in lines 1-6 
Traceback (most recent call last): 
    File "/projects/sage/sage-6.10/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 905, in execute 
    exec compile(block+'\n', '', 'single') in namespace, locals 
    File "<string>", line 4 
    except: 
     ^
IndentationError: unindent does not match any outer indentation level 
+0

Также задал вопрос по адресу http://ask.sagemath.org/question/32866/elliptic-curve-finite-field/ –

ответ

1

ошибка, которую вы дали, кажется, указывает, что линия после except: не отступом более except: отступом. Python много заботится о уровнях отступов.

Вы можете попробовать следующее.

@interact 
def f(label='37a', p=tuple(prime_range(1000))): 
    try: 
     E = EllipticCurve(label) 
    except: 
     print "invalid label %s"%label; return 
    try: 
     show(graphics_array([plot(E,thickness=3), plot(E.change_ring(GF(p)))]), frame=True) 
    except Exception, msg: 
     print msg 

Кроме того, вы должны использовать четыре пробела перед кодом, чтобы они отображались в виде кода. Для получения дополнительной информации см. How do I format My Code Blocks?

+0

Точно, что я был после, спасибо большое! – Alice

+0

Можно ли изменить кривую в этом коде? – Alice

+1

@Alice Я предполагаю, что метка относится к маркировке Кремоны эллиптической кривой. Поэтому вы должны изменить заголовок метки на любую интересующую вас кривую. Например, вы можете попробовать label = '35a1' или что-то, чтобы поднять эту эллиптическую кривую. [У меня на самом деле нет мудреца передо мной, но это похоже на путь] – mixedmath