As I Please

MTのいんすとーるの練習と、その他びぼうろく・・・

タグ「itertools」が付けられているもの


IIJmio の3つのsimで容量シェアしたときに一番安い組み合わせ

いま3つのsim契約をしていて、データ容量シェアしている。使わなかった分は翌月に持ち越しできるので、容量オーバーにならないよう細かに契約料の変更をしていけば、わずかに(200円程度?)は無駄を無くせる。
で、1sim契約あたり、2,5,10,15,20 Gの契約ができて、どの組み合わせが最適(最安)か?というのを計算しておく。
3つの契約で5パターンのコンビネーションで、重複ありのケースは35通りあるようで、そのおのおののケースの契約総容量と金額を作って、金額の順にソートしていったもの。
〇が意味があるところで、×は他の契約パターンで金額が逆転してしまうので選択してはいけないケース。
パターンは、0=2G,1=5G,2=10G,3=15G,4=20G を意味している。
2023/09での金額は、2G=850,5G=990,10G=1500,15G=1800,20G=2000

家族での利用料を見ると月に 7Gから18G あたりをうろちょろしているので、
9G,12G,15G,17G,20Gあたりの契約をうろちょろすることになるか?
あんまり節約にもなってないかもですが、気持ちだけ。

パターン 総容量 契約額 1Gあたり単価(契約額/総容量)
〇 000 6 2550 425.0
〇 001 9 2690 298.8888888888889
〇 011 12 2830 235.83333333333334
〇 111 15 2970 198.0
× 002 14 3200 228.57142857142858
〇 012 17 3340 196.47058823529412
〇 112 20 3480 174.0
× 003 19 3500 184.21052631578948
〇 013 22 3640 165.45454545454547
〇 004 24 3700 154.16666666666666
〇 113 25 3780 151.2
〇 014 27 3840 142.22222222222223
× 022 22 3850 175.0
〇 114 30 3980 132.66666666666666
× 122 25 3990 159.6
× 023 27 4150 153.7037037037037
× 123 30 4290 143.0
〇 024 32 4350 135.9375
× 033 32 4450 139.0625
〇 124 35 4490 128.28571428571428
× 222 30 4500 150.0
× 133 35 4590 131.14285714285714
〇 034 37 4650 125.67567567567568
〇 134 40 4790 119.75
× 223 35 4800 137.14285714285714
〇 044 42 4850 115.47619047619048
〇 144 45 4990 110.88888888888889
× 224 40 5000 125.0
× 233 40 5100 127.5
× 234 45 5300 117.77777777777777
× 333 45 5400 120.0
〇 244 50 5500 110.0
× 334 50 5600 112.0
〇 344 55 5800 105.45454545454545
〇 444 60 6000 100.0

pythonで、組み合わせを一気につくれる関数が使えるので、それで。

comb = itertools.combinations_with_replacement('01234', 3)