stackprobe7s_memo

何処にも披露する見込みの無いものを書き落とす場所

THE MAKING 290 氷砂糖ができるまで で気になったこと

www.youtube.com
先日この動画を観て 11:44 からの部分、バケットの数 (はかりの数) の 14 という半端な数がちょっと気になった。
バケットの数が少なすぎれば 1kg になりにくいし、多すぎれば過剰設備となる。
きっと丁度良い数なのだろう。

シミュレーションしてみた

バケットの数を変えてみて包装袋の重さの分布を出してみた。

見た感じの仕組み

上から
氷砂糖の投入口 ⇒ 氷砂糖を貯めておく皿(Backet_Pool) x 14 ⇒ 量り皿(Backet_Scale) x 14 ⇒ 包装袋
になっていて Backet_Pool , Backet_Scale の底が開閉可能になっているっぽい。
ゲーセンのメダルゲームみたいに Backet_Pool に充填されていく。
Backet_Scale の底が開いて空になったタイミングで Backet_Pool の底が開いて中身が全部(一部?) Backet_Scale に充填される。
1kg 以上でなるべく 1kg に近い組み合わせで Backet_Scale の底を開けて包装する。(1kg 未満で包装したら不良品になってしまうだろうから、1kg 以上になるようにはしていると思う)
氷砂糖の投入速度と、包装される速度は(単位時間での重さが)同じはず。
長時間特定の Backet_Scale が選ばれなかった場合 Backet_Pool にどんどん溜まって行ってしまう。⇒ 一定量に達するとそれ以上貯まらないようになっている。ように見える。
全ての Backet_Pool を合わせても 1kg 未満だったらどうするんだろう?初期状態とか。⇒ 分からない。

実装した仕組み

重さは int , g 単位
Backet_Pool への充填と包装を交互に行う。

UNTIL 包装袋の数が規定数に達する
{
	Charge();     // Backet_Pool への充填を行う。
	TryBagging(); // 包装可能 (Backet_Scaleを組み合わせて1kgを作れるなら) であれば包装を行う。
}

Charge

  • 総量がだいたい 1kg になるように充填する。(充填と梱包の速度が同じになるように)
    • 1つの Backet_Pool について 0 ~ (2kg / バケット数) の範囲でランダムに加算する。
    • 1つの Backet_Pool に 0.3kg の以上貯まらないようにする。
      • 動画見た感じそれくらいじゃないかなと思ったので。

TryBagging

  • 1kg 以上でなるべく 1kg に近い組み合わせで包装する。
  • 1kg 以上になる組み合わせが無ければ、全ての Backet_Pool を開ける。

結果

包装袋の重さの分布 (100000袋)

重さ \ バケット 6 7 8 9 10 11 12 13 14 15 16 17 18
1000 g 3974 8118 16080 30042 50690 73211 88305 94338 96713 97860 98649 98908 99301
1001 g 3811 7639 12991 19464 21837 15361 6677 2791 1553 984 605 495 328
1002 g 3693 6964 10784 13067 10119 4713 1852 1011 546 400 267 193 140
1003 g 3577 6207 8852 8893 5464 1989 876 495 332 216 146 108 65
1004 g 3293 5621 7468 6221 3161 1160 514 316 187 135 58 73 42
1005 g 3161 5244 6171 4551 1918 754 334 234 149 91 69 58 33
1006 g 3068 4582 5132 3281 1372 565 277 143 98 60 53 39 25
1007 g 2926 4370 4155 2368 983 397 186 110 82 50 46 30 18
1008 g 2797 3858 3573 1911 729 264 166 96 67 30 24 23 8
1009 g 2693 3616 2973 1462 543 213 114 77 45 36 18 13 9
1010 g 2591 3281 2530 1193 411 189 97 49 34 25 16 12 10
1011 g 2366 2905 2048 910 346 148 79 45 28 23 9 11 5
1012 g 2306 2795 1739 790 258 136 66 38 29 13 6 8 3
1013 g 2270 2550 1563 671 233 98 62 46 18 12 12 6 1
1014 g 2206 2320 1313 507 225 97 53 40 18 9 8 4 5
1015 g 1969 2028 1151 487 170 64 41 22 16 9 5 1 2
1016 g 2005 1880 1008 423 153 81 39 23 8 6 3 4 1
1017 g 1935 1707 881 367 147 62 29 10 11 7 2 9 2
1018 g 1850 1592 751 316 133 59 27 16 9 8 1 1 1
1019 g 1705 1467 725 273 114 48 19 14 8 11 1 1 0
1020 g 1619 1378 564 271 103 37 28 13 10 8 2 1 0
1021 g 1587 1223 601 200 71 39 16 12 5 1 0 0 0
1022 g 1530 1110 535 187 67 35 23 10 2 0 0 0 1
1023 g 1418 1011 443 174 78 28 21 10 3 2 0 0 0
1024 g 1375 940 422 153 60 22 11 3 4 0 0 0 0
1025 g 1308 842 375 141 55 23 12 7 2 1 0 1 0
1026 g 1306 810 347 126 43 29 10 6 1 0 0 0 0
1027 g 1265 788 328 108 32 28 8 5 4 0 0 1 0
1028 g 1174 777 294 102 53 14 7 3 4 1 0 0 0
1029 g 1103 651 289 87 34 16 6 3 1 0 0 0 0
1030 g 1057 634 244 118 36 10 6 4 2 1 0 0 0
1031 g 1091 578 233 62 29 9 6 2 5 0 0 0 0
1032 g 997 571 232 68 24 6 4 1 1 0 0 0 0
1033 g 1006 478 207 74 18 12 1 0 1 1 0 0 0
1034 g 983 457 157 56 34 4 5 0 0 0 0 0 0
1035 g 865 486 155 68 19 10 1 1 2 0 0 0 0
1036 g 889 389 146 55 23 6 2 0 0 0 0 0 0
1037 g 809 373 158 52 19 12 2 1 1 0 0 0 0
1038 g 793 347 130 46 11 6 4 2 0 0 0 0 0
1039 g 784 329 143 46 13 6 1 0 0 0 0 0 0
1040 g 707 340 108 35 15 5 2 0 0 0 0 0 0
1041 g 750 293 113 39 7 4 1 0 0 0 0 0 0
1042 g 630 255 91 46 15 4 0 1 0 0 0 0 0
1043 g 695 256 98 22 14 1 2 0 0 0 0 0 0
1044 g 651 241 85 39 9 1 1 1 0 0 0 0 0
1045 g 578 246 74 24 6 2 1 0 0 0 0 0 0
1046 g 568 251 68 24 10 2 1 0 0 0 0 0 0
1047 g 559 225 84 26 8 0 2 0 0 0 0 0 0
1048 g 556 201 86 20 6 2 0 0 0 0 0 0 0
1049 g 536 198 46 24 2 3 2 0 0 0 0 0 0
1050 g 以上 16615 4578 1256 310 80 15 1 1 1 0 0 0 0
バケット 重さの平均
6 1028.1799 g
7 1013.6660 g
8 1007.0596 g
9 1003.5477 g
10 1001.6651 g
11 1000.7360 g
12 1000.3376 g
13 1000.1801 g
14 1000.1088 g
15 1000.0669 g
16 1000.0398 g
17 1000.0334 g
18 1000.0195 g

確かに 14 くらいでいいんじゃないかと思った。
そんだけ