質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

2回答

1985閲覧

javascriptでの整数のみの乱数

ayasakikouichi

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

1クリップ

投稿2019/01/06 08:11

通常,乱数が欲しい時は

random()

を使い
整数にしたときは

floor() を使って

print(Math.floor(Math.random () );

場合によっては
最小値 最大値 追加

となってますが

1以上10未満を整数を呼び出す関数
1以上100未満の整数を呼び出す関数
といったような整数限定で呼び出せるような関数はありませんか?

また関数がなかった場合

(Math.floor

を使って少数を切るしか方法はないのですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんにちは。

Lodash の _.random を使ってみるのはいかがでしょう?

以下、サンプルです。

javascript

1const MIN = 1, 2 MAX = 10; 3 4console.log(`${MIN}以上、${MAX}以下の整数をランダムに5回生成して表示`); 5 6for (let i=0; i < 5; ++ i) { 7 const n = _.random(MIN, MAX); 8 console.log(n); 9} 10 11console.log(`${MIN}以上、${MAX}未満の整数をランダムに5回生成して表示`); 12 13for (let i=0; i < 5; ++ i) { 14 const n = _.random(MIN, MAX-1); 15 console.log(n); 16}

上記のコードを実行すると、たとえば以下のように出力されます。

イメージ説明

以上、参考になれば幸いです。

投稿2019/01/06 09:46

jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Math.random () は、0–1(0以上、1未満)の範囲で浮動小数点の擬似乱数を返す関数です。
floorで小数点以下を切り捨てると(Math.floor(Math.random()を計算すると)常に0になってしまうので、乱数発生の方法としては不適切です。

N以上M未満の整数の乱数を発生するには、
N + Math.floor(Math.random()*(M-N)) というような計算式をつかいます。

M=100,N=1だとすると、1+Math.floor(Math.random()*99)となって、Math.random()*99は0以上99未満の実数だから、1以上、99未満の整数が得られる訳です。

投稿2019/01/06 09:21

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2019/01/07 07:17

最後のところ、「1以上、100未満」あるいは「1以上、99以下」ですかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問