最近,我一直试图克服编程中的一个主要弱点——随机生成。我认为这应该是一件容易的事情,但缺乏简单的信息让我感到非常困扰。我不想听起来很蠢,但对我来说,像这样的地方提供的大部分信息似乎是为已经上过理论数学课程并且获得了学位的数学家撰写的。我不明白我应该如何将这些信息应用到像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='')
这段代码会产生以下结果:
##-######--#--#-#--##-###-###---#-##-#-----#--##-#
#-#-##-##-#----##------##--#####-#-##---#--#-##---
-------#-#------#---#-#---###--#--#-###-----##-#--
######--#-#-#--####-###---#---###-##--#-#-##--####
-#----###--------##--##--##-#-#--#----###-####--##
---####-#--#--###-#-#--#--#####--####-#-##-##--#--
----#--####-#-#-#-#-#---#--###------###--#-######-
--###--#-###-------#-##--###---#-####----###-#####
#----##--##-#--##-###--#----#-#-##--##-#-##---###-
##---##----##--##--#--#--###-###-#--#-##---#------
-##----#-###---######---#-#---#---###---#---###-##
#--##-##-###-###---#--##-##--##-##-#-#-##--#-#-##-
我希望最终它能够产生类似于这样的东西:
--------------------------------------------------
------------------####----------------------------
-----------------#####----------------------------
----------------#####-----------------------------
---------------#####--------------###-------------
---------------#####--------------###-------------
---------------------------------####-------------
---######------------------------####-------------
---######------------###--------------------------
----########---------###--------------------------
-----#######---------###--------------------------
------###-----------------------------------------
如何将我产生的白噪声变得平滑,并将其转化为岛屿?有人能以非常简单的方式解释一下吗?
也许我对这些都想错了。