ビットに代わるものはありますか?


42

データの最小単位としてビットに代わるものはありますか?0または1だけでなく、実際に多くの可能な状態を間に保持するものは何ですか?そのようなフロートを保存する方が自然ではないでしょうか?


8
任意のフロートを格納できるようにするには、無限の状態が必要なので、これは実用的ではありません。
ChrisF

2
@ChrisF:限られたビット数で無限のフロートを表現できますか?
ユーザー不明

11
@userunknown-いいえ、できません。浮動小数点演算がエラーを起こしやすい理由です。私がしてしようと言うことは、より多くの状態を持つことが実際には何も解決しないだろうということでした。
ChrisF

6
これは興味深いかもしれません:thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
クリスカドモア

5
無限数の異なるフロートを一意に表すことは不可能です。単一の無限フロートを一意に識別するために、無限の情報を保存する必要があります。これは、物理のため、有限のスペースでは実行できません。所与の体積中の一定量を超えた情報記憶必要密度内容が重力それらは(より良い「光速」として知られている)MAX_SPEEDに移動することができる場合であっても、有限の時間内MAX_DENSITYに粉砕されるように:黒穴。CompSciの意味については、en.wikipedia.org / wiki / Bekenstein_boundを参照してください。

回答:


59

もちろん、理論的にも実際的にも可能です。

理論的には、2つのクラスの選択肢があります。2以外の基数を持つデジタル数値システム(実際には、そのようなシステムの1つであることがわかっている10進数システム)。および非デジタル数値システム。数学的に言えば、離散領域と連続領域について話しています。

実際には、両方のオプションが検討されています。初期のデジタルコンピュータの一部(ENIACなど)は、現在普及しているバイナリエンコーディングではなく、10進エンコーディングを採用しています。他のベース、たとえば3成分は、同様に実行可能(または実行不可能)でなければなりません。難解なプログラミング言語Malbolgeは、理論的な3進コンピューターに基づいています。ほとんど風刺的ですが、機能しないはずの技術的な理由はありません。連続領域の保存と処理は、歴史的にアナログコンピューターで行われていました。そこでは、振動信号の周波数や振幅として量をエンコードでき、これらの信号にあらゆる種類の変調を適用して計算を実行していました。今日、量子コンピューティングは、連続ストレージセルの背後にある理論を再び興味深いものにしています。

いずれにせよ、情報の理論上の最小単位としてのビットは依然として存在します。代替手段は単一のyes / noよりも多くの情報をエンコードでき、誰もまだより小さな理論単位を考え出していないためです(そして、それが起こるとは思いません近いうちに)。


17
@Dokkat:アナログテープなどの連続ドメインストレージは理論上は優れていますが、実際には回復不可能なノイズと劣化に悩まされており、これが最初にデジタルコンピューターを使用する理由の1つです。
-tdammers

19
情報理論では、1ビット未満の情報を伝えることはかなり可能です。基本的な考え方は、両方の状態が等しく発生する可能性がある場合、1ビットのデータは1ビットの情報しか保持しないというものです。その定義によれば、サハラ砂漠では「今日は雨が降ったのか?」という質問に対する答えは「いいえ」です。それはほとんど常に答えだからです。
マイケルボルグワード

9
@Dokkatは、以前は複雑なアナログ量のモデリングに一般的でしたが、「デジタル」コンピューターはアナログコンピューターの制御システムでした。実際には、の分解能でアナログ回路を構築することは困難だdouble
マーティンベケット

5
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding-実際、10進エンコードは現在も使用されています。BCDと呼ばれます。ほとんどのコンピューターのBIOSは、バイナリで行うよりもBCDですべてを行うために必要な回路が少ない(つまり、安価である)ため、ほとんどの安価な計算機と同様に(小数ベースの日付に対して)それを使用します2進数から10進数へのコンバーター。
BlueRaja-ダニーPflughoeft

3
@tdammersが言うように、アナログ信号を使用して単精度のフロートでさえ一致させることは困難です。32ビットの浮動小数点は、事実上24ビットの精度を持ちます。同等のノイズを持つアナログ回路は、高価で、電力を消費し、低速で、環境に非常に敏感です。
来るストーム

26

基本的にはセンサーで使用されるアナログ信号を記述していますが、内部計算用ではありません。問題は、ノイズにより品質が低下すること、通信するのが難しい基準点の非常に正確なキャリブレーションが必要になること、そして伝送が進むと強度が失われるために伝送が問題になることです。

アナログコンピューティングの検討に興味がある場合、ほとんどの学部の「電子工学入門」クラスでは、オペアンプインテグレータのようなものを作成します。正式な指示がなくても簡単に構築できます。

同じノードに複数のデジタル状態を保存することもできます。たとえば、0〜2.5ボルトがゼロで2.5〜5.0ボルトが1である代わりに、間に3番目の状態を追加できます。ただし、多くの複雑さが追加され、ノイズに対する感受性が大幅に高まります。


アナログコンピューティングは以前は非常に一般的でしたが、最終的にはデジタルの方が正確になります。メモリ内の数ビットを使用して値を表現することは、ノイズを数dB低く(3ビット〜20 dB)下げようとするのに比べてまったく簡単であり、ある時点(速度によって異なります)で物理的に不可能です。
ニックT

ここでは、アナログコンピューティングとその例に重点を置いています。厳密にデジタルのcomp sciのバックグラウンドから来て、私は常にアナログコンピューティングが何であるかを見ていませんでした。そのためにグーグルは多くの例を与えますが。入射光をその構成周波数に分割するため、プリズムがフーリエ変換を「計算」するのを見たことを覚えていると思います。(FTを計算するための要件の意味で)ゼロのエネルギーでこれを非常に高速に実行します。もちろん、結果で何かをするためにはデジタル化が必要になるでしょう。
ポール14

@NickT Norbert Wiener、サイバネティックスの作者であり、その理論/制御理論分野の初期のプレーヤーは、彼の本で、最終的にラボ、研究者、および業界がバイナリを選択する原因となったアナログ同等物と比較して、バイナリ回路のコストが低いことを思い出しました
クリストフ

20

これらはキュービットと呼ばれ、量子コンピューターで使用されます。ウィキペディアのエントリでそれらに関する詳細情報を見つけることができます。そのようなコンピューターを安定して経済的に実現可能にするための研究が行われています。


1
これにより、私の頭が痛くなります
...-リャサル

量子ビットがどのように機能するのか正確にはわかりませんが(読んでいるので、後で更新します)、量子ビットは現在の技術では実用的ではないことを知っていますが、その概念はそうではありません。たとえば、グラスに満たされた水の量で「フローティング」ビットを物理的に表し、天びんを使用して測定できます。
ドッカット

11
Nitpicking:キュービットは0と1の間の状態保持しません。それでも0または1のままですが、同時に複数の状態を持つことができます 。(ちょうど「半分死んだ」ではなく、死んで生きているシュレディンガーの猫のように)
ニキーエ

7
@Ryathalそれは実際には良い兆候です。「量子理論にショックを受けていない人は誰も理解していません。」-ニールスボーア
ダンニーリー

1
何らかの理由で、私は常にキュービットを淡いブルーまたはピンクのトリブルとして描いています。
ウェインワーナー

17

精度の問題

ビットを使用する1つの理由は、情報を正確に保存および取得するのに役立つからです。

現実の世界はアナログであるため、コンピューターが通過または保存するすべての情報は最終的にアナログです。たとえば、ワイヤ上の特定の電圧の電流、ディスク上の特定の強度の磁気電荷、またはレーザーディスク上の特定の深さのピット。

問題は、そのアナログ情報をどれだけ正確に測定できるかということです。次のように、ワイヤ上の電流が任意の10進数として解釈されると想像してください。

  • 1から10ボルト:0
  • 10から20ボルト:1
  • 20から30ボルト:2

このシステムでは、数パルスの電流で大量のデータを渡すことができますよね?しかし、問題があります。電圧が何であるかを非常によく確認する必要があります。温度や磁石、宇宙線などが変動を引き起こす場合、間違った数字を読み取る可能性があります。そして、私たちがより細かく測定しようとするほど、そのリスクは大きくなります。1ミリボルトの差が大きい場合を想像してください!

代わりに、通常はデジタル解釈を使用します。あるしきい値を超えるものはすべて真であり、その下のすべては偽です。そのため、「現在はありますか?」などの質問をすることができます。代わりに「正確にどれだけの電流がありますか?」

「正しい球場」にいるだけでよいため、個々のビットを自信を持って測定できます。そして、多くのビットを使用することで、多くの情報を取得できます。


1
公平を期すために、デジタル回路は、真または偽である測定可能な値と、「未定義」の中間状態を定義する必要があります。3.3 / 5Vロジックでは、0.8V未満は偽、2.5V未満は真です。ノイズがこれらの範囲外の信号を取得する場合、確かに依然として問題です。たとえば、NPNトランジスタを使用して信号をLowにプルダウンしようとすると、特定の要因に応じて0.55〜0.7Vに低下します。遊ぶことはあまりありません。より多くの定義された範囲を定義すると、難しくなります。
スコットホイットロック

2
@ScottWhitlockは単なる仕様です。ピンをHiZなどを受け入れるように設計されていない限り、それがあろう、1または0のような入力を解釈すること、そしてその点は(未定義領域が機能されていないことなど、バッチの製造、温度に基づいて電源電圧を変化させることができますファジーロジックのために悪用できることを示唆しているようです)。
ニックT

1
@NickT:未定義の領域は、大きな歪み(通常のエラー訂正では回復できないほど大きな歪み)があり、可能な再送信が必要であることを示します。
ライライアン

2
@LieRyan、あなたはそのような仕様が扱うものよりはるかに高いレベルを考えています(物理層)。未定義領域とは、動作(ビットの読み取り方法)が未​​定義であり、保証されていないことを意味します。それでも問題なく動作します。
ニックT

11

バイナリコンピューターの代わりにターナリーコンピューターもあります。http://en.wikipedia.org/wiki/Ternary_computer

三元コンピュータ(別名三元コンピュータは)使用するコンピュータである三元ロジック(3つの値)の代わりに、より一般的なバイナリ論理の計算で(2つの値)···


3
バランスの取れた三元系が最も美しいナンバーシステムの1つです。
ypercubeᵀᴹ

3

私たちにとっては自然なことかもしれませんが、デジタル回路のために、したがってプログラミング言語のためにバイナリが選択された特定の理由があります。2つの状態がある場合、0Vと5Vなどの2つのボルト設定を区別するだけです。基数(ベース)をさらに増やすごとに、その範囲をさらに分割する必要があります。したがって、互いに不明瞭な値を取得します。電圧範囲を広げることはできますが、回路を溶かすというこの厄介な習慣があります。

ハードウェアの種類をデジタル回路から変更する場合、オプションはより多様です。歯車は耐熱性がはるかに高く、電子の電荷よりも明確であるため、機械式コンピューターで使用されていた小数。他の場所で述べられているように、量子コンピューターには物事を扱う他の方法があります。光学式コンピューターは、今まで扱ったことのないこともできるかもしれませんし、磁気式コンピューターも可能です。


2

最近では、任意の量の状態を保持したり、アナログデータを操作したりできるアイテムを作成できると思います。システム全体を構築し、すべての論理コンポーネントを実行してフル機能のプログラマブルアーキテクチャを取得することは、多くの作業と企業がこのタスクを実行するための経済的リスクになります。

ENIACは、10桁のリングカウンタを使用して数字を格納する最後のアーキテクチャだったと思います。私はこれについて間違っている可能性がありますが、定かではありませんが、これが機械の他の部分にどの程度影響を与えたかはわかりません。


2

ストレージは未来への送信と考えることができ、連続(アナログ)メディアの送信の問題はすべて適用されます。

これらの状態を保存するのは簡単な場合があり(3方向スイッチまたは何らかのグリッド)、これらの状態を物理的に保存することは、多くの答えがカバーする1つの問題であり、私よりもはるかに優れています。

私の主な懸念は、この保存された状態がどのようにエンコードされるかであり、実際の連続データを表現するにはビットで十分であるため、このタスクがばか用事である可能性が高いようです。必要な精度に応じて、さらにビットを追加してください。

真に連続したデータをこの方法で保存することは不可能ですが、それらを計算する方程式

1/3

保管できます。


2

手掛かり暗示はビットよりも情報の小片です。通常、ビットの明確な値を確立するには、いくつかの手がかりが必要です。Inklingsはさらに悪いです:合計しても、特定の結果ビットの値を知ることはできません。

さらに深刻なのは、基本単位がn個の状態(n> 2)の1つを持つことができる多値論理があります。これらの単位は、前の段落の意味でビットよりも少ない情報を運ぶと考えることができますが、情報理論からあなたは彼らがもっと運ぶと言わなければならないだろうという観点。たとえば、4つの値を持つロジックの1つの値が伝達できる情報と同じ量の情報を表すには、2ビットが必要です。


1

最適な数値ベースはeですが、デジタル電子で数値を表す最も簡単な方法は2つの状態(高電圧= 1、低電圧= 0)であるため、2進数表現が選択されました。


nateについても言及せずに話していますか?恥のために。
ベンフォークト

1
@BenVoigtハァッ?natとは?:)グーグルは奇妙なことを教えてくれたが、それは主題にうまく合わない。
BЈовић

@BenVoigtたぶん、あなたはナット(情報)に言及していたのでしょうか?nat ...は、ビットを定義する2のべき乗と2を底とする対数ではなく、自然対数とeのべき乗に基づく情報またはエントロピーの対数単位です。
CVn

@MichaelKjörling:それだけです。
ベンフォークト

0

可能な限り小さなデータ単位があります。正式名称はわかりませんが、国連と呼びましょう。

ビットは、「Binary digIT」のスマートなコンボワードです。つまり、2つの状態があります。したがって、可能な状態が1つだけの種類の数字が必要です。

それが何を意味するのか見てみましょう。つまり、使用できるのはゼロのみになるということです。

どのように数えますか?x-baseシステムでは、数字がなくなるまで値を増やし、数字を形成するために数字を追加します。数字が1つしかない場合は、すぐに数字が足りなくなります。

ゼロ= 0 1 = 00 2 = 000など

これは間違いなくもっと自然です。あらゆる離散的なものに完全に対応します。ジャガイモは何個?00000それは4つのジャガイモです。ちょっと待って...それは1つずつです。気に入らない場合は、0の値を1に再定義できます。それからそれは本当に自然です:ゼロはありません、ゼロは1つ、ゼロは1つ、ゼロは2つなどです。

しかし、これはソリッドステートマシンには実用的ではありません。数字は物理的に配置および削除する必要があり、うまくスケールしません。


1
ただし、基本的には0を「存在しない」としてエンコードし、1を0としてエンコードしているため、これは実際にはデータの単位であるとは見なされません。これらはまだビットです。
DeadMG

バイナリではなく、単項です。ポイントは、データ要素に2つではなく1つの状態しかないことです。存在または不在は状態ではなく、要素の状態は常に同じであるため、単項数字です。基本的に、タリーマークシステムについて説明しています。
マーティンマート

-1

明確な英語のリファレンスを見つけることはできませんが、情報理論クラスから覚えている限り、ビットは情報の基本単位です。少しの情報は、公正なコインを投げた後に受け取る情報です(各側で50%の確率)。他のすべてはこれに減らすことができます。

複数の状態を持つデバイスを使用する場合でも、常にビットに減らすことができます。


-1

母なる自然の仕組みに近いことで自然を定義する場合、情報をエンコードする最も自然な方法は、アデニン、シトシン、グアニン、およびチミンのDNAのような組み合わせです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.