en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

3.26.2011

使用 arc4random() 取得亂數值的方法

 

取得亂數的方式有很多,筆者認為其中 arc4random() 函式最為好用,取得的亂數值不會是固定的順序之外,也不需要事先設定亂數種子,比起標準的 rand(),所能取的亂數值硬是要多一倍(u_int_32_t),接下來就看看要如何使用這個亂數函式,其方法如下。

在 arc4random() 的使用上與 rand() 並沒有太大的差異,只是在使用前不需要呼叫 srand() 去產生一個亂數的種子來決定亂數。下面演示了一個簡單的取亂數方式,我們將重 TextField 中取得一個整數值來設定取得的亂數的範圍,使用取餘數(mod %)的概念,將取得的亂數值設限在我們所規定的範圍之內。

//取得一個整數值來設定取得的亂數的範圍
int dividend = [dividendTextField.text intValue];

//取得亂數之後加上1即可略過亂數是0的部份
int randomNUM = 1 + arc4random() % dividend;

//輸出
randomLabel.text = [NSString stringWithFormat:@"%d", randomNUM];






2 則留言:

  1. 匿名7/18/2013

    請問想做按下按鈕可隨機抽取圖庫中的兩張照片顯示出來要怎麼改? 若每張照片已存入資料庫中也設有變數名稱

    回覆刪除
    回覆
    1. 您好:
      使用資料庫內照片筆數當做亂數基底,做取值兩次的動作...應該不難吧!

      刪除