19/09/2019, 08:40:00 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Renovado el procedimiento de inserción de archivos GEOGEBRA en los mensajes.
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Cómo multiplicar números por un método llamado "campesino"?  (Leído 1159 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Antoniio
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
México México

Mensajes: 258


Ver Perfil
« : 28/02/2017, 12:02:27 am »

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, [texx]25 X 15[/texx] , cuál es el procedimiento que debo llevar acabo para resolver esa multiplicación??

Gracias de antemano. Saludos !!
En línea
feriva
Pleno*
*****

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 8.364



Ver Perfil
« Respuesta #1 : 28/02/2017, 05:39:34 am »

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, [texx]25 X 15[/texx] , 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.
En línea

Ignacio Larrosa
Moderador Global
Pleno*
*

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 2.246


Ver Perfil WWW
« Respuesta #2 : 28/02/2017, 07:02:08 am »


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,

En línea

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

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 8.364



Ver Perfil
« Respuesta #3 : 28/02/2017, 07:19:13 am »



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.
En línea

Antoniio
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
México México

Mensajes: 258


Ver Perfil
« Respuesta #4 : 01/03/2017, 04:58:12 pm »

Gracias por la respuesta !!, me ha servido mucho. Saludos !!
En línea
feriva
Pleno*
*****

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 8.364



Ver Perfil
« Respuesta #5 : 01/03/2017, 06:49:34 pm »

Gracias por la respuesta !!, me ha servido mucho. Saludos !!

De nada, me alegro.

Saludos.
En línea

Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!