Translate

2012年11月18日日曜日

最大整数関数の応用問題

最大整数関数(または床関数)[x]のちょっとした応用についての問題です。

実数xを超えない最大の整数を[x]と表すことにする。
例:[2.147]=2、 [50]=50、 [-6.03]=-7、 [π]=3

さて、x>0とするとこの関数[x]は、見方を変えると「xの小数部分を小数第一位から切り捨てる関数」とも見ることができる。
では、「xの小数部分を小数第二位から切り捨てる関数」を作ってください。

1 件のコメント:

  1. 問題の答えです。

    x=a.bcをある正の小数とします。

    作りたい関数をfとすると、

    f(x) = a.b

    となります。

    これから、このfの正体を探っていきます。

    まず、そのままxを床関数に入れると、

    [x]=a

    となり、bの情報が消えてしまいます。

    bをうまく残して、cだけを消す方法を考えます。

    床関数を、小数点の左側だけ取り出す関数と考えると、

    bを小数点の左側に持ってきて、cだけ小数点の右側に残しておくことを考えれば良いことになります。

    xを10倍すれば、bだけ小数点の左側に移動することができます。つまり、

    10x = ab.c

    これに、床関数を施すと、

    [10x] = ab

    そして、両辺を10で割れば、

    [10x]/10 = a.b

    となり、これは作りたかった関数fと一致しているので、

    f(x) = [10x]/10

    よって、これが「xの小数部分を小数第二位から切り捨てる関数」である。

    返信削除