[問題] 三角形的碎維已回收

看板MATLAB作者 (FREE)時間16年前 (2010/04/01 19:58), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/2 (看更多)
clear; clf; axis([-1 12 -3 16]); axis equal; x1=[0 2*sqrt(26.19) sqrt(26.19) 0]; y1=[0 0 14.1 0]; line(x1,y1); hold on; a2=12; b2=10; while i<10000 p0 = randn(1); if (0 <= p0 < 0.333) a2=0.5.*(sqrt(26.19)+a2); b2=0.5.*(14.1+b2); plot(a2,b2); elseif (0.333 <= p0 < 0.666) a2=0.5.*(0+a2); b2=0.5.*(0+b2); plot(a2,b2); else a2=0.5.*(2*sqrt(26.19)+a2); b2=0.5.*(0+b2); plot(a2,b2); end i=i+1; end 程式一開始是先畫一個等腰三角形, 接著先取一點(12,10)接著隨機產生亂數, 判斷區域,並對其區域所代表的頂點取中點,一直做下去。 問題來了,為啥我p0不能用rand,可是用randn好像有一半的負數都無法出現 1.請問為啥rand無法跑出一樣的圖? 2.請問大大有可以畫三角形的函數嗎? 3.有無比較好的0~1的random產生器或者有特定的程序製造random產生器嗎?? 最後謝謝大大看完我的PO文,謝謝,小弟我新手,請多多包涵!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.238.123

04/01 21:56, , 1F
你要問的是 語法問題還是演算法問題?
04/01 21:56, 1F

04/01 21:56, , 2F
如果要問語法 rand是uniform randn是 normal
04/01 21:56, 2F

04/01 21:57, , 3F
至於演算法怎麼做 適合用哪一個 又是另一個複雜的問題...
04/01 21:57, 3F

04/01 22:05, , 4F
那位啥rand跑出來圖形無法跟randn類似呢?你跑看看!!
04/01 22:05, 4F

04/01 23:11, , 5F
你指randn畫出來的點不平均 右下頂點那邊居多?
04/01 23:11, 5F

04/06 16:04, , 6F
是的,你知道原因嗎??
04/06 16:04, 6F

04/06 16:05, , 7F
我有將最後一個case的範圍最大值改成0.999還是有這種
04/06 16:05, 7F

04/06 16:06, , 8F
情況,只不過不均勻的地方有些改變!!
04/06 16:06, 8F
文章代碼(AID): #1Bj8fG1U (MATLAB)
文章代碼(AID): #1Bj8fG1U (MATLAB)