-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnotes.txt
More file actions
75 lines (50 loc) · 2.43 KB
/
Copy pathnotes.txt
File metadata and controls
75 lines (50 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
unsigned int 2^32 max. 0<= n <= (2^32) - 1
entero grande, sea una lista en la que cada elemento sea un entero de tamaño 2^16 (Así al multiplicar dos, el resultado no desbordará al entero de 2^32)
También se puede jugar con entero y entero largo... dependiendo del lenguaje y compilador.
Objetivo de la práctica es comparar ordenes de tiempo (Generar gráficas de comparación). Necesitamos poder introducir enteros manualmente.
Hay que implementar sumas (Mult. Escolar) y restas (Mult. Karatsuba)
Memoria (3,4 pág.) destacar dific. facilidades, la gráfica, explicación del algoritmo si se hacen mejoras...
Implementar mult naturales, no enteros. En Karatsuba hay que restar, tener en cuenta que pueden aparecer signos.
El cambio de base no se cuenta en la medición de tiempo a comparar.
http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html
http://www.javascripter.net/math/calculators/100digitbigintcalculator.htm
---------------------------------------------------------------------
NOTICIAS SEMANALES
Fallos detectados:
* Sería interesante conseguir que la resta no modificara los numeros de entrada y
karatsuba siguiera funcionando correctamente (HACER SOLO SI DA PROBLEMAS DE EFICIENCIA)
______________________________________________________________________
ERRORES:
Errores en mod
{
209249955227252394981
999999893
Retorna 1, cuando debería retornar 0
}
He implementado mi propia función modulo, pero para que funcione, necesito que
la división esté funcionando bien.
Errores en divisionSchool
{
Si el dividendo es mayor que el divisor, el resto es correcto, pero el cociente
no está definido (debería ser 0)
}
{
Al dividir 2092499552272523949815555555555555555555555555555 / 999999893888888888888888
se obtiene 0002092499774310000001598890 como cociente, que es correcto,
pero no debería tener los ceros iniciales (El resto también es correcto).
}
{
No hay soporte para divisiones enteras (con números negativos) y son necesarias
para el funcionamiento de la función modulo y de la multiplicación modular.
Te copio una salida del programa.
-999999999999
/ 99999999999
_____________________________________________________________________
Quotant =
Rest = -999999999999
Debería salir
Quotant = -10
Rest = -9
Como ves, además, para dicha división, no sólo el signo es erróneo, sino también
el resultado del cociente y el resto.
}