回答編集履歴

7

update

2019/02/16 07:08

投稿

退会済みユーザー
test CHANGED
@@ -57,6 +57,8 @@
57
57
  簡単な問題順に定義して、並び替えると出題傾向を弄れる?
58
58
 
59
59
  コードがやっつけなのは勘弁!(今になってSVGが習い立てなもんで)
60
+
61
+ ちょろめと火狐では大きく違うね!こりゃ~つかえないか?
60
62
 
61
63
  ```html
62
64
 

6

ソートによるシャッフルの視覚化

2019/02/16 07:08

投稿

退会済みユーザー
test CHANGED
@@ -49,3 +49,117 @@
49
49
 
50
50
 
51
51
  冒頭で'use strict'という見慣れない文字列を見たが、それらしいの使ってる?w
52
+
53
+
54
+
55
+ ちょっと興味がわいたのでソートによるシャッフルを調べてみた。
56
+
57
+ 簡単な問題順に定義して、並び替えると出題傾向を弄れる?
58
+
59
+ コードがやっつけなのは勘弁!(今になってSVGが習い立てなもんで)
60
+
61
+ ```html
62
+
63
+ <!DOCTYPE html>
64
+
65
+ <html lang="ja">
66
+
67
+ <title>?</title>
68
+
69
+ <meta charset="utf-8">
70
+
71
+ <style>
72
+
73
+ table tbody:first-of-type { display: none; }
74
+
75
+ </style>
76
+
77
+
78
+
79
+ <body>
80
+
81
+
82
+
83
+ <table border="1">
84
+
85
+ <caption><em>arry.sort (()=>Math.random() - X)</em> のX値による0番の移動した出現分布の累積
86
+
87
+ <tbody><tr><th><td><svg width="800" height="120" xmlns="http://www.w3.org/2000/svg"></svg>
88
+
89
+ </table>
90
+
91
+
92
+
93
+ <script>
94
+
95
+ const
96
+
97
+ N = 100,
98
+
99
+ A = Array (N).fill().map ((_,i)=>i),
100
+
101
+ S = 0.3,
102
+
103
+ E = 0.7,
104
+
105
+ R = 1000,//繰り返し回数
106
+
107
+ C = 0, // 0番がどこに移動するか
108
+
109
+
110
+
111
+ table = document.querySelector ('table'),
112
+
113
+ tbody = table.querySelector ('tbody:first-of-type'),
114
+
115
+ rect = document.createElementNS ('http://www.w3.org/2000/svg', 'rect'),
116
+
117
+ setAtr = (e,o)=>[...Object.entries(o)].forEach(([a,b])=>e.setAttribute(a,b));
118
+
119
+
120
+
121
+ setAtr (rect, { width: 8, style: 'fill:rgb(0,0,255)'});
122
+
123
+
124
+
125
+ function sikakuka (n, ary) {
126
+
127
+ let tb = table.appendChild (tbody.cloneNode (true));
128
+
129
+ let [th, svg] = tb.querySelectorAll ('th, svg');
130
+
131
+ th.textContent = "x = " + n.toFixed (3);
132
+
133
+ ary.forEach ((a, i) =>setAtr (svg.appendChild (rect.cloneNode (false)), {x: i*8, y:120-a, height: a}));
134
+
135
+ }
136
+
137
+
138
+
139
+
140
+
141
+ for (let i = S; i < E; i += .025) {
142
+
143
+ let c = Array (N).fill (0);
144
+
145
+ for (let j = 0; j < R; j++) {
146
+
147
+ let a = A.slice ();
148
+
149
+ a.sort (()=>Math.random () - i);
150
+
151
+ c[a.indexOf (C)]++;
152
+
153
+ }
154
+
155
+ sikakuka (i, c);
156
+
157
+ }
158
+
159
+
160
+
161
+ </script>
162
+
163
+
164
+
165
+ ```

5

anser の代入を修正した。

2019/02/16 07:00

投稿

退会済みユーザー
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  変数 anser に代入するときは、元の配列である flag から1つ減らす必要がある
8
8
 
9
- anser = flag.shift ();
9
+ [,anser] = flag.shift ();
10
10
 
11
11
  みたいにする。
12
12
 

4

訂正

2019/02/16 03:40

投稿

退会済みユーザー
test CHANGED
@@ -16,9 +16,9 @@
16
16
 
17
17
  関数 Shuffle の変数 i の使い方に無駄がある。
18
18
 
19
- グローバル変数が沢山あって脳内インタープリンタが辛い。
19
+ グローバル変数が沢山あって脳内で解釈しなら理解するのが辛い。
20
20
 
21
- インデント処理もしてほしい。
21
+ プログラムコードにインデントしてほしい。
22
22
 
23
23
  HTMLも見てみたいな。
24
24
 

3

追加

2019/02/16 03:00

投稿

退会済みユーザー
test CHANGED
@@ -38,4 +38,14 @@
38
38
 
39
39
 
40
40
 
41
+ どうでもよいこと、
42
+
43
+ ソートによるシャッフルの件だけど、偏りがあるのはしょうがない。
44
+
45
+ それを逆手にとって出題傾向をなんとなくだけど制御できるのではないか?
46
+
47
+ 旗の数が増えると効率が落ちるけれど、それで十分だと、私も思います。
48
+
49
+
50
+
41
51
  冒頭で'use strict'という見慣れない文字列を見たが、それらしいの使ってる?w

2

追加

2019/02/15 23:02

投稿

退会済みユーザー
test CHANGED
@@ -1,8 +1,8 @@
1
1
  関数 setQuestion が呼ばれるたびにシャッフルする必要はない。関数 init で済ませる
2
2
 
3
- 配列 flags をシャッフルして flag にコピーしているのよね。
3
+ 配列 flags をシャッフルして flag に配列としてコピーしているのよね。
4
4
 
5
- なので flag.length を評価するようにする
5
+ なので flags.length ではなくflag.length を評価するようにする
6
6
 
7
7
  変数 anser に代入するときは、元の配列である flag から1つ減らす必要がある
8
8
 
@@ -26,6 +26,8 @@
26
26
 
27
27
  すると画像がなくても確認できるから。(本当はやらなきゃいけないこと)
28
28
 
29
+ 音声でゲームをしている人には、聞こえちゃいますがw
30
+
29
31
 
30
32
 
31
33
  さらに余計なこと、
@@ -33,3 +35,7 @@
33
35
  もし旗が1万種類あったとして、旗の情報を1万個並び替えるより、インデックス番号だけの
34
36
 
35
37
  配列をソートしたほうが負担が少ないかな。
38
+
39
+
40
+
41
+ 冒頭で'use strict'という見慣れない文字列を見たが、それらしいの使ってる?w

1

追加

2019/02/15 22:50

投稿

退会済みユーザー
test CHANGED
@@ -25,3 +25,11 @@
25
25
  img の src に代入するときは alt にも代入してほしい。
26
26
 
27
27
  すると画像がなくても確認できるから。(本当はやらなきゃいけないこと)
28
+
29
+
30
+
31
+ さらに余計なこと、
32
+
33
+ もし旗が1万種類あったとして、旗の情報を1万個並び替えるより、インデックス番号だけの
34
+
35
+ 配列をソートしたほうが負担が少ないかな。