3Dモデリングソフトウェアは、主にUVマッピングを使用してテクスチャを3Dオブジェクトにマッピングします。UとVの両方の有効な値は、通常、包括的[0..1]範囲にあります。
チャレンジ
非常に使いやすい新しい3Dモデリングソフトウェアを購入しました。ただし、1つの問題があります。UV値からランダムな整数を加算または減算します。あなたの仕事は、入力値を変更して包括的な[0..1]範囲の浮動小数点値を取得するプログラムまたは関数を作成することです。
結果のフロートは、元と同じ小数部分を持ち、可能な限り元に近いはずです。両方のため0と1出力範囲にある、以下の任意の整数0又は0に変更する必要があり、任意の整数1以上を1に変更しなければなりません。
JavaScriptのアルゴリズムの例:
function modFloat(input) {
while (input < 0 || input > 1) {
if (input < 0) input += 1;
if (input > 1) input -= 1;
}
return input;
}
ルール
- 入力は単一の整数または浮動小数点値です。回答で指定されている限り、任意の合理的な形式が許可されます。
- 出力は、float値の10進表現でなければなりません。
- 出力精度は、少なくとも入力と同じ小数点以下である必要があります。
- 末尾のゼロは許可されます。
- 整数入力に対して出力するコードを0または1のいずれかが正しく選択していることを確認してください。
テストケース
Input | Output
------------+---------
-4 | 0
-1 | 0
0 | 0
1 | 1
2 | 1
1.0001 | 0.000100
678.123456 | 0.123456
-678.123456 | 0.876544
4.5 | 0.5
これはcode-golfなので、バイト単位の最短コードが勝ちです!
any reasonable input format is allowedので、「なぜ?」と言うでしょう。