產生隨機小數 如果取到小數區間內的任一數字?

2021-10-25 13:32:37 字數 1420 閱讀 7656

一位粉絲的需求,如果根據左側的小數區間,返回區間內的隨機小數?

excel中存在兩個隨機函式,一是randbetween,但其返回的是隨機整數,而不是小數;二是rand函式,返回0-1之間的隨機小數,兩者都無法直接產生需求的結果。

既然是隨機,就必須得結合隨機函式。

方法一,化小數為整數,再利用randbetween函式;

方法二,區間最大值與區間最小值之間的差值*rand函式+區間最小值。

公式如下(左右滑動檢視完整公式):

=randbetween(mid(a2,1,find("-",a2)-1)*100,mid(a2,find("-",a2)+1,left(len(a2)-find("-",a2)))*100)/100
一共用到了4個函式:randbetween、mid、find、len;

randbetween(最小值,最大值)返回乙個介於指定數字之間的隨機整數;

mid(要擷取的字串,開始位置,擷取長度),從文字字串指定的起始位置返回指定長度的字元,mid("2.25-2.4",1,4)返回2.25;

find(要查詢的字元,字串),返回乙個字串在另乙個字串**現的起始位置,find("-:,"2.25-2.4")返回5;

len(字串),返回文字字串中的字元個數,len("2.25-2.4")返回8。

先利用mid、find、len函式獲取小數區間的兩頭數字,各乘以100,小數變整數,接著利用randbetween獲取隨機整數,最後除以100,整數變小數

公式如下(左右滑動檢視完整公式):

=mid(a4,1,find("-",a4)-1)+(mid(a4,find("-",a4)+1,left(len(a4)-find("-",a4)))-mid(a4,1,find("-",a4)-1))*rand()
先利用mid、find、len函式獲取區間最小值,接著獲取區間差值,區間差值乘以乙個0-1之間的隨機小數,最後加上區間最小值返回乙個位於區間內的小數。

通過乙個案例了解excel函式巢狀使用技巧,共涉及到5個函式,不可多得的練手專案,小夥伴們快練習練習吧。

用c 產生隨機整數與小數

c 庫有乙個名為 rand 的函式,每次呼叫該函式都將返回乙個非負整數。randomnum rand 隨機數大小是在0到rand max,值為2147483647。要使用 rand 函式,必須在程式中包含 標頭檔案。需要注意的是,rand 函式返回的數字其實是偽隨機數,實際上並不是隨機的,它們實際上...

php隨機小數 php lcg value與mt

因工作需要使用php生成0 1隨機小數,之前寫過一篇 lcg value說明 float lcg value void lcg value 返回範圍為 0,1 的乙個偽隨機數。本函式組合了週期為 2 31 85 和 2 31 249 的兩個同餘發生器。本函式的週期等於這兩個素數的乘積。返回 範圍為 ...

C 生成指定範圍的隨機小數

網上查怎麼生成小數的隨機數,一直查不到我想要的。c 新標準,有乙個叫隨機數引擎的東西。包含於標頭檔案 include includeusing namespace std int main 上面的 中,主程式第一行就是 引擎 生成隨機序列,第二行就是 分布 如果把 real 替換成 int,裡寫成u...