teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

私の考え(ロジック)について記載しました

2019/06/24 04:10

投稿

OtaMasato
OtaMasato

スコア44

title CHANGED
File without changes
body CHANGED
@@ -15,4 +15,38 @@
15
15
  1、2のロジックの考え方について教えてください。
16
16
 
17
17
  なお、1位で被った場合は、再び選択させるのではなく、ランダム(乱数)で良いです。
18
- (子供たちは結果に対してケンカしないものとします)
18
+ (子供たちは結果に対してケンカしないものとします)
19
+
20
+ **■6/24 12:35 追記**
21
+ > こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました 「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。
22
+
23
+ すみません、丸投げのつもりはなかったのですが、この手の質問の仕方はteratailではNGなのですね。
24
+ 勉強になりました。
25
+
26
+ 私の考えです。
27
+
28
+ **1.1位に選んだおやつを優先的に獲得できるロジック**
29
+ - 1つ目のおやつを選択する
30
+ - 1つ目のおやつを第1位に選んだ人を検索する
31
+ - 第1位に選んだ人が複数人いる場合は、乱数により決定する(1つ目のおやつと子どもをマッチングする)
32
+ - 第1位に選んだ人がいなかった場合はマッチングをスキップする
33
+ - 次のおやつに進む
34
+ - すべてのおやつに対して上記操作を行う
35
+ - おやつと子どものマッチングがすべて完了していたらマッチング終了
36
+ - マッチングが完了していなければ、検索対象を第2として1つ目のおやつから検索する
37
+ - マッチングが完了するまで、第3位、選択なしの順に検索対象をずらしていく
38
+
39
+ **2.おやつをなるべく希望に沿うように選択するロジック**
40
+   **※第1~3位のおやつ以外がなるべく行き渡らないようにするロジック**
41
+ - 1つ目から4つ目までのおやつに対して、おやつの選択の数を検索する
42
+ - おやつの選択の数が1つのおやつについてループする
43
+ - おやつを選択した子どもとおやつをマッチングする
44
+ - おやつの選択の数が1つのおやつについてのループが完了した後に、マッチング済みのおやつと子どもを除いて、再度おやつの選択の数を検索する
45
+ - おやつの選択の数が1つのおやつについてループして、おやつと子どもをマッチングする
46
+ - このループを繰り返し、選択の数が1つのおやつが無くなったら次に進む
47
+ - 1つ目のおやつを選択し、複数選択されているはずなので、順位の高い人とマッチングする。順位が同位で複数人いた場合は乱数による決定とする。
48
+ - 2つ目のおやつでも同じように順位の高い人とマッチングする
49
+ - この操作をすべてのマッチングが完了していないおやつと子どもに対して実施する
50
+ - 最後に、全く選択されていないおやつがあれば、おやつと最後に残った人をマッチングする
51
+
52
+ 1も2もキレイなロジックではないと思いますが、いまいち良いロジックが思い浮かびません。