Autor Tema: Cómo multiplicar números por un método llamado "campesino"?

0 Usuarios y 1 Visitante están viendo este tema.

28 Febrero, 2017, 04:02 am
Leído 1529 veces

Antoniio

  • Aprendiz
  • Mensajes: 258
  • Karma: +0/-0
  • Sexo: Masculino
Hola, buenas. Estoy llevando una clase que se llama "Arquitectura de Computadoras" y me han encargado un problema que debo resolver por el método de "campesino", investigué en internet pero no logro encontrar información que me sea útil.
En este caso específico se me pide multiplicar dos números, \( 25 X 15 \) , cuál es el procedimiento que debo llevar acabo para resolver esa multiplicación??

Gracias de antemano. Saludos !!

28 Febrero, 2017, 09:39 am
Respuesta #1

feriva

  • Matemático
  • Mensajes: 8,945
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
  • ¡EUKERA!... ¡UEREKA!... ¡EUREKA! (corregido)
Hola, buenas. Estoy llevando una clase que se llama "Arquitectura de Computadoras" y me han encargado un problema que debo resolver por el método de "campesino", investigué en internet pero no logro encontrar información que me sea útil.
En este caso específico se me pide multiplicar dos números, \( 25 X 15 \) , cuál es el procedimiento que debo llevar acabo para resolver esa multiplicación??

Gracias de antemano. Saludos !!

Hola, Antonio. La relevancia de lo que puedes encontrar en internet, muchas veces depende de lo que te pares en intentar entender las cosas; que a veces hay que descifrarlas porque no están muy bien explicadas.

Pues por lo que he visto en Wikpiedia debes hacer esto:

Primero vas poniendo en una columna las potencias de 2 hasta que, con los números que sean de esa columna, se pueda obtener uno de los multiplicandos.

En la otra columna se va poniendo el doble del otro multiplicando.

En este caso particular, vemos que 1+2+4+8=15 y participan todos.

Ahora, en la otra columna, se toman paralelamente las filas de los números que hayan participado en la suma anterior.

Y lo dicho se suma.

1;25

2;50

4;100

8;200

...

375.

Por tanto, el programa deberá ir generando mediante un bucle las potencias de 2 desde el exponente cero e ir probando todas las sumas. A la vez, debes meter en una matriz o array (doble, de dos valores ) los valores de la otra columna. Cuando encuentre la primera suma de cualquiera de los multiplicandos, mediante un “if” mandar parar al bucle y meter las compañeras de esas parejas en otro array para sumar los elementos finalmente.

https://es.wikipedia.org/wiki/Multiplicaci%C3%B3n_por_duplicaci%C3%B3n

Saludos.

28 Febrero, 2017, 11:02 am
Respuesta #2

Ignacio Larrosa

  • Moderador Global
  • Mensajes: 2,270
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
    • Actividades con GeoGebra

Por tanto, el programa deberá ir generando mediante un bucle las potencias de 2 desde el exponente cero e ir probando todas las sumas. A la vez, debes meter en una matriz o array (doble, de dos valores ) los valores de la otra columna. Cuando encuentre la primera suma de cualquiera de los multiplicandos, mediante un “if” mandar parar al bucle y meter las compañeras de esas parejas en otro array para sumar los elementos finalmente.


Es más eficiente hallar directamente la expresión del multiplicador en base 2, dividiendo repetidamente por 2 y anotando el resto, 0 o 1, y el último divisor, 1. Obtenemos así en orden inverso la expresión en base 2. Simultáneamente se va duplicando el multiplicando y cuando se corresponda con un 1 en la expresión binaria del multiplicador se suma a un acumulador. Al final tendremos el producto en el acumulador.

Saludos,

Daría todo lo que se por la mitad de lo que ignoro (R. Descartes)
O incluso por muchísimo menos ...  (yo)

28 Febrero, 2017, 11:19 am
Respuesta #3

feriva

  • Matemático
  • Mensajes: 8,945
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
  • ¡EUKERA!... ¡UEREKA!... ¡EUREKA! (corregido)


Es más eficiente hallar directamente la expresión del multiplicador en base 2, dividiendo repetidamente por 2 y anotando el resto, 0 o 1, y el último divisor, 1. Obtenemos así en orden inverso la expresión en base 2. Simultáneamente se va duplicando el multiplicando y cuando se corresponda con un 1 en la expresión binaria del multiplicador se suma a un acumulador. Al final tendremos el producto en el acumulador.


Gracias, Ilarrosa. Lo del acumulador sí que lo había pensado, lo de usar base 2 no.

Saludos.

01 Marzo, 2017, 08:58 pm
Respuesta #4

Antoniio

  • Aprendiz
  • Mensajes: 258
  • Karma: +0/-0
  • Sexo: Masculino
Gracias por la respuesta !!, me ha servido mucho. Saludos !!

01 Marzo, 2017, 10:49 pm
Respuesta #5

feriva

  • Matemático
  • Mensajes: 8,945
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
  • ¡EUKERA!... ¡UEREKA!... ¡EUREKA! (corregido)