linux shell實現隨機數多種方法(date,random,uuid)__linux

來源:互聯網
上載者:User

http://www.cnblogs.com/chengmo/archive/2010/10/23/1858879.html

在日常生活中,隨機數實際上經常遇到,想丟骰子,抓鬮,還有抽籤。呵呵,非常簡單就可以實現。那麼在做程式設計,真的要通過自己程式設計出隨機數那還真的不簡單了。現在很多都是作業系統核心會提供相應的api,這些原始參數是擷取一些電腦運行原始資訊,如記憶體,電壓,物理訊號等等,它的值在一個時間段可以保證是唯一的了。好了,廢話我就不說了。呵呵。

   shell指令碼程式我們有那些獲得隨機數方法呢。

 

一、通過時間獲得隨機數(date)

這個也是我們經常用到的,可以說時間是唯一的,也不會重複的,從這個裡面獲得同一時間的唯一值。適應所有程式裡面了。

例子:

1 2 3 4 5 6 7 8 9 10 11 12 13 [chengmo@centos5  shell]$ date  +%s 1287764773 #獲得時間戳記,當前到:1970-01-01 00:00:00 相隔的秒數 #如果用它做隨機數,相同一秒的資料是一樣的。在做迴圈處理,多線程裡面基本不能滿足要求了。   [chengmo@centos5  shell]$ date  +%N 738710457 #獲得目前時間的納秒資料,精確到億分之一秒。 #這個相當精確了,就算在多cpu,大量迴圈裡面,同一秒裡面,也很難出現相同結果,不過不同時間裡面還會有大量重複碰撞   [chengmo@centos5  shell]$ date  +%s%N 1287764807051101270 #這個可以說比較完美了,加入了時間戳記,又加上了納秒

 

通過上面說明,用它來做隨機數的基數了,接下來我們看怎麼樣獲得一段資料內怎麼樣獲得隨機數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.