1=0.999… その12.999…
■ このスレッドは過去ログ倉庫に格納されています
0232132人目の素数さん
2006/08/19(土) 06:19:13>小数点以下を切り落とすんだから
ダウト。intは「小数点以下を切り落とす」演算ではなく、「その数を超えない最大の
整数を出力する」演算だよ。つまりint(x)=min{n∈Z|n≦x}ということ。たとえば
int(1.5)=min{n∈Z|n≦1.5}=1
int(2.7)=min{n∈Z|n≦2.7}=2
となる。0.999…については、0.999…=1だから
int(0.999…)=min{n∈Z|n≦0.999…}=min{n∈Z|n≦1}=1
となり、何も矛盾は起きない。
ちなみに、「小数点以下を切り落とす」演算をINTと表すことにすると、
この演算はwell-definedでは無い。すなわち、x=yなのにINT(x)=INT(y)が
成り立たないことがある。たとえば、x=0.999…,y=1とおくとx=yであるにも
関わらずINT(x)=0,INT(y)=1となり、INT(x)≠INT(y)となってしまう。>>231は
このようなポンコツ演算子を使ったがゆえに矛盾が起きただけのこと。
■ このスレッドは過去ログ倉庫に格納されています