Existe uma alternativa para bits?

42

Existe uma alternativa aos bits como a menor unidade de dados? Algo que não será apenas 0 ou 1, mas na verdade mantém muitos estados possíveis no meio? Não seria mais natural armazenar carros alegóricos assim?

Dokkat
fonte
8
Você precisaria de uma infinidade de estados para poder armazenar carros alegóricos arbitrários, para que isso não fosse praticável.
ChrisF
2
@ ChrisF: Você pode representar uma infinidade de carros alegóricos com uma quantidade limitada de bits?
usuário desconhecido
11
@userunknown - não, você não pode. É por isso que a aritmética de ponto flutuante é propensa a erros. O que eu estava tentando dizer era que ter mais estados não resolveria nada.
ChrisF
6
Isso pode ser interessante: thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
Chris Cudmore
5
É impossível representar exclusivamente um número infinito de diferentes carros alegóricos. Você precisaria armazenar uma quantidade infinita de informações para identificar exclusivamente um único flutuador flutuante, o que não pode ser feito em uma quantidade finita de espaço devido à física . O armazenamento de informações em excesso de uma certa quantidade em um determinado volume requer uma densidade de modo que o conteúdo seja esmagado gravitacionalmente para MAX_DENSITY em tempo finito, mesmo que eles possam viajar em MAX_SPEED (mais conhecido como 'a velocidade da luz'): um preto buraco . Veja en.wikipedia.org/wiki/Bekenstein_bound para obter as implicações do CompSci.

Respostas:

59

Claro que é possível, tanto teórica quanto praticamente.

Teoricamente, existem duas classes de alternativas: sistemas numéricos digitais com uma base diferente de 2 (de fato, o sistema decimal como o conhecemos é um desses sistemas); e sistemas numéricos não digitais. Matematicamente falando, estamos falando de domínios discretos versus domínios contínuos.

Na prática, as duas opções foram exploradas. Alguns dos primeiros computadores digitais (por exemplo, ENIAC) empregavam codificações decimais, em vez da codificação binária, agora onipresente; outras bases, por exemplo, ternárias, devem ser igualmente viáveis ​​(ou inviáveis). A linguagem de programação esotérica Malbolge é baseada em um computador ternário teórico; embora principalmente satírico, não há nenhuma razão técnica para não funcionar. O armazenamento e o processamento de domínio contínuo eram historicamente realizados em computadores analógicos, nos quais era possível codificar quantidades como frequências e / ou amplitudes de sinais oscilantes, e então você realizava cálculos aplicando todo tipo de modulação a esses sinais. Hoje, a computação quântica torna interessante a teoria por trás das células de armazenamento contínuo.

De qualquer maneira, o bit como uma menor unidade teórica de informação ainda permanece, pois qualquer alternativa pode codificar mais informações que um único sim / não, e ninguém ainda apresentou uma unidade teórica menor (e não espero que isso aconteça em breve).

tdammers
fonte
17
@Dokkat: O armazenamento em domínio contínuo, como uma fita analógica, é ótimo em teoria, mas, na prática, sofre de ruído e degradação irrecuperáveis, que é uma das razões pelas quais estamos usando computadores digitais em primeiro lugar.
tdammers
19
Na teoria da informação, é bem possível transmitir menos de 1 bit de informação. A idéia básica é que um bit de dados contém apenas um bit de informação se ambos os estados forem igualmente prováveis. De acordo com essa definição, no deserto do Saara, a resposta "não" à pergunta "choveu hoje?" carrega menos de 1 bit de informação, porque quase sempre é a resposta.
Michael Borgwardt
9
O @Dokkat costumava ser comum para modelar quantidades analógicas complexas, o computador 'digital' era um sistema de controle para o computador analógico. Na prática, é difícil construir um circuito analógico com a resolução de umdouble
Martin Beckett
5
Some of the early digital computers employed decimal encodings rather than the now ubiquitous binary encoding- Na verdade, as codificações decimais ainda são usadas hoje; chama-se BCD . O BIOS na maioria dos computadores usa-o (para datas com base decimal) , assim como a maioria das calculadoras baratas, porque requer menos circuitos (ou seja, é mais barato) para fazer tudo no BCD do que em binário e ter um conversor de binário para decimal.
BlueRaja - Danny Pflughoeft 31/01
3
Como diz o @tdammers, é difícil combinar até flutuadores de precisão única usando sinais analógicos. Flutuadores de 32 bits têm efetivamente 24 bits de precisão; circuitos analógicos com ruído comparável são caros, consomem muita energia, são lentos e muito sensíveis ao ambiente.
comingstorm
26

Você está basicamente descrevendo um sinal analógico, usado em sensores, mas raramente em cálculos internos. O problema é que o ruído diminui a qualidade, você precisa de uma calibração muito precisa de um ponto de referência difícil de se comunicar, e a transmissão é um problema, porque perde força quanto mais viaja.

Se você estiver interessado em explorar a computação analógica, a maioria das aulas de "introdução à eletrônica" faz com que você construa coisas como integradores de amplificadores operacionais . Eles são fáceis de construir, mesmo sem instruções formais.

Você também pode armazenar vários estados digitais no mesmo nó. Por exemplo, em vez de 0-2,5 volts ser zero e 2,5-5,0 volts ser um, você pode adicionar um terceiro estado no meio. Porém, acrescenta muita complexidade e aumenta significativamente sua suscetibilidade ao ruído.

Karl Bielefeldt
fonte
Uma computação analógica costumava ser bastante comum, mas, em última análise, digital pode ser mais precisa. Usar mais alguns bits na memória para representar um valor é absolutamente trivial em comparação com tentar reduzir o ruído vários dB abaixo (3 bits ~ 20 dB) e, em algum momento (varia de acordo com a velocidade), fisicamente impossível.
Nick T
Eu gosto da ênfase aqui na computação analógica e nos exemplos. Vindo de um fundo de ficção científica estritamente digital, nem sempre vi o que era computação analógica. Embora pesquisar no Google dê muitos exemplos. Acho que me lembro de ter visto que um prisma "calcula" a transformada de Fourier, porque divide a luz recebida em suas frequências constituintes. Isso é feito muito rápido, com energia 0 (no sentido de requisitos para calcular o TF). É claro que fazer algo com o resultado provavelmente exigiria digitalização.
Paul
@NickT Norbert Wiener, autor de cibernética e pioneiro no campo da teoria / controle, lembrou em seu livro que, em última análise, era o custo mais baixo dos circuitos binários em comparação com o equivalente analógico que fazia com que laboratórios, pesquisadores e indústria optassem pelo binário
Christophe
20

Esses são chamados qubits e são usados ​​em computadores quânticos. Você encontrará mais informações sobre eles na entrada da Wikipedia . Estão sendo feitas pesquisas para tornar esses computadores estáveis ​​e economicamente viáveis.

J. Maes
fonte
1
isso faz minha cabeça doer lendo isso ...
Ryathal
Não sei exatamente como um qubit funciona (estou lendo para atualizar mais tarde), mas sei que os qubits são impraticáveis ​​com a tecnologia atual, enquanto esse conceito não é. Por exemplo, pode-se representar fisicamente o bit 'flutuante' pela quantidade de água que enche um copo e medi-lo usando uma balança.
Dokkat
11
Nitpicking: um qubit não mantém estados entre 0 e 1. Ainda é 0 ou 1, mas pode ter vários estados simultaneamente . (Assim como o gato de Schrodinger que não é "meio morto", mas vivo e morto ao mesmo tempo)
Nikie
7
@ Ryathal Esse é realmente um bom sinal: "Quem não está chocado com a teoria quântica não a entendeu". - Niels Bohr
Dan Neely
1
Por alguma razão, eu sempre imagino qubits como Tribbles azul claro ou rosa.
Wayne Werner
17

Uma questão de precisão

Uma razão pela qual usamos bits é que ela nos ajuda a armazenar e recuperar informações com precisão.

O mundo real é analógico; portanto , todas as informações que os computadores passam ou armazenam são, em última análise, analógicas . Por exemplo, uma corrente de uma tensão específica em um fio, ou carga magnética de uma força específica em um disco ou um poço de uma profundidade específica em um disco a laser.

A questão é: com que precisão você pode medir essas informações analógicas ? Imagine que uma corrente em um fio possa ser interpretada como qualquer número decimal, da seguinte maneira:

  • 1 a 10 volts: 0
  • 10 a 20 volts: 1
  • 20 a 30 volts: 2

Etc. Esse sistema nos permite passar muitos dados em alguns pulsos de corrente, certo? Mas há um problema: temos que ter muita certeza de qual é a tensão. Se a temperatura ou ímãs ou raios cósmicos ou qualquer outra causa causar alguma flutuação, podemos ler o número errado. E quanto mais finamente pretendemos medir, maior o risco. Imagine se uma diferença de 1 milivolt fosse significativa!

Em vez disso, normalmente usamos uma interpretação digital . Tudo acima de algum limite é verdadeiro e tudo abaixo é falso. Para que possamos fazer perguntas como "Existe alguma corrente?" em vez de " Exatamente quanta corrente existe?"

Cada bit individual pode ser medido com confiança, porque só precisamos estar "no estádio certo". E, usando muitos bits, ainda podemos obter muitas informações.

Nathan Long
fonte
1
Para ser justo, os circuitos digitais precisam definir valores mensuráveis ​​que sejam definitivamente verdadeiros ou falsos e estados intermediários "indefinidos". Na lógica 3.3 / 5V, pode ser <0.8V é falso,> 2.5V é verdadeiro. Certamente, o ruído ainda é um problema se o sinal for retirado desses intervalos. Por exemplo, tentar reduzir um sinal para baixo usando um transistor NPN, reduz apenas 0,55 a 0,7V, dependendo de certos fatores. Não há muito para brincar. Você apenas torna mais difícil quando define intervalos mais definidos.
Scott Whitlock
2
@ScottWhitlock são apenas especificações; a menos que o pino é concebido para aceitar HiZ ou semelhantes, que vai ser interpretar a entrada como um 1 ou 0, e que ponto pode variar com base na temperatura, do lote de fabrico, a tensão de alimentação, etc, que região indefinida não é uma característica ( você parece sugerir que pode explorá-lo para lógica difusa).
Nick T
1
@NickT: a região indefinida marca que há uma grande distorção (uma que é tão grande que a correção de erros normal pode não recuperá-la) e uma possível retransmissão é necessária.
Lie Ryan
2
@LieRyan, você está considerando um nível muito mais alto do que o que essas especificações tratam (camada física). A região indefinida significa apenas que o comportamento (como o bit é lido) é indefinido e não é garantido. Ainda poderia funcionar muito bem.
Nick T
3

Pode ser mais natural para nós, mas há razões específicas pelas quais o binário foi escolhido para circuitos digitais e, portanto, para linguagens de programação. Se você tiver dois estados, precisará distinguir apenas entre duas configurações de volt, digamos 0V e 5V. Para cada aumento adicional na raiz (base), você precisa dividir ainda mais esse intervalo, obtendo valores indistintos um do outro. Você pode aumentar a faixa de tensão, mas esse hábito desagradável de derreter o circuito.

Se você deseja alterar o tipo de hardware dos circuitos digitais, suas opções são mais variadas. Os decimais costumavam ser usados ​​em computadores mecânicos, pois as engrenagens têm muito mais tolerância ao calor e são muito mais distintas que as cargas elétricas. Os computadores quânticos, como declarado em outro lugar, têm outras maneiras de lidar com as coisas. Os computadores ópticos também podem fazer coisas com as quais não lidamos antes e os computadores magnéticos também são uma possibilidade.

Engenheiro Mundial
fonte
2

Eu acho que hoje em dia você pode criar itens que podem conter qualquer quantidade de estados ou até trabalhar com dados analógicos. Embora construir um sistema inteiro e colocar todos os componentes lógicos em execução para obter uma arquitetura programável e com todos os recursos seria muito trabalho e um risco financeiro para qualquer empresa realizar essa tarefa.

Acho que o ENIAC foi a última arquitetura a usar contadores de dez posições para armazenar dígitos. Embora eu possa estar errado sobre isso e não tenho certeza, o quanto isso influenciou as outras partes da máquina.

thorsten müller
fonte
2

O armazenamento pode ser pensado como transmissão para o futuro; todos os problemas de transmissão com mídia contínua (analógica) serão aplicados.

Armazenar esses estados pode ser trivial (uma chave de três direções ou algum tipo de grade) e armazenar fisicamente esses estados é um problema que muitas respostas abrangem, muito melhor do que eu.

Minha principal preocupação é como esse estado armazenado é codificado e parece que existe uma grande possibilidade de que essa tarefa seja uma tarefa tola, pois os bits são suficientes para a representação de dados contínuos práticos, dependendo da precisão de que você precisa, continuam adicionando mais bits.

É impossível armazenar dados verdadeiramente contínuos dessa maneira, mas equações para calculá-los, por exemplo

1/3

pode ser armazenado.

StuperUser
fonte
2

Uma pista e uma ideia são informações menores do que um pouco. Várias dicas são geralmente necessárias para estabelecer o valor definido de um bit. Os tinteiros são piores: não importa quantos você adicione, você ainda não pode saber o valor do bit resultante com certeza.

Mais seriamente, existem lógicas com valores múltiplos onde a unidade fundamental pode ter um de n estados, onde n> 2. Você pode considerar essas unidades como portadoras de menos informações do que um pouco no sentido do parágrafo anterior, mas a partir de uma teoria da informação ponto de vista que você teria que dizer que eles carregam mais. Por exemplo, você precisaria de dois bits para representar a mesma quantidade de informações que um único valor em uma lógica de quatro valores poderia transportar.

Caleb
fonte
1

A base numérica ideal é e , mas como a maneira mais simples de representar um número em eletrônicos digitais é com dois estados (alta tensão = 1, baixa tensão = 0), a representação numérica binária foi escolhida.

BЈовић
fonte
Falando sobre esem mencionar também o nat ? Por vergonha.
Ben Voigt
1
@BenVoigt huh? O que é nat ? :) O Google me contou algumas coisas estranhas, que não se encaixam bem no assunto.
BЈовић
@BenVoigt Talvez você estivesse se referindo a Nat (informações) ? A nat ... é uma unidade logarítmica de informação ou entropia, baseada em logaritmos e potências naturais de e, em vez das potências dos logaritmos 2 e 2 que definem o bit.
a CVn
@ MichaelKjörling: É exatamente isso.
Ben Voigt
0

Há uma menor unidade possível de dados. Eu não sei um nome oficial para ele, vamos chamá-lo de un.

Bit é uma palavra combinada inteligente para "Dígito binário", o que significa que possui dois estados possíveis. Portanto, deve haver um tipo de dígito com apenas um único estado possível.

Vamos ver o que isso significa. Isso significa que você teria apenas zeros para trabalhar.

Como você contaria? Em qualquer sistema x-base, você aumenta o valor até ficar sem dígitos e, em seguida, adiciona um dígito para formar um número. Se você tiver apenas um dígito, ficará sem dígitos imediatamente para:

Zero = 0 Um = 00 Dois = 000 e outros

Isso é definitivamente mais natural: mais é mais! Ele mapeia perfeitamente para qualquer número discreto de coisas. Quantas batatas? 00000 São quatro batatas. Espere um minuto ... isso é um por um. Se você não gostar, pode redefinir o valor de 0 para um. Então é realmente natural: nenhum zeros é nenhum, um zero é um, dois zeros é dois, etc.

Isso é impraticável para uma máquina de estado sólido. Os dígitos teriam que ser colocados e removidos fisicamente e não escalam bem.

Martin Maat
fonte
1
Isso realmente não se qualifica como uma unidade de dados, pois você basicamente codificou 0 como "não presente" e 1 como 0. Eles ainda são bits.
DeadMG
Não é binário, é unário. O ponto é que o elemento de dados tem apenas um estado, não dois. Presença ou ausência não é um estado, o estado do elemento é sempre o mesmo, portanto, é um dígito unário. Estou basicamente descrevendo o sistema de marca de contagem.
Martin Maat
-1

Não consigo encontrar uma referência definitiva em inglês, mas, tanto quanto me lembro da classe da teoria da informação, o bit é uma unidade fundamental de informação. Um pouco de informação é a informação que você recebe após jogar uma moeda justa (probabilidade de 50% para cada lado). Tudo o resto pode ser reduzido a isso.

Mesmo se você usar um dispositivo com vários estados, ele sempre poderá ser reduzido a bits.

Sorin
fonte
-1

Se você define natural por estar próximo de como a mãe natureza funciona, a maneira mais natural de codificação da informação são as combinações semelhantes ao DNA de adenina, citosina, guanina e timina.

StefG
fonte