返回列表 上一主題 發帖

[發問] 將一固定值隨機分配到指定欄位

回復  PaulDing

只是一個變數值=0.3,數字越大,分配的越不平均

以平均值當中值,在乘以一個比例系 ...
n7822123 發表於 2018-8-29 00:13


n大 , 我太佩服您了 , 連這一點都有想到 , 感激非常. (讚讚讚讚讚讚讚)
小丁

TOP

回復  PaulDing

只是一個變數值=0.3,數字越大,分配的越不平均

以平均值當中值,在乘以一個比例系 ...
n7822123 發表於 2018-8-29 00:13


n大 , 不好意思再請教一下 , 若是要讓百分比也進行隨機分配的話我該調整哪個地方呢?
小丁

TOP

本帖最後由 n7822123 於 2018-8-31 03:02 編輯

回復 12# PaulDing

把第一行改為:亂數比例範圍 = rnd

解釋:rnd=0~1

TOP

回復  PaulDing

把第一行改為:亂數比例範圍 = rnd

解釋:rnd=0~1
n7822123 發表於 2018-8-31 03:00


n大 , 我修改了後分配都到SKU10去了 , 是否我還有哪裡沒有修改好呢? 感恩.



Sub Project1SFSKU1toSKU10_Click()
亂數比例範圍 = Rnd
RN = Sheets(14).UsedRange.Rows.Count
ReDim Sum(RN - 1)
For r = 1 To RN - 1
  Sum(r) = Cells(r + 2, 2)
  ave = Sum(r) / 10
  For C = 1 To 9
    Cells(r + 2, C + 2) = Fix(((Rnd * 2) - 1) * (ave * 亂數比例範圍) + ave)
  Next C
  Cells(r + 2, 12) = "=sum(RC[-9]:RC[-1])"
  Cells(r + 2, 12) = Sum(r) - Cells(r + 2, 12)
Next r
End Sub
小丁

TOP

本帖最後由 n7822123 於 2018-9-1 00:34 編輯

回復 14# PaulDing

因為被取整數了...............

我沒想到你的分配值還會有小於1的時候.........

把以下紅色字的部分刪除即可(Fix 會無條件捨去小數點,ex:Fix(0.53)=0)

Cells(R + 1, C + 3) = Fix(((Rnd * 2) - 1) * (ave * 亂數比例範圍) + ave)

TOP

回復  PaulDing

因為被取整數了...............

我沒想到你的分配值還會有小於1的時候.........

...
n7822123 發表於 2018-9-1 00:32


n大 , 感恩. 請教一下因我run了365 days發現SKU1~SKU9很平均(SKU10較大) , 要怎麼樣調整才能夠不平均呢?感恩.
小丁

TOP

回復 16# PaulDing


亂數比例範圍 = 1

這樣應該就很不平均了!

如果你允許出現負值,大於1也是可以的

TOP

回復  PaulDing


亂數比例範圍 = 1

這樣應該就很不平均了!

如果你允許出現負值,大於1也是可以的 ...
n7822123 發表於 2018-9-2 01:09


感謝n大 , 調整試跑後可能真的要調整大於一方能夠較為顯著的差異 , 是否有方式可以將負值再隨機從中分配扣除呢? 此應該會要再多跑一圈對吧?
小丁

TOP

本帖最後由 n7822123 於 2018-9-3 00:51 編輯

回復 18# PaulDing


你可能要思考一下你的條件合不合邏輯,

10個亂數的合要是一個定值,你要亂數範圍大於1,又不想要負值,這本身邏輯就很不合理了!

舉例來說,10個亂數和被限制和為200 ,平均一個亂數值=20

如果你把亂數比例範圍設定=2 ,表示亂數可能 20+/-40=-20~60

而其中-20~0的部分你又要重跑,要求最後跑出來一定要正值,或者等於0

假設你前5筆跑出來等於 40,55,30,28,38 光這些加起來就191,也就是說後面5筆可能加起來只能等於9

如果第6個跑出來超過9,後面4個一定會有負值,

所以第6個只能是9以下,而後面4個可能都是0

如果你知道我再說什麼,就知道這樣非常不合理!!

如果你亂數比例範圍設更大=5 ,可能後面8個數字都是0,因為要滿足你和=200 又不能負值的條件!

越多數字是0對你來說是越不平均嗎?

如果是如此,那第一個數字=和,後面九個數字都等於0 即可,不需要跑亂數。

TOP

回復  PaulDing


你可能要思考一下你的條件合不合邏輯,

10個亂數的合要是一個定值,你要亂數範圍大 ...
n7822123 發表於 2018-9-3 00:46


感謝龍大 , 想了一下確實如你所說 , 我想若要讓其再更不平均應該要手調一下 , 另外再請教一下龍大下面這段式子要計算的是? 感恩.

   ((Rnd * 2) - 1) * (ave * 亂數比例範圍) + ave)
小丁

TOP

        靜思自在 : 看別人不順眼,是自己修養不夠。
返回列表 上一主題