我想尝试PyCharm进行鼠尾草数学开发.通常我运行eclipse来进行sage开发,但现在我想用PyCharm尝试它.
要使用sage环境变量启动eclipse,在命令行中我通常会执行以下操作:
sage -sh
cd /path/to/eclipse
./eclipse
Run Code Online (Sandbox Code Playgroud)
第一行加载sage环境变量,其余部分启动eclipse.我怎么能为pyCharm做同样的事情?(注意我使用Mac和Ubuntu进行sage开发;上面的命令对两个操作系统都是不可知的)
我需要使用标准的Python包创建一个numpy 2D数组,它表示多边形的二进制掩码.
(更大的上下文:我想使用scipy.ndimage.morphology.distance_transform_edt获取此多边形的距离变换.)
谁能告诉我怎么做?
我可以在Jupyter中使用Python Kernel.我正在寻找一种在Jupyter中使用sagemath的方法.我无法看到安装它的方法.怎么做?
首先,我必须说我使用Sage数学的知识非常有限,但我真的想改进一个能够解决我遇到的这些问题.我被要求实施以下内容:
1 - 阅读FIPS 186-4(http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf)ECDSA的定义,并使用Sage数学实现:
(a) prime eliptic curves (P-xxx)
(b) binary eliptic curves (B-xxx)
Run Code Online (Sandbox Code Playgroud)
我尝试通过浏览互联网来解决(a)并最终得到以下代码:
class ECDSA_a:
def __init__(self):
#Parameters for Curve p-256 as stated on FIPS 186-4 D1.2.3
p256 = 115792089210356248762697446949407573530086143415290314195533631308867097853951
a256 = p256 - 3
b256 = ZZ("5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b", 16)
## base point values
gx = ZZ("6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296", 16)
gy = ZZ("4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5", 16)
self.F = GF(p256)
self.C = EllipticCurve ([self.F(a256), self.F(b256)])
self.G = self.C(self.F(gx), self.F(gy))
self.N = FiniteField (self.C.order()) # how many points are …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法,以简单/有效的方式在PHP中执行Matrix操作.
我希望能够进行基本的矩阵运算,如反转,乘法,行列式,加,减,求解线性方程Ax = B,转置等.
我正在寻找小尺寸的矩阵(我想要反转的矩阵最多为100x100,而我想要乘法/转置的矢量可能是1000x1).
我找到了一个PEAR包Math_Matrix,但它似乎被忽略了(我使用E_STRICT开发并抛出了许多已弃用的警告).我发现的其他链接似乎大部分已破坏且未更新.
我发现了Lapack PHP包,但它没有其他操作,如乘法或减法或转置.
我知道另一种选择是使用与Octave或Sage等其他软件的集成,但是我们还不确定我们是否想要这样做(财务团队鄙视Python语法,IT团队担心Octave开销).
是否有任何独立的库,任何人都使用这种矩阵操作具有所有基本操作并且它已更新?
我从一个据称严肃的来源下载了一个sage脚本.它在我的计算机上不起作用,并且快速调试显示问题来自这样的事实:在某些时候,作者正在做的事情就好像n元素列表从1到n编号(而"正常"编号)在Python中(因此)sage是0..n-1).
我错过了什么?是否有一个隐藏在某处的全局变量会改变这种约定,就像在APL中一样?
感谢您的帮助(尽管我对英语和CSish都很有把握,但我希望我的问题很明确......)
我不知道为什么会发生这种情况.我在搞乱一些列表,我需要一个for从0到log(n, 2)n 的循环,其中n是列表的长度.但是代码速度非常慢,所以经过一番研究后我发现问题出现在范围生成中.演示示例代码:
n = len([1,2,3,4,5,6,7,8])
k = 8
timeit('range(log(n, 2))', number=2, repeat=3) # Test 1
timeit('range(log(k, 2))', number=2, repeat=3) # Test 2
Run Code Online (Sandbox Code Playgroud)
输出
2 loops, best of 3: 2.2 s per loop
2 loops, best of 3: 3.46 µs per loop
Run Code Online (Sandbox Code Playgroud)
测试的数量很少(我不希望它运行超过10分钟),但它已经显示range(log(n, 2))比仅使用整数的对数的对应物慢几个数量级.这真的很令人惊讶,我不知道为什么会发生这种情况.也许是我的电脑上的问题,可能是Sage问题或Python错误(我没有在Python上尝试相同).
使用xrange而range不是帮助.此外,如果你得到数字.n(),测试1以2的相同速度运行.
有人知道会发生什么吗?谢谢!