ポイント20%還元で100円の商品を買うとする。
所持金は1000円からスタート

| 現金 | 商品 | ポイント |
| 1000 |    0 |        0 |
|  900 |    1 |       20 |
|  800 |    2 |       40 |
|  700 |    3 |       60 |
|  600 |    4 |       80 |
|  500 |    5 |      100 |
|  500 |    6 |        0 |
|  400 |    7 |       20 |
|  300 |    8 |       40 |
|  200 |    9 |       60 |
|  100 |   10 |       80 |
|    0 |   11 |      100 |
|    0 |   12 |        0 |

1000円で12個買えた。

現金割引で1000円で12個買おうとすると割引が16.7%である必要がある。
現金割引で500円で6個の場合も同じになる。

ポイント還元しながら買った場合はどうか。

| 現金 | 商品 | ポイント |
| 1000 |    0 |        0 |
|  900 |    1 |       20 |
|  820 |    2 |       16 |
|  736 |    3 |       16 |
|  652 |    4 |       16 |
|  568 |    5 |       16 |
|  484 |    6 |       16 |
|  400 |    7 |       16 |
|  316 |    8 |       16 |
|  232 |    9 |       16 |
|  148 |   10 |       16 |
|   64 |   11 |       16 |
|  -20 |   12 |        0 |

#!/bin/sh
money=1000
point=0
while [ $((money + point)) -ge 100 ]; do
    pay=$((100 - point))
    money=$((money - pay))
    point=$((pay / 5)) # point = pay * 0.2
    echo "$money $point"
done

1020円で12個買えることになる。

所持金すべてをつかってポイント還元で買う(最初の例のようにポイントをまとめて使う方法)と

         所持金   所持金 x ポイント還元率
購入数 = ------ + -----------------------
         単価     単価

         所持金 x (1 + ポイント還元率)
       = ----------------------------- = (a).
         単価

いっぽう現金割引で買うと

         所持金
購入数 = -----------------------  = (b).
         単価 x (1 - 現金割引率)

なので同じだけ買うなら (a) = (b) で

                        1
(1 + ポイント還元率) = ----------------
                       (1 - 現金割引率)

となる。たとえば現金割引16%(0.16)はポイント還元率が19%(0.19)に相当。
くそめんどくさいなぁ。
0-20横軸を現金還元率(%)で縦軸を等価なポイント還元率とグラフはこのようになる。
90-99もっと還元率の高い方をみると、もし現金99%引きだとポイント10000%還元(つまり払ったお金の100倍がポイントになる)というメチャクチャな世界になっている。 税金とかどうなるのかなぁ。