典型90

典型90 020 – Log Inequality(★3)

競プロの精進のために学びがあった問題についてまとめています。 目標は 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")

まとめ

誤差問題引っかかりがち。

COMMENT

メールアドレスが公開されることはありません。