競プロの精進のために学びがあった問題についてまとめています。 目標は AtCoder 水色!
今のレートは茶色です。
問題
典型90 020 – Log Inequality(★3)を解きました。
考察
普通に対数を計算するメソッドを使えば解けるのでは・・・、という罠に引っかかりました。
math.log2(a) < b * math.log2(c)
対数同士を比較すると、浮動小数点の誤差によって正確な比較ができません。
そのため、元の式を式変形して、 a < c^b
の比較を行うことにします。
コード
import math
a,b,c = map(int,input().split())
if a < pow(c, b):
print("Yes")
else:
print("No")
まとめ
誤差問題引っかかりがち。