質問編集履歴

1

補足の追記、「数学的」から「いい方法」に変更、バグのコードを修正

2017/02/04 03:09

投稿

miu_ras
miu_ras

スコア902

test CHANGED
@@ -1 +1 @@
1
- 「-3, -2, -1, 1, 2, 3」の6つの整数をランダムで得る数学的な方法
1
+ 「-3, -2, -1, 1, 2, 3」の6つの整数をランダムで得る「いい」方法
test CHANGED
@@ -1,8 +1,10 @@
1
- 最初は「-3~3の整数を得る」という仕様でよく、こんな感じでした。
1
+ 最初は「-3~3の整数を得る」という仕様でよく、こんな感じでした。※本当の最初のコードはコメントアウトの物でしたが、ごくまれに-4が出るというバグがあるので修正しました。
2
2
 
3
3
  ```javascript
4
4
 
5
- var v = (Math.ceil(Math.random() * 7) - 4);
5
+ var v = (Math.floor(Math.random() * 7) - 3);
6
+
7
+ //var v = (Math.ceil(Math.random() * 7) - 4);
6
8
 
7
9
  ```
8
10
 
@@ -26,10 +28,36 @@
26
28
 
27
29
 
28
30
 
29
- 「-3, -2, -1, 1, 2, 3」の6つの整数をランダムで得る数学的な方法、
31
+ 「-3, -2, -1, 1, 2, 3」の6つの整数をランダムで得る「いい」方法、
30
32
 
31
33
  これについて教えてください。よろしくお願いします。
32
34
 
33
35
 
34
36
 
37
+
38
+
39
+ 補足追記
40
+
41
+ ---
42
+
43
+ 2017/02/04 12:00頃、質問内容を「数学的」から「いい方法」に変更しました。
44
+
45
+
46
+
47
+ 私がもともと考えていた「数学的な方法」とは以下の条件です。
48
+
49
+ - Math関数と算術演算子・ビット演算子だけを使う
50
+
35
- ※不可能ならそ回答でも構いません。
51
+ - Math.random使用は1回
52
+
53
+ - 条件分岐・配列(あるいは配列に類するもの)を使わない
54
+
55
+ - 出来れば、関数・変数を使わない、1行で書けるコード
56
+
57
+
58
+
59
+ ただ、「数学的な方法」にこだわりすぎたり、他の選択肢を捨ててしまうのも違うなと思い、「いい方法」に変更しました。
60
+
61
+
62
+
63
+ 最初に考えていた「数学的な方法」を満たす回答も引き続き歓迎しますが、同時にシンプルな方法や、意外な方法もお待ちしています。