将伪代码转换为Python

将伪代码转换为Python,python,Python,首先,这是关于家庭作业的,但这本身并不是作业。任务是使用噪波创建酷图形。我有一点Python方面的经验,但不足以解决这个简单的问题 生成种子随机[-1,1]时遇到问题。老师给我的伪代码来自 伪代码: function Noise1(integer x, integer y) n = x + y * 57 n = (n<<13) ^ n; return ( 1.0 - ( (n * (n * n * 15731 + 789221) + 1376312589) &

首先,这是关于家庭作业的,但这本身并不是作业。任务是使用噪波创建酷图形。我有一点Python方面的经验,但不足以解决这个简单的问题

生成种子随机[-1,1]时遇到问题。老师给我的伪代码来自

伪代码:

function Noise1(integer x, integer y)
    n = x + y * 57
    n = (n<<13) ^ n;
    return ( 1.0 - ( (n * (n * n * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0);    
  end function
函数Noise1(整数x,整数y)
n=x+y*57

n=(n符号
代表按位

^
符号表示按位
XOR

7FFFFFFF
是一个
HEX
数字。
在编程中,您可以使用
0x
表示十六进制数,其中
7FFFFFFF
0x7FFFFFFF

要在python中执行二进制
,只需使用
&0x7fffff


更多关于的信息,我在现有代码中将
7FFFFFFF
替换为
0x7FFFFFFF
,并尝试插入一些随机值,我得到的所有答案都在[-1,1]中

问题是return语句中的&7fffffff位。首先,我不确定该操作是什么。可能有点移位


位掩码。
是伪码中的^指数或XOR,我不能告诉它&是位掩码(二进制和),将按原样在python中工作。@JesusRamos,我最好的猜测是exponent。@jb我认为假定按位异或会更安全,因为他们在代码中使用其他按位操作,并且会小心不要在非按位上下文中使用按位符号。
&0x7fffff
在python中我不确定其他数字,但是
7fffffff
是十六进制的,因此在Python下,您需要将其写成
0x7fffffff
,以便Python知道如何正确地解释它。在更高版本的Python下,您还可以将“0b”用于二进制文件。
def noise(x, y):
    n = x + y * 57
    n = (n<<5) ^ n;
    return ( 1.0 - ( (n * (n * n * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0)