[Show HN] 私は、互いに重なり合わない区間の集合上で動作する計算機を開発しました。

2026/04/18 10:15

[Show HN] 私は、互いに重なり合わない区間の集合上で動作する計算機を開発しました。

RSS: https://news.ycombinator.com/rss

要約

日本語翻訳:

改善されたバージョンが、詳細なキーポイントを反映させるために推奨されます。主要な欠落要素をすべて取り入れつつ、メインメッセージを明確に保つために再作成したサマリーは以下の通りです:

改訂版サマリー:

このテキストは、間隔ユニオン演算(Interval Union Arithmetic)を実装する専門的な計算機について記述しており、単一の実数ではなく区間の和集合上で動作し、数学的不確実性を効果的に処理します。区間

[a, b]
a
b
の間に含まれ、かつ
a
および
b
自体を含むすべての数を示し、和集合
[a, b] U [c, d]
は不連続な区間の集合を表します。主な利点は、システムが演算に対して閉じており、ゼロを含む区間でも割り除法が可能であること(例:
2 / [-2, 1] = [-∞, -1] U [2, +∞]
)です。また、入力から計算されたあらゆる真の実数値結果が出力和集合に含まれることを保証しており、不確実性の表現を支援します(例:
50 * (10 + [-1, 1]) = [450, 550]
)。

フルプレシジョンモードでは、ツールは IEEE 754 ダブル精度浮動小数点数に対して外向き丸めを使用し、すべての真の無限精度値が計算された出力範囲内に厳密に含まれるようにします。入力は柔軟です:ユーザーは角括弧構文

[a, b]
を使用して区間を入力することも、または単なる数値を入力することもでき、フルプレシジョンモードでは後者は狭い区間として解釈されます。サポートされている演算には足し算(
+
)、引き算(
-
)、掛け算(
*
)、割り算(
/
)、およびべき乗(
^
)が含まれます。サポートされている関数には三角関数(
tan
cos
sin
)、対数(
log10
)、根(
sqrt
)、絶対値(
abs
)、そして境界(
lo(A)
hi(A)
)、および包囲殻(
hull(A)
)が含まれます。

このツールには現在既知のバグが存在し、間隔計算機とそれを支える「not-so-float」エンジンともにオープンソースであり、GitHub でバグ報告が受け付けられています。今後のアップデートでは、フルプレシジョン制御を分割すること、

ans
(答え)変数を追加すること、交差演算子を導入すること、
U
の演算子優先度を微調整すること、空の和集合入力に対応することを計画しています。全体的に、この計算機は従来の手法では処理できない不確実性及び特異点を含む複雑なシナリオへの解決を可能にするため、計算数学を発展させます。

本文

これは何ですか?

これは、単なる実数ではなく「区間の和集合」を扱う電卓です。これは区間和集合算術(Interval Union Arithmetic)の実装です。

ある区間

[a, b]
は、
a
b
の間のすべての数の集合を表します。区間の和集合
[a, b] U [c, d]
は、重複しない区間の組を表します。

通常の区間算術の拡張である区間和集合算術は、ゼロを含む区間で除算を行っても常に閉じた系(結果が定義域外に出ないこと)を保つため、はるかに優れています。

➤ 2 / [-2, 1]

[-∞, -1] U [2, +∞]

区間和集合算術の興味深い特徴は**包含性(inclusion property)**です。これは、入力されるすべての和集合から任意の実数を選出して通常の計算式を適用した結果が、必ず出力される和集合に含まれることを保証するものです。

不確実性を表現するために使用できます:

➤ 50 * (10 + [-1, 1])

[450, 550]

区間和集合演算子

U
を用いて、より複雑な区間の式も計算可能です:

➤ ( [5, 10] U [15, 16] ) / [10, 100]

[0.05, 1.6]

演算の結果として離散した和集合(不連続な区間の組)が得られる場合もあります:

➤ 1 / [-2, 1]

[-∞, -0.5] U [1, +∞]

➤ tan([pi/3, 2*pi/3])

[-∞, -1.732] U [1.732, +∞]

完全精度モードでは、通常の電卓として動作でき、浮動小数点の精度の問題にもかかわらず、真の値を必ず含む区間の結果を得ることができます:

➤ 0.1 + 0.2

[0.29999999999999993, 0.3000000000000001]


文法(Syntax)

演算説明
区間
[a, b]
[0.5, 0.6]
和集合
[a, b] U [c, d]
[0, 1] U [5, 6]
足し算
A + B
[90, 100] + [-2, 2]
[88, 102]
引き算
A - B
[14, 16] - [8, 12]
[2, 8]
掛け算
A * B
[-5, 10] * [2, 4]
[-20, 40]
わり算
A / B
[2, 4] / [-1, 2]
[-∞, -2] U [1, +∞]
累乗
A ^ B
[2, 3] ^ [-2, 3]
[0.1111, 27]
関数
function(...)
log10([1, 10000])
[0, 4]
定数
name
pi
[3.1415926535897927, 3.1415926535897936]

備考: 区間は括弧記法

[1, 2]
または括弧なしの裸数
3.14
の両方で入力できます。裸数は、細かな違いを考慮しつつ、狭い区間として解釈されます(すなわち
[3.14, 3.14]
とみなされます)。これにより、裸数と区間を自然に混在して使用することが可能です:

➤ 1.55 + [-0.002, 0.002]

[1.548, 1.552]

電卓の文法による驚きの副産物として、区間がネスト(入れ子)することもでき、以下のように記述できます:

[0, [0, 100]]

[0, 100]

すべての数(境界を定義する括弧内の数も同様)は区間として解釈されるためです。2 つの区間を上記のようにネストしたとき、区間の境界としての区間は、その上限と同等となります。この設計判断により、区間の境界自体に対する算術操作が可能になります:

[0, cos(2*pi)]

[0, 1]


対応する関数(Supported Functions)

関数説明
定数
inf
,
,
pi
,
e
[-inf, 0] * [-inf, 0]
[0, +∞]
下限
lo(A)
lo([1, 2])
[1, 1]
上限
hi(A)
hi([1, 2])
[2, 2]
包絡(Hull)
hull(A)
hull([1, 2] U [99, 100])
[1, 100]
絶対値
abs(A)
abs([-10, 5])
[0, 10]
平方根
sqrt(A)
sqrt([9, 49])
[3, 7]
平方逆数
sqinv(A)
sqinv([4, 64])
[-8, -2] U [2, 8]
自然対数
log(A)
log([0, 1])
[-∞, 0]
底 2 の対数
log2(A)
log2([64, 1024])
[6, 10]
底 10 の対数
log10(A)
log10([0.0001, 1])
[-4, 0]
指数関数
exp(A)
exp([-∞, 0] U [1, 2])
[0, 1] U [2.718, 7.389]
余弦
cos(A)
cos([pi/3, pi])
[-1, 0.5]
正弦
sin(A)
sin([pi/6, 5*pi/6])
[0.5, 1]
正接
tan(A)
tan([pi/3, 2*pi/3])
[-∞, -1.732] U [1.732, +∞]
逆余弦
acos(A)
acos([-1/2, 1/2])
[1.047, 2.094]
逆正弦
asin(A)
asin([0, 1])
[0, 1.571]
逆正接
atan(A)
atan([-10, 2])
[-1.471, 1.107]
最小値
min(A, B)
min([1, 2], [0, 6])
[0, 2]
最大値
max(A, B)
max([0, 10], [5, 6])
[5, 10]

完全精度モード(Full Precision Mode)

IEEE 754 デouble 精度浮動小数点数(JavaScript の

number
タイプ)に対する外方向丸め処理が実装されており、結果の区間は、無限の精度を持つ実数上で同様の式を計算して得られる真の値を含むことが保証されています。例えば、電卓で有名な和
0.1 + 0.2
を試してみてください。区間算術は、
0.3
が double 精度浮動小数点数として表現できないにもかかわらず、必ず
0.3
を含む区間を計算します。

完全精度モードが有効な場合:

  • ユーザーが入力した数は、入力された十進表記に最も近い IEEE 754 値を含む最も狭い区間として解釈されます(ただし、両方の境界がその値と等しくならないようにします)。
  • 出力数値は、利用可能なすべての小数位が表示されます(
    Number.toString()
    を使用)。

完全精度モードが無効な場合:

  • ユーザーが入力した数は、両方の境界が入力された十進表記に最も近い IEEE 754 値と等しい退化区間(幅ゼロ)として解釈されます。
  • 出力数値は、最大で 4 桁の小数位が表示されます(
    Number.toPrecision()
    を使用)。

バグ

非常に慎重に行ってきたつもりですが、電卓になんらかのバグが存在する可能性が高いです。どうか GitHub 上で問題を報告してください。


オープンソース

Interval Calculator および計算機を動かすエンジンである not-so-float はオープンソースです。もし私のオープンソースプロジェクトが気に入ったら、GitHub でスポンサーを検討していただければ幸いです。ありがとうございます ❤️


今後の仕事(Future Work)

  • 完全精度モードを「入力の解釈」と「表示の精度」の 2 つのコントロールに分割する。
  • ans
    変数を追加する(直前の式の結果)。
  • 交差演算子または関数を追加する。
  • U
    の優先順位をより直感的にする。
  • 空の和集合の入力をサポートする。

同じ日のほかのニュース

一覧に戻る →

2026/04/19 5:54

『好みの色を選べる:NIST の科学家らが、任意の波長のレーザーを開発』

## Japanese Translation: NIST の科学者と協力者が、Scott Papp という NIST の物理学者をリーダーとして発表された「Monolithic 3D integration of tantalum pentoxide nonlinear photonics」という論文に詳述されているように、特殊な材料の複雑なパターンをシリコンウエハーに堆積させることで、統合光子デバイスのチップ作成における画期的手法を開発しました。この革新は、サイズ、コスト、電力に関する重要な歴史的制約を解決し、量子コンピューティングなどの高度な技術用のコンパクトで高品質なレーザーの実現を可能にします。酸化シリコン、リチウムニオブате、タンタル五酸化物(単一のレーザー色を多様な波長に変換しつつ過度の発熱を抑える材料)を含むマルチレイヤーアプローチを用いることで、チームはビールコスター程度のサイズのパターンに、約 10,000 の光子回路を備えた指先ほどの大きさのチップを約 50 個集積することに成功しました。以前是高品質なレーザーは特定の波長(例:980 nm の赤外線)のみに存在し、量子技術の利用が専門的な研究室に限定されていましたが、この画期的進展により、携帯型光原子時計や地震予測システムといった現場での応用が可能になります。光原子時計や量子コンピュータなどの量子技術には、ルビジウム(780 nm の赤)やストロンチウム(461 nm の青)など、異なる原子に合わせた特定の色のレーザーが多く必要とされますが、この新技術はそれを効果的に解決します。この技術は、効率的な光処理を必要とする産業において量子デバイスへのアクセスを民主化するだけでなく、研究機関と Octave Photonics などのスタートアップ間の協力を促進します。*Nature* に掲載されたこれらの発見は、光子機能と電気システムを統合する道を開き、人工知能から暗物質調査に至るまでの分野を変革する可能性があります。これにより、複雑な科学ツールが従来の実験室の外でも手頃な価格で利用できるようになります。

2026/04/19 1:26

ボーイング社の B-52 ストラトフォートレス爆撃機に搭載された、スタートラッカー内の電気式傾斜計。

## Japanese 翻訳: アストロコンパスは、1960 年代の B-52 爆撃機向けに開発され、乗組員が手動で行っていた複雑な三角法の計算を自動化し、天体航法を画期的に変化させました。ジャミングに脆弱な現代デジタルシステムと異なり、この電気機械装置は、外部デジタル信号を使用せずに、シンクロン(変送機)および光増倍管を用いて恒星を追跡する信頼性の高い抗ジャミング方式を提供しました。恒星位置の物理的な追跡と天球のアナログモデルを組み合わせることで、システムはパイロットにリアルタイムでの航法更新を通じて正確な位置を決定することを可能にしました。 公式空軍年誌からのデータに基づいて動作し、この装置は時間や恒星の赤緯などの入力をノブで調整するマスターコントロールパネルを搭載していました。これらの設定は、安定したジャイロプラットフォームとガラスドーム型望遠鏡を含む組立体内の 19 のコンポーネントを駆動しました。アストロコンパスは「位置線」技術を使用し、測定された恒星の高度を計算された期待値と比較することで航空機の軌跡を特定しました。この自動化により、困難な手動手順はスムーズな電気機械プロセスへと変換され、爆撃機艦隊が重要な航法任務において、作戦能力とミッション安全性を大幅に向上させました。

2026/04/19 4:19

Claude のデザインに関する考察と感情

## 日本語翻訳: 要約:中心的な論点是、Figma の専用でロックされたファイル形式がネイティブのスキーマを持たず、深いエイリアシングおよび未文書化されたプリミティブに依存を迫られること(例:946 色の変数を含むネストされたグループのあるファイル)であり、これがコードトレーニング済みの AI モデルが設計論理を正確に解釈することを妨げる。LLM はこれらの特定の不透明な Figma 構造ではなくコードに対してトレーニングされているため、「Figma Make」のような現在のツールは、設計ファイルが依然として規範的であると示唆することでユーザーを誤導し、実質的にワークフローを新しいエージェント時代と不相容の専用エコシステムにロックしている。その対応として、Claude Design とような新たなツールは、「HTML と JS をすべて徹底する」というアプローチを取り、コードと直接統合してレポジトリから AI エージェントへ供給される統一されたフィードバックループを創出する。著者は業界における分岐の予測を行う:一方は誠実なコード連結による生産ツールへの道筋、他方は Photoshop に似た制約のない探求環境への道筋となる。クリーンなコードからのこの転換を批判しつつも、著者は Sketch などの競合業者に対してネイティブ機能に安住するのではなく、粒子エフェクトやメッシュ変換などの特定機能を備えた革新を促し、Figma の形式が AI エージェントに必要なトレーニングデータへの含まれにくさを指摘している。 ## テキストを翻訳 (必要に応じて;そうでない場合は元のものを繰り返す): ## Summary: The core argument is that Figma's proprietary, locked-down file format lacks a native schema, forcing reliance on deep aliasing and undocumented primitives (exemplified by files containing 946 color variables within nested groups) that prevent code-trained AI models from accurately interpreting design logic. Because LLMs were trained on code rather than these specific, opaque Figma structures, current tools like "Figma Make" are misleading users by suggesting the design file remains canonical, effectively locking workflows into a proprietary ecosystem incompatible with the emerging agentic era. In response, new tools like Claude Design adopt an "HTML and JS all the way down" approach, integrating directly with code to create a unified feedback loop where repositories feed AI agents. The author predicts a fork in the industry: one path toward honest, code-linked production tools, and another for unconstrained exploration environments similar to Photoshop. While criticizing this shift away from clean code, the author also urges competitors like Sketch to innovate with specific features (particle effects, mesh transforms) rather than resting on native capabilities, noting that Figma's format prevents its inclusion in necessary training data for AI agents.