質問編集履歴

3

サンプルに誤りがあったため修正

2017/10/05 08:09

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -24,11 +24,13 @@
24
24
 
25
25
  # OK
26
26
 
27
- [18, 17, 17]
27
+ [18, 18, 17]
28
28
 
29
- [17, 18, 17]
29
+ [18, 17, 18]
30
30
 
31
- [17, 17, 18]
31
+ [17, 18, 18]
32
+
33
+
32
34
 
33
35
 
34
36
 

2

見やすいように修正

2017/10/05 08:09

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,36 @@
15
15
  - 順序は問わず
16
16
 
17
17
 
18
+
19
+ ```ruby
20
+
21
+ function(53, 25)
22
+
23
+
24
+
25
+ # OK
26
+
27
+ [18, 17, 17]
28
+
29
+ [17, 18, 17]
30
+
31
+ [17, 17, 18]
32
+
33
+
34
+
35
+ # NG
36
+
37
+ [25, 25, 3]
38
+
39
+ [1, 1, 1, 1, ...., 1]
40
+
41
+ ```
42
+
43
+
44
+
45
+
46
+
47
+ 以下は自分で書いたコードですがいまいちな感じでもっと良い書き方アルゴリズムがあったら教えてください。言語は問いません。
18
48
 
19
49
 
20
50
 
@@ -57,35 +87,3 @@
57
87
  end
58
88
 
59
89
  ```
60
-
61
-
62
-
63
- ```ruby
64
-
65
- distribute_evently(53, 25)
66
-
67
-
68
-
69
- # OK
70
-
71
- [18, 17, 17]
72
-
73
- [17, 18, 17]
74
-
75
- [17, 17, 18]
76
-
77
-
78
-
79
- # NG
80
-
81
- [25, 25, 3]
82
-
83
- [1, 1, 1, 1, ...., 1]
84
-
85
- ```
86
-
87
-
88
-
89
- 自分で書いたコードですがいまいち感じでもっと良い書き方アルゴリズムがあったら教えてください。
90
-
91
- 言語は問いません。

1

ozwkの指摘を参考に評価基準を更新

2017/10/05 07:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,23 @@
1
+ ## 解決したい問題
2
+
3
+
4
+
5
+ ある数(total)を最大値(max)を超えない範囲で分割したい
6
+
7
+
8
+
9
+ - total,maxは正の整数
10
+
11
+ - 分割数はtotal/max以上の最小の整数
12
+
13
+ - 分割後の要素の分散が最小になる
14
+
15
+ - 順序は問わず
16
+
17
+
18
+
19
+
20
+
1
21
  ```ruby
2
22
 
3
23
  # 与えられた整数をmaxを超えない範囲で均等に分割する
@@ -42,13 +62,25 @@
42
62
 
43
63
  ```ruby
44
64
 
65
+ distribute_evently(53, 25)
66
+
67
+
68
+
45
69
  # OK
46
70
 
47
- distribute_evently(53, 25) == [18, 17, 17]
71
+ [18, 17, 17]
72
+
73
+ [17, 18, 17]
74
+
75
+ [17, 17, 18]
76
+
77
+
48
78
 
49
79
  # NG
50
80
 
81
+ [25, 25, 3]
82
+
51
- distribute_evently(53, 25) != [25, 25, 3]
83
+ [1, 1, 1, 1, ...., 1]
52
84
 
53
85
  ```
54
86