[過去ログ] プログラミングのお題スレ Part21 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
533
(6): デフォルトの名無しさん [] 2023/03/09(木) 01:22:26.54 ID:fNPpmDIo(1/2) AAS
お題:引数の絶対値を1-2-5シリーズ(1, 2, 5と、その10の整数べき乗の集合
(..., 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, ...)に切り捨てる関数。
IEEE754で正確に表現出来ない数(0.2とか)になる場合、最も近い値を返す事。
(例 : 0.2の場合は0x1.999999999999ap-3
その場合でも、(切り捨てなので)引数の絶対値を超えてはならない)

f(1) → 1
f(1.1) → 1
f(1.9) → 1
f(2) → 2
f(2.1) → 2
f(4.9) → 2
f(5) → 5
f(5.1) → 5
f(9.9) → 5
f(10) → 10
f(10.1) → 10

発展的なお題:
引数の絶対値が5e-308未満の場合の望ましいと思われる振る舞いについて述べよ
(「思われる」なので正解はありません)。
536
(2): デフォルトの名無しさん [sage] 2023/03/09(木) 07:19:28.41 ID:Kr9kVNlI(1/2) AAS
>>533
0.2に一番近い値が0.2より小さい場合
この値の入力に対して
0.2に一番近い値を返せばいいのか
0.1に一番近い値を返せばいいのか
どっち?
537
(2): 533 [sage] 2023/03/09(木) 07:42:30.20 ID:fNPpmDIo(2/2) AAS
>>536
前者(0.2に一番近い値を返す)
543
(1): デフォルトの名無しさん [sage] 2023/03/09(木) 13:53:10.22 ID:bNerenDr(1) AAS
>>533
log₂5が無理数なので集合
{ 2ᵐ5ⁿ | 2ᵐ5ⁿ ≦ a }
は最大値を持たない、すなわち“切り捨て=下界の最大値”が一般には存在しない
545
(1): デフォルトの名無しさん [sage] 2023/03/09(木) 17:53:05.38 ID:T9AEG++6(1) AAS
>>533
Haskell

外部リンク:ideone.com

負の数とかは無視
f(x) = max { a×10ⁿ | a∈{1,2,5}, n∈ℤ, a×10ⁿ≦x }
を出力
559
(1): デフォルトの名無しさん [] 2023/03/10(金) 17:58:27.90 ID:ZGHw+/B0(2/5) AAS
>>533
kotlin

出力がちょっと違うけど値としては合っている。
まあしかし BigDecimal 使って文字列で処理しちゃってて桁数大きくてもドーンと来いみたいになっててつまりほぼ手抜き。

外部リンク:paiza.io
566: 559 [] 2023/03/12(日) 02:44:00.49 ID:eBdq5KuG(1/2) AAS
>>533
Kotlin

BigDecimal (及び BigInteger)は使うが文字列を使うのは止めて色々計算して何とかするようにした。

外部リンク:paiza.io
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s