Tarefa opcional

Tarefa opcional

by William Gnann -
Number of replies: 20
A entrega será por aqui?
In reply to William Gnann

Re: Tarefa opcional

by Paulo Feofiloff -
Por enquanto entregue o código
impresso em papel
(depois de testar tudo, é claro).
In reply to Paulo Feofiloff

Re: Tarefa opcional

by Tiago Togores -
A entrega é até 16/5 mesmo? Ou 16/4?
In reply to Tiago Togores

Re: Tarefa opcional

by Paulo Feofiloff -
Pra 16/4 está um pouco tarde, né?
Acho que é 16/5.

In reply to Paulo Feofiloff

Re: Tarefa opcional

by Tiago Togores -
Achei um pouco tarde, mas como já tinha uma solução...
In reply to Tiago Togores

Re: Tarefa opcional

by Paulo Feofiloff -
Tem razão.
Aquela primeira submissão foi um pouco apressada...

A idéia é fazer uma implementação
razoavelmente cuidadosa e
usar o programa para testes interessantes.
In reply to Paulo Feofiloff

Re: Tarefa opcional

by Walter Erquinigo -
Sobre a multiplicacao de números:
se eu usar o tipo de dado "int", entao o máximo número que posso ter é 2^31-1, entao, acho que deveria usar o tipo "long long int", para ter um número de até 2^63-1. Assim, eu faco todas as operacoes aritméticas dos bigintegers mod 2^31.
É isso correto ou você tentou dizer algo diferente quando determinou essa base?
In reply to Walter Erquinigo

Re: Tarefa opcional

by Paulo Feofiloff -
Bem observado.
Vamos mudar então para base 2^{15}.
Que tal?
In reply to Paulo Feofiloff

Re: Tarefa opcional

by João Pedro Kerr Catunda -
minha máquina, assim como muitas outras, é 64 bits, motivo pela qual achei que 31 era o suficiente. Posso manter assim, devo baixar para 15?
In reply to João Pedro Kerr Catunda

Re: Tarefa opcional

by Walter Erquinigo -
Nao depende só da sua máquina, depende também do compilador.
Agora, acho que algo necesario é imprimir o resultado da multiplicacao na tela para nao trabalhar em uma caixa preta. Entao, a base 2^15 nao é tao bonita para isso. Normalmente costumo usar os bignumbers em base 10^4, o que ê um pouco mais do que 2^13. O que é bonito de usar essa base é que podemos usar simplesmente printf("%04d",digits[i]) para imprimir um dígito nessa base, o que é o mesmo que 4 dígitos na base 10. Se você acha bem, gostaria de poder usar essa base, pois nao preciso fazer nada em especial para ver o resultado na base 10, senao usarei a base 2^15.
In reply to Paulo Feofiloff

Re: Tarefa opcional

by Francisco Zigmund Sokol -
Já estava implementando com base 2^31 e os vetores que representavam os números eram de long long e não de int... Mas não daria tanto trabalho mudar isso.
In reply to William Gnann

Re: Tarefa opcional

by William Gnann -
Estava pensando, é necessário que os números tenham sinal?
Porque, se não for, unsigned long int seria suficiente para conter qualquer uma das bases propostas, pois vai, no mínimo, de 0 a 2^32-1.
Além disso, não faz sentido pensar em sinal para 'dígitos' de um número, faz?
In reply to William Gnann

Re: Tarefa opcional

by Almir Alves Pereira -
Para quem não sabe o que usar:
int16_t -> int de 16 bits
uint16_t -> unsigned int de 16 bits
int32_t -> int de 32 bits
uint32_t -> unsigned int de 32 bits
int64_t -> int de 64 bits
uint64_t -> unsigned int de 64 bits
Eles estão definidos na stdint.h e são compativeis com -ansi
BTW, acho que é possivel fazer o programa de forma que a base possa ser passada como argumento...
In reply to William Gnann

Re: Tarefa opcional

by Francisco Zigmund Sokol -
Devemos entregar apenas um único arquivo com o fonte da nossa implementação ou podemos entregar um .tar com alguns resultados dos testes feitos (tipo gráficos, saídas de entradas grandes, etc), além do código?
In reply to Francisco Zigmund Sokol

Re: Tarefa opcional

by Paulo Feofiloff -
Acho que você não leu as instruções...

(Será que ainda dá tempo de fazer tudo?)