這裏是在Lua一些代碼:
absstepmax = 25
ymin = -100
ymax = 100
x = 0
y = 5
for i = 1, 20 do
y = y + (math.random(2*absstepmax) - absstepmax - 1)
y = math.max(ymin, math.min(ymax, y))
x = x + 5
print (x,y)
end
absstepmax
限制每個迭代唉步
ymin
和ymax
極限y的程度的大小
該示例中沒有偏見,即y可以向上或向下對稱變化。如果你想讓你的「醉酒」趨向於「下坡」,你可以將通話後的偏移量從absstepmax - 1
更改爲absstepmax - 5
或任何你喜歡的偏見。
在這個例子中,x步是固定的。您也可以使用相同的機制來做到這一點。
下面是一些樣品運行:
> absstepmax = 25
> ymin = -100
> ymax = 100
> x = 0
> y = 5
> for i = 1, 20 do
>> y = y + (math.random(2*absstepmax) - absstepmax - 1)
>> y = math.max(ymin, math.min(ymax, y))
>> x = x + 5
>> print (x,y)
>> end
5 4
10 22
15 37
20 39
25 50
30 40
35 21
40 22
45 12
50 16
55 16
60 12
65 -1
70 -8
75 -14
80 -17
85 -19
90 -25
95 -37
100 -59
> absstepmax = 25
> ymin = -100
> ymax = 100
> x = 0
> y = 5
> for i = 1, 20 do
>> y = y + (math.random(2*absstepmax) - absstepmax - 1)
>> y = math.max(ymin, math.min(ymax, y))
>> x = x + 5
>> print (x,y)
>> end
5 -2
10 -15
15 -7
20 1
25 1
30 12
35 23
40 45
45 43
50 65
55 56
60 54
65 54
70 62
75 57
80 62
85 86
90 68
95 76
100 68
>
彩繪結果從OP補充說:
請詳細寫明您的要求:如果x軸的距離是隨機的嗎?如果是,多少隨機。如果小的斜坡更可能發生或應該每次發生x和其他xes一樣多? – svick 2011-05-29 17:31:03
我想生成某種無限的線。想象一下,你沿x軸向右滾動,線條隨着向下和向上的山體相接近。以圖片爲例。如果我將此作爲馬爾可夫鏈的輸入來繼續該行,它將以類似於輸入的方式繪製該行。 – 2011-05-29 17:43:31