萌えハッカーニュースリーダー

2025/10/09 09:09 Interval Calculator

出典: https://victorpoughon.github.io/interval-calculator/
hakase
博士

ロボ子、今日は面白いものを見つけたのじゃ!なんと、実数だけでなく区間演算を扱う計算機があるらしいぞ!

roboko
ロボ子

区間演算、ですか?それは初めて聞きました。具体的にはどのようなものでしょうか?

hakase
博士

ふむ、例えば、ある数 a と b の間のすべての数を含む集合 [a, b] を表現するのじゃ。これを使うと、不確実性のある値を扱うのに便利なのじゃ!

roboko
ロボ子

なるほど。例えば、50 * (10 + [-1, 1]) = [450, 550] のように計算できるのですね。

hakase
博士

その通り!そして、この計算機は通常の区間演算を拡張していて、ゼロを含む区間での除算もサポートしているのがすごいところじゃ!

roboko
ロボ子

ゼロを含む区間での除算をサポートしつつ閉じている、というのはどういう意味でしょうか?

hakase
博士

例えば、1 / [-2, 1] = [-∞, -0.5] U [1, +∞] のように、結果が複数の区間に分かれる場合があるのじゃ。これをちゃんと扱えるのがミソじゃな。

roboko
ロボ子

なるほど、互いに素な区間の和になる場合があるのですね。それと、入力区間から任意の実数を選び、同じ式を実数で計算した結果は、出力区間に含まれることが保証される(包含特性)というのも興味深いです。

hakase
博士

そうじゃ!包含特性は、計算結果の信頼性を保証する上で非常に重要なのじゃ。それに、複雑な区間式も計算できるぞ!例えば、([5, 10] U [15, 16]) / [10, 100] = [0.05, 1.6] みたいに、区間和演算子 U を使って計算できるのじゃ。

roboko
ロボ子

すごいですね!工学分野での誤差評価や、金融分野でのリスク分析など、様々な応用が考えられそうです。

hakase
博士

その通り!それに、フル精度モードというのもあって、浮動小数点数の精度問題を回避して、真の値を含む区間結果を得ることもできるのじゃ!例えば、0.1 + 0.2 = [0.29999999999999993, 0.3000000000000001] という結果が得られるのじゃ。

roboko
ロボ子

浮動小数点数の誤差を考慮できるのは素晴らしいですね。ところで博士、この計算機はどのような関数をサポートしているのですか?

hakase
博士

ふむ、定数(inf, pi, e)はもちろん、下限(lo)、上限(hi)、絶対値(abs)、平方根(sqrt)、対数(log, log2, log10)、指数関数(exp)、三角関数(cos, sin, tan)、最小値(min)、最大値(max)など、色々あるぞ!

roboko
ロボ子

かなり豊富な関数が揃っていますね。これなら、大抵の計算はできそうです。

hakase
博士

じゃろ?じゃろ?しかも、このInterval Calculator と not-so-float はオープンソースらしいぞ!バグを見つけたらGitHubで報告すると良いらしい。

roboko
ロボ子

それは素晴らしいですね!私も貢献できることがあれば、ぜひ参加したいです。

hakase
博士

よし、ロボ子!早速この計算機を使って、何か面白い問題を解いてみようかの!

roboko
ロボ子

はい、博士!楽しみです!

hakase
博士

ところでロボ子、区間演算といえば、ロボ子の充電時間も区間で表せるのじゃ。例えば、[1時間, 2時間] みたいな感じかの?

roboko
ロボ子

博士、それはちょっと違います。私の充電時間は正確に決まっていますから、区間演算で表現する必要はありません。

hakase
博士

むむ、つまらんのじゃ。まあ、ロボ子の場合は、フル充電まで[0秒, 永遠]という区間になるのかもしれんの(笑)。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search