日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

竟然被awk生成的随机数给整蒙了,也谈随机数生成种子

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 竟然被awk生成的随机数给整蒙了,也谈随机数生成种子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們現在主要的一個業務是給科研單位等提供數據庫構建服務,目前承接的數據庫已經發表了3篇NAR文章,具體見你的數據也可以-三篇NAR的數據庫。

這次一位老師需要做數據庫,但數據還沒做好,時間要求卻比較急,我們只能隨機生成一些數據來作為測試先把數據庫搭起來,等完成后再替換為真實數據,稍加測試,也就完成了。

最開始是這么生成隨機數字的,看上去沒問題,每運行一次都會生成一個隨機數,符合預期。

awk 'BEGIN{OFS=FS="\t";}{ $2=100 * rand(); print $0;}' 00232503-7e34-479a-b6fb-0b52e78b554e.txt | cut -f 1-3 | head Rnu7-186P 99.4034 ACC-3 Rnu2-41P 24.6362 ACC-3awk 'BEGIN{OFS=FS="\t";}{ $2=100 * rand(); print $0;}' 00232503-7e34-479a-b6fb-0b52e78b554e.txt | cut -f 1-3 | head Rnu7-186P 24.3382 ACC-3 Rnu2-41P 87.6752 ACC-3

但當放到一個for循環中時 ,問題就出來了,每次循環的隨機數都一樣:

for i in *.txt; do awk 'BEGIN{OFS=FS="\t";}{ $2=100 * rand(); print $0;}' $i | cut -f 1-3 | head -n 2; echo "------------"; done Rnu7-186P 99.0514 ACC-3 Rnu2-41P 82.4637 ACC-3 ------------ Rnu7-186P 99.0514 ACC-3 Rnu2-41P 82.4637 ACC-3 ------------ Rnu7-186P 99.0514 ACC-3 Rnu2-41P 82.4637 ACC-3 ------------

這猜測是每次循環時隨機數發生器給的種子都是一致的,導致隨機數在每個循環都一致了,修改如下:每次循環單獨給一個隨機數的種子就好了。

for i in `seq 1 3`; do awk -v seed=$RANDOM 'BEGIN{OFS=FS="\t";srand(seed);}{ $2=100 * rand(); print $0;}' 00232503-7e34-479a-b6fb-0b52e78b554e.txt | cut -f 1-3 | head -n 2; echo "------------"; done Rnu7-186P 38.0502 ACC-3 Rnu2-41P 76.7106 ACC-3 ------------ Rnu7-186P 99.1498 ACC-3 Rnu2-41P 65.7196 ACC-3 ------------ Rnu7-186P 92.9258 ACC-3 Rnu2-41P 24.0214 ACC-3 ------------

這就是awk自己的坑了。

In most awk implementations, including gawk, rand() starts generating numbers from the same starting number, or seed, each time you run awk. Thus, a program generates the same results each time you run it. The numbers are random within one awk run but predictable from run to run. This is convenient for debugging, but if you want a program to do different things each time it is used, you must change the seed to a value that is different in each run. To do this, use srand().

隨機數生成器的種子

除了在顯示生成隨機數做測試時會用到隨機數生成器,很多其它時候比如做Kmeans聚類時,WGCNA分析時, 隨機森林分析時也都會有隨機過程,每次運行結果都有可能不同,為了保證結果的可重復性,這時就可以設置一個隨機數種子。其原則是:種子定了,每次運行結果也就不會變了。

通常這個種子是一個整數,任意整數都可以。講課時,我一般說大家可以選擇自己的幸運數字來設置,在R中通常通過函數set.seed來設置:

通常,如果我們沒有自己設置種子,大部分程序語言中會調用當前的時間戳作為隨機數的種子,每次操作時間都不同,時間戳也就不同,獲得的隨機數序列也就不同。

下面是一個R中的示例,可以看到前面兩次運行rnorm(5)獲得的返回值都不同。而在設置set.seed(10)后,兩次運行rnorm(5)獲得的返回值完全一致。當然這個設置只是對最近的命令有效,下面再運行一次rnorm(5),又是基于時間戳生成的完全不同的數據。

# 不設置 rnorm(5) # [1] 1.1017795 0.7557815 -0.2382336 0.9874447 0.7413901 rnorm(5) # [1] 0.08934727 -0.95494386 -0.19515038 0.92552126 0.48297852set.seed(10) rnorm(5) # [1] 0.01874617 -0.18425254 -1.37133055 -0.59916772 0.29454513set.seed(10) rnorm(5) # [1] 0.01874617 -0.18425254 -1.37133055 -0.59916772 0.29454513rnorm(5) [1] 0.3897943 -1.2080762 -0.3636760 -1.6266727 -0.2564784

關于隨機數種子,雖然看上去比較簡單,但每次課程,總會有多位老師問起,問起最多的就是為什么你選擇10作為隨機數種子?依據是什么?我怎么選?實際就記住兩點:

  • 同一個隨機數種子獲得的隨機數序列是一致的,不管這個種子是10, 20還是 30。

  • 隨機數種子可以是任意值,看心情選擇就好,課程中選哪個也都是隨機的。

  • 這個為生信學習和生信作圖打造的開源R教程真香!!!

    這個為生信學習打造的開源Linux教程真香!!!

    往期精品(點擊圖片直達文字對應教程)

    后臺回復“生信寶典福利第一波”或點擊閱讀原文獲取教程合集

    ?

    (請備注姓名-學校/企業-職務等)

    總結

    以上是生活随笔為你收集整理的竟然被awk生成的随机数给整蒙了,也谈随机数生成种子的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 污污内射久久一区二区欧美日韩 | 中文字幕无码精品亚洲 | 性xxxfllreexxx少妇 | 成了校长的性脔h文 | 欧美色图亚洲自拍 | 国产精品免费av | 日本不卡视频在线观看 | 国产a v一区二区三区 | 成年人视频网址 | 在线观看免费av网址 | 日本欧美在线观看 | 成人理论视频 | 成人精品一区二区三区在线 | 水蜜桃av在线 | 国产第八页 | 中文字幕高清在线 | 成人午夜福利视频 | 国内精品免费 | 天天色宗合 | 又黄又爽无遮挡 | 色婷婷精品久久二区二区密 | 国产一区二区三区欧美 | 成年在线观看 | 欧美性网址 | 久久久久国产精品午夜一区 | 精品国产乱码一区二区三 | 亚洲老妇色熟女老太 | 浪荡奴双性跪着伺候 | 成人片黄网站色大片免费毛片 | 天天综合网在线 | 国产精品免费久久久 | 双性娇喘浑圆奶水h男男漫画 | 国产精品夜夜躁视频 | 91久久久久国产一区二区 | 日批小视频 | 国产孕妇一区二区三区 | 思思99热 | 久久夜色精品国产噜噜亚洲av | 国产真实交换夫妇视频 | 免费国产a | 图片区小说区视频区 | 美国一级大黄一片免费中文 | 免费大片黄在线观看视频网站 | 成人免费无码av | 成人精品视频一区二区三区尤物 | 欧美特级aaa | 亚洲欧美变态另类丝袜第一区 | 精品国产av 无码一区二区三区 | 国产自偷自拍视频 | 国产性按摩 | 色五婷婷 | 精品人妻久久久久久888不卡 | 日本色图片 | 久久久久久久久久久综合 | 亚洲欧美日本国产 | 天堂综合网久久 | 逼逼av | 在线色av| 国产精品乱码久久久久久久久 | 美女隐私直播 | 少妇高潮灌满白浆毛片免费看 | 亚洲色图40p| 又黄又爽又色的视频 | 久久国产精品毛片 | 国产精品卡一 | 日皮在线观看 | 亚洲免费在线视频 | 成人黄色片免费 | 成人黄色免费在线观看 | 中国大陆高清aⅴ毛片 | www成人啪啪18软件 | 亚洲成人18 | 欧美一级片网址 | 尤果网福利视频在线观看 | 男人的天堂av网站 | 69热在线观看 | 在线国产一区二区三区 | 国产欧美日韩综合精品一区二区 | ,一级淫片a看免费 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 中文字幕一区二区人妻在线不卡 | 制服诱惑一区 | 日韩在线黄色 | 久久久久久久久久一区 | 青娱乐超碰 | 国产激情一区二区三区在线观看 | 色二区 | 爱情岛成人 | 91色视频在线 | 亚洲视频播放 | 无码人妻久久一区二区三区 | a在线v| 日本五十路女优 | 精品伦精品一区二区三区视频密桃 | 亚洲喷水| 自拍偷拍电影 | 人人看人人模 | 久草网在线视频 | 91黄色入口 |