c51隨機數不重複 scala生成隨機數注意

2021-10-14 10:58:14 字數 837 閱讀 3645

又是乙個採坑之旅。

scala的運算元分為兩類,transformer運算元和action運算元。

由於scala是惰性的,在transformer運算元執行時,只是記錄這個操作,而並沒有真正的執行,只有遇到action運算元,才會將之前的所有操作真正執行。

因此,當在transformer之後,多次進行action呼叫,若沒有持久化,是重複執行的,也就是說,假如你在dataframe裡生成了一列隨機數,後面先用這個隨機數做了列變換,然後再用對這個dataframe做篩選之類的操作。比如這樣:

val random =

udf }

val sample = 0.0001

df_sdk_filter0 =df_sdk_filter0.withcolumn("rand",random(

col("count")))

val cal_p =

udf

else

res }

}//先生成一列flag,判斷隨機數與計算出的公式大小

df_sdk_filter0 = df_sdk_filter0.withcolumn("flag", cal_p($"count", $"rand"))//.persist()

df_sdk_filter0.show()

//再對flag進行篩選

val df_sdk_filter = df_sdk_filter0.filter("flag=1")

這兩個action操作,得到的結果是不一樣的,因為相當於隨機數執行了兩次

所以先persist持久化,才能保證之後的所有對隨機數進行的操作,都是針對同乙個隨機數,而不會變化。

不重複隨機數

1 不重複隨機數1 生產 lowerbound,upperbound 的隨機數,核心 int upperbound lowerbound 1 rnd lowerbound 示例 如下 sub rndnumnorepeat1 dimdic dim i set dic createobject scri...

c51隨機數不重複 怎麼讓51微控制器產生隨機數?

剛寫的程式,我的思想是用定時器加rand 隨機函式來實現的,微控制器上電之後通過按鍵去啟動取隨機數,若是微控制器上電就立即取隨機數的話,那每次上電隨機的結果都是一樣的。然後是0到9不重複的隨機數,程式中用了迴圈來判斷是否和前面取的隨機數相同,相同則進入下次取隨機數,不同則存入陣列。程式如下 incl...

c51隨機數不重複 微控制器C語言如何產生隨機數?

隨機數在微控制器的應用中也是很多的,當然產生隨機數的方法有很多,當中有乙個就是利用微控制器定時器,取出未知的定時器thx和tlx的值,再加以運算得到乙個規定範圍內的隨機數值,這種做法也是可行的 或者預先寫好乙個隨機數表,然後從表中取資料 也是可以的。keil裡面產生隨機數的函式確實是rand 但標頭...