Ir ao conteúdo

Posts recomendados

Postado

Estou com um problema em quem preciso executar operações com números muito grandes e ainda eleva-los a expoentes relativamente altos (>100), por isso eles ultrapassam o limite de qualquer variável da linguagem. Existe alguma forma de contornar esse problema?

  • Curtir 1
Postado

Dá uma olhada na biblioteca Boost.Multiprecision, apesar que expoente 100 ela não vai dar conta. Mas você realmente precisa de tantos números/precisão? Se explicar o problema que precisa resolver, dá pra propor outras soluções. Se a questão é apenas o armazenamento de números enormes, você pode decompor eles e usar strings e arranjos. Mas fazer operações matemáticas com isso pode ser MUITO custoso computacionalmente, a ponto de ser inviável. Talvez MATLAB/Scilab/Octave poderiam te ajudar.

  • Curtir 2
Postado
10 horas atrás, Shaman93 disse:

Dá uma olhada na biblioteca Boost.Multiprecision, apesar que expoente 100 ela não vai dar conta. Mas você realmente precisa de tantos números/precisão? Se explicar o problema que precisa resolver, dá pra propor outras soluções. Se a questão é apenas o armazenamento de números enormes, você pode decompor eles e usar strings e arranjos. Mas fazer operações matemáticas com isso pode ser MUITO custoso computacionalmente, a ponto de ser inviável. Talvez MATLAB/Scilab/Octave poderiam te ajudar.

 

Eu estou precisando disso pra um algoritmo de criptografia RSA, por isso os números ficam tão grandes. Olhando agora o expoente não necessariamente vai ser acima de 100, mas mesmo assim os resultado ficam muito grandes. Poderia detalhar como faria para usar strings e arranjos para resolver o problema?

  • Curtir 1
  • 2 semanas depois...
Postado
Em 05/02/2022 às 12:58, oLucass disse:

Estou com um problema em quem preciso executar operações com números muito grandes e ainda eleva-los a expoentes relativamente altos (>100), por isso eles ultrapassam o limite de qualquer variável da linguagem.

int64_t?

  • Curtir 1
Postado

@oLucass  Os métodos do ensino fundamental funcionam todos para qualquer tamanho. Apenas faça igual. 

 

Um número é uma sequência de dígitos. Use um vetor de char. Ou use BCD, dois dígitos por byte. Dá certo em COBOL desde os anos 60.

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...