我需要一些帮助来计算Pi.我正在尝试编写一个将Pi计算为X位数的python程序.我已经尝试过python邮件列表中的几个,这对我的使用来说很慢.我已经阅读了有关Gauss-Legendre算法的内容,我尝试将其移植到Python但没有成功.
我正在读这里,我很感激我输入错误的地方!
输出:0.163991276262
from __future__ import division
import math
def square(x):return x*x
a = 1
b = 1/math.sqrt(2)
t = 1/4
x = 1
for i in range(1000):
y = a
a = (a+b)/2
b = math.sqrt(b*y)
t = t - x * square((y-a))
x = 2* x
pi = (square((a+b)))/4*t
print pi
raw_input()
Run Code Online (Sandbox Code Playgroud) 这可能看起来像一个奇怪的问题,但我想知道如何从内存'签名'中运行.dll中的函数.我不太了解它实际上是如何工作的,但我非常需要它.它是一种在.dll中运行未导出函数的方法,如果你知道它的内存签名和地址.例如,我有这些:
respawn_f "_ZN9CCSPlayer12RoundRespawnEv"
respawn_sig "568BF18B06FF90B80400008B86E80D00"
respawn_mask "xxxxx?xxx??xxxx?"
Run Code Online (Sandbox Code Playgroud)
使用一些非常漂亮的C++代码,您可以使用它来运行.dll中的函数.
这是一篇很好解释的文章:http: //wiki.alliedmods.net/Signature_Scanning
那么,是否有可能使用Ctypes或任何其他方式在python中执行此操作?
我创建了一个Python文件来生成Mandelbrot集图像.原始的数学代码不是我的,所以我不理解它 - 我只是对其进行了大量修改,使其速度提高了约250倍(Threads规则!).
无论如何,我想知道如何修改代码的数学部分,使其呈现一个特定的位.这是数学部分:
for y in xrange(size[1]):
coords = (uleft[0] + (x/size[0]) * (xwidth),uleft[1] - (y/size[1]) * (ywidth))
z = complex(coords[0],coords[1])
o = complex(0,0)
dotcolor = 0 # default, convergent
for trials in xrange(n):
if abs(o) <= 2.0:
o = o**2 + z
else:
dotcolor = trials
break # diverged
im.putpixel((x,y),dotcolor)
Run Code Online (Sandbox Code Playgroud)
尺寸定义:
size1 = 500
size2 = 500
n=64
box=((-2,1.25),(0.5,-1.25))
plus = size[1]+size[0]
uleft = box[0]
lright = box[1]
xwidth = lright[0] - uleft[0]
ywidth = uleft[1] - lright[1] …Run Code Online (Sandbox Code Playgroud)