vba隨機化陣列函式

2021-04-20 08:56:49 字數 779 閱讀 7687

function randomizearray(vector as

variant) as

variant

dim l as

integer

dim u as

integer

dim i as

integer

dim rndposition as

integer

dim temp as

variant

l = lbound(vector)

u = ubound(vector)

for i = l to u

rndposition = int((u - l + 1) * rnd + l)

if rndposition <> i then

temp = vector(i)

vector(i) = vector(rndposition)

vector(rndposition) = temp

endif

next i

randomizearray = vector

endfunction

sub test()

dim a as

variant

a = array(1, 2, 3, 4, 5, 6, 7, 8)

a = randomizearray(a)

for i = lbound(a) to ubound(a)

debug.print a(i)

next i

endsub

隨機化演算法

隨機化演算法的主要目的是希望讓隨機發生在演算法上,而不是發生在輸入分布上,這樣的話,沒有特別的輸入會引起我們的演算法的最壞情況。即使你最壞的敵人也無法產生最壞的輸入陣列。因為隨機排列使得輸入次序不再相關。只有在隨機數生成器產生乙個不走運的排列時,隨機演算法才會執行得很差。一.隨機優先順序陣列法 我們...

隨機化搜尋

參與考古挖掘的小明得到了乙份藏寶圖,藏寶圖上標出了 nn 個深埋在地下的寶藏屋,也給出了這 nn 個寶藏屋之間可供開發的mm 條道路和它們的長度。小明決心親自前往挖掘所有寶藏屋中的寶藏。但是,每個寶藏屋距離地面都很遠,也就是說,從地面打通一條到某個寶藏屋的道路是很困難的,而開發寶藏屋之間的道路 則相...

簡單隨機化

有乙個挺不錯的 隨機化blog codechef mstones 平面上有 n 個點 x i,y i 保證這 n 個點可以用 7 條直線覆蓋。找出一條直線使得它覆蓋的點最多 30 組 test n leq10 4 x i y i leq1.5 times10 4 每次隨機找兩個點 a,b 判斷它們所...