我正在Sage Cell Server中编译此Cython代码,但出现以下错误。
undeclared name not builtin: array
Run Code Online (Sandbox Code Playgroud)
它在Sage Notebook中显示相同的错误。我认为它不能识别numpy,array但这很奇怪,因为我已经导入了numpy。
cython('''
cimport numpy as np
ctypedef np.int DTYPE
def computeDetCy(np.ndarray[DTYPE, ndim=2] matrix):
return determ(matrix,len(matrix))
cdef inline int determ(np.ndarray[DTYPE, ndim=2] matrix, int n):
cdef int det = 0
cdef int p=0
cdef int h
cdef int k
cdef int i=0
cdef int j=0
cdef np.ndarray[DTYPE, ndim=2] temp=np.zeros(4,4)
if n == 1:
return matrix[0][0]
elif n == 2:
return matrix[0][0]*matrix[1][1] - matrix[0][1]*matrix[1][0]
else:
for p in range(0, n): …Run Code Online (Sandbox Code Playgroud) 我是Sage和Python的新手.为了编写sage程序,我去了sagemath cloud,当我尝试创建一个新文件时,我有两个选项:sage工作表和IPython笔记本.我注意到它们都有着色和缩进.但我想知道:有没有什么方法可以同时利用它们?我怎样才能将它们组合在一起?例如,在IPython笔记本中,如何让它理解sage命令?
为了给出上述明确而具体的例子,在Sage教程中,有因子(-2007).如果你在sage工作表上运行它,它会给出(如你所料),-1*3 ^ 2*223,但在IPython笔记本中,它显示'factor'未定义.如何在IPynb中编写因子(-2007),运行它,得到-1*3 ^ 2*223?
我正在Windows 8,64位环境中工作,只要它是相关的.
我对有关有限现场操作的SAGE文档感到非常沮丧。我想做的是以下几点:
在具有不可约多项式x ^ 8 + x ^ 4 + x ^ 3 + x + 1的GF(2 ^ 8)中,我想找到元素x ^ 8 + 1的逆。如何在SAGE中做到这一点?
编辑:我需要澄清一下,我想将鼠尾草作为库导入,以在鼠尾草外壳的Python脚本之外使用,因为我需要它在Django上作为服务器运行。
我必须从源头编译贤哲吗?
我一直在尝试将sage用于我的python脚本。
代码如下:
#!/usr/bin/env sage -python
from django.shortcuts import render
from django.http import HttpResponse
import sys
from django.http import HttpRequest
from django.template import RequestContext, loaders
from sage.all import *
def index(request):
querystring = request.GET.get('querystring')
return HttpResponse(querystring)
# Create your views here.
Run Code Online (Sandbox Code Playgroud)
但是我遇到一个错误:没有名为sage.all的模块
我没有遇到麻烦
#!/usr/bin/env sage -python
import sys
from sage.all import *
var('x')
print integrate(x,x)
print latex(integrate(sin(x),x))
Run Code Online (Sandbox Code Playgroud)
从命令行 ./sage -python /path/to/script.py
所以我不明白为什么我不能导入鼠尾草...
目录“ sage”位于python路径中,位于我要在其中使用的views.py文件旁边,我尝试将其放置在各个不同的位置,或将其附加到sys.path中,以徒劳无功。非常感谢任何帮助,这是一个非常重要的项目。我正在尝试将Sage导入Django项目。
编辑:我不使用./sage -python运行第二个,而是在Django localhost服务器上将它作为views.py运行。
首先,我必须说我使用Sage数学的知识非常有限,但我真的想改进并能够解决我遇到的这些问题.我被要求实施以下内容:
使用密码系统NTRU的Sage实现和库"加密"来构建具有128位安全性的KEM/DEM系统,生成128位的密钥,并且在DEM阶段,使用128位的密码AES.
在尝试解决时,我遇到了sage中NTRU-Prime的实现,并希望用它来解决这个问题:
p = 739; q = 9829; t = 204
Zx.<x> = ZZ[]; R.<xp> = Zx.quotient(x^p-x-1)
Fq = GF(q); Fqx.<xq> = Fq[]; Rq.<xqp> = Fqx.quotient(x^p-x-1)
F3 = GF(3); F3x.<x3> = F3[]; R3.<x3p> = F3x.quotient(x^p-x-1)
import itertools
def concat(lists):
return list(itertools.chain.from_iterable(lists))
def nicelift(u):
return lift(u + q//2) - q//2
def nicemod3(u): # r in {0,1,-1} with u-r in {...,-3,0,3,...}
return u - 3*round(u/3)
def int2str(u,bytes):
return ''.join([chr((u//256^i)%256) for i in range(bytes)])
def str2int(s):
return sum([ord(s[i])*256^i for i in …Run Code Online (Sandbox Code Playgroud) 我最近问了一个关于math.stackexchange的问题,关于如何计算交叉超立方体和超球面的体积,我得到了一个非常有用的答案.
现在,我正在尝试利用sage最低维度生成一些分析解决方案.由于我对sage的非常天真的理解,谷歌的帮助和一些试验和错误,我提出了以下解决方案:
from sage.symbolic.integration.integral import definite_integral
R = var("R")
assume(R>0)
x = var("x")
V0(R) = 1
V = [V0]
for i in range(1,4):
vlast = V[i-1]
vnew(R) = definite_integral( vlast(R=sqrt(R**2 - x**2)),x,-min(R,1),min(R,1))
V.append(vnew)
print(V)
Run Code Online (Sandbox Code Playgroud)
但是,输出并不是我预期的结果:
[R |--> 1, R |--> 2*R, R |--> pi*R^2, R |--> 4/3*pi*R^3]
Run Code Online (Sandbox Code Playgroud)
Sage非常好地计算了n维球体的体积,但它在某种程度上没有发现结果函数将在R中分段定义的事实.
我如何使用这个min功能有什么问题吗?我如何定义(或命名)我的变量有什么问题吗?我搞砸了哪里?
我想知道为什么这两个“程序”产生不同的输出
f(x)=x^2
f(90).mod(7)
Run Code Online (Sandbox Code Playgroud)
和
def f(x):
return(x^2)
f(90).mod(7)
Run Code Online (Sandbox Code Playgroud)
谢谢
目前,我在处理文件时将其命名为 .py,然后在需要执行时将其更改为 .sage。有没有办法在 VS code 上获取 sage 文件的 python 配色方案?
有一个名为 SAGE 企业管理的扩展声称可以做到这一点,但说明有点不清楚:
它说:
Create a x3-code named folder inside your ~/.vscode/extensions/;
Copy all files in yours recent created folder;
Reload VS Code and enjoy;
我尝试将我的 sage 文件复制到该文件夹中,并将 x3-extension 的内容复制到该文件夹中,但这两种方法都不起作用。
在我的 Python 工作流程中,我通常使用该-i标志来打开 Python 解释器,该解释器首先执行我正在处理的脚本,然后允许我与其交互。例如,在test.py:
#!/usr/bin/env python
print("Hello World")
x=2
Run Code Online (Sandbox Code Playgroud)
当我python -i test.py从命令行运行时,我收到以下输出:
Hello World!
>>>
Run Code Online (Sandbox Code Playgroud)
交互模式已启用,但脚本中所做的所有定义都可供我使用。键入x将产生2.
Sagemath 是否有类似的流程?我已经尝试过该-c标志,但sage -c "attach('test.sage')"加载我正在处理的模块后该命令无法进入交互模式。
理想情况下,会有一种比使用expect概述的解决方案更简单的解决方案,但如果这确实是最佳解决方案,那么如何使用expect来使 Sagemath 在加载特定文件后启动交互式会话?
我开始为扩展名为 .sage 的 sagemath 编写一些代码。我在 Sublime 文本编辑器上写这些。但是 .sage 文档没有语法突出显示。Sage 主要基于 Python。那么有什么方法可以让 sublime 在使用 .sage 文件时使用 Python 语法。?
感谢是提前的。
syntax-highlighting sage sublimetext sublimetext2 sublimetext3
sage ×10
python ×7
aes ×1
color-scheme ×1
cryptography ×1
cython ×1
django ×1
editor ×1
finite-field ×1
ide ×1
import ×1
interactive ×1
module ×1
numpy ×1
sublimetext ×1
sublimetext2 ×1
sublimetext3 ×1