- ベストアンサー
エクセル RAND関数について
こんばんは。エクセルの練習問題集をやっていて、意味のわからないものがあり教えてください! 問題は 0~100までの任意の整数を表示する関数式として適切なものは、次のうちどれか。 (1) =RAUND(RAND()*100,0) (2) =INT(RAND()*100) (3) =ROUND(RADIANS()*100,0) (4) =INT(RADIANS()*100) というものです。 本では正解は(1)になっています。 でもこれ、(2)でもOKなのではないでしょうか? 実際にやってみて、(2)でも出来るじゃん!って思ってしまって、問題の真意がつかめないのです。 なぜ(2)は不適切なのか、どうか教えてくださいませ!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
後ろの方にも間違いがありましたので全文書き直します。申し訳ない… ---- rand( ) は、0から0.999…までの値を帰します。 これを100倍すると、0から99.99…までの値になります。 その値をint( )で切り捨てると、0~99までの整数値になります。つまり100が発生しません。 しかし、(1)の式は、int切り捨てではなくroundの四捨五入だから、確かに 0~100の値は出てきますが、0になるのは0~0.499…、100になるのは99.50~99.99…の値が発生したときなので、他の数値の半分の確率になってしまっています。 その4択から選ぶなら(1)しかありませんが、私なら、 「 =int(rand( )*101) 」 と書きますね。
その他の回答 (2)
- asciiz
- ベストアンサー率70% (6833/9715)
1行目書き間違えました、 「rand() は、0から0.9999…までの値を帰します。」 です(汗
- asciiz
- ベストアンサー率70% (6833/9715)
rand() は、0から9.999…までの値を帰します。 これを100倍すると、0から99.99…までの値になります。 その値をint()で切り捨てると、0~99までの整数値になります。つまり100が発生しません。 しかし、(1)の式は、int切り捨てではなくroundの四捨五入だから、0~100の値は出てきますが、0になるのは0~0.499…、100になるのは95.0~99.99…の値が発生したときなので、他の数値の半分の確率になってしまっています。 その4択から選ぶなら(1)しかありませんが、私なら、 「 =int(rand()*101) 」 と書きますね。
お礼
おおおおおお~~~~! そういうことだったのですねえぇぇぇ! 感激っす!これですっきり出来ました! 本っ当にありがとうございました!