【发布时间】:2013-07-22 03:26:51
【问题描述】:
最近,我一直在尝试克服我在一般编程中的主要弱点之一,即随机生成。我认为这将是一件容易的事,但缺乏简单的信息让我很生气。我不想听起来很愚蠢,但在我看来,来自this 这样的地方的大部分信息都是为上大学攻读理论数学的数学家写的。我只是不明白我要如何处理这些信息,以便将其应用于 Python 等语言的编程。
我已经工作了几天盯着方程式并尝试一次又一次地尝试,但在这些天之后,在一次又一次地撕开我的代码之后,所有一直正常工作的东西就是这个噪声发生器生成基本噪音:
import random
import math
random.seed(0)
def generateWhiteNoise(width,height):
noise = [[r for r in range(width)] for i in range(height)]
for i in range(0,height):
for j in range(0,width):
noise[i][j] = random.randint(0,1)
return noise
noise = generateWhiteNoise(50,12)
for i in noise:
print()
for o in i:
if(o == 0):
print('-',end='')
else:
print('#',end='')
这段代码产生这个结果:
##-######--#--#-#--##-###-###---#-##-#-----#--##-#
#-#-##-##-#----##------##--#####-#-##---#--#-##---
-------#-#------#---#-#---###--#--#-###-----##-#--
######--#-#-#--####-###---#---###-##--#-#-##--####
-#----###--------##--##--##-#-#--#----###-####--##
---####-#--#--###-#-#--#--#####--####-#-##-##--#--
----#--####-#-#-#-#-#---#--###------###--#-######-
--###--#-###-------#-##--###---#-####----###-#####
#----##--##-#--##-###--#----#-#-##--##-#-##---###-
##---##----##--##--#--#--###-###-#--#-##---#------
-##----#-###---######---#-#---#---###---#---###-##
#--##-##-###-###---#--##-##--##-##-#-#-##--#-#-##-
我希望它最终会产生这样的结果:
--------------------------------------------------
------------------####----------------------------
-----------------#####----------------------------
----------------#####-----------------------------
---------------#####--------------###-------------
---------------#####--------------###-------------
---------------------------------####-------------
---######------------------------####-------------
---######------------###--------------------------
----########---------###--------------------------
-----#######---------###--------------------------
------###-----------------------------------------
如何才能消除我产生的白噪声,并将其变成孤岛?谁能用非常简单的方式给我解释一下?
我可能认为所有这些都是错误的。
【问题讨论】:
-
我会采纳 user1483482 的建议。如果您想了解更多关于内部工作原理的信息,请尝试查看这里:devmag.org.za/2009/04/25/perlin-noise 我在 python 中复制了他的代码,它可以工作,但它非常很慢,即使使用 numpy。
标签: python random perlin-noise