Autor Tema: Suma marciana en python.

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

15 Diciembre, 2012, 08:23 pm
Leído 2502 veces

Jano

  • $$\Large \color{#5372a0}\pi\,\pi$$
  • Mensajes: 70
  • Karma: +0/-0
  • Sexo: Masculino
♣ ♦ ♠
  ♣ ♥
♦ ♠ ♣
Aquí tenemos una suma (como las que haciamos de pequeños, donde la primera linea es un número, la segunda otro número y la tercera el resultado). Hallar el valor de esos valores suponiendo que esta hecha en un sistema decimal.

18 Diciembre, 2012, 05:03 pm
Respuesta #1

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

 Entiendo que tienes que hacer un programa que te resuelva el ejercicio.
 
 Lo más directo es hacer que el programa analice todas las posibiliades para las cifras que desconocemos quedándose con las que verifiquen las suma.

 El pseudocógio podría ser algo así:

 trebol=1
 mientras trebol<10
    diamante=1
    mientras diamante<10
       pica=1
       mientras pica<10
           corazon=1
           mientras corazon<10
                si (100*trebol+10*diamante+pica+10*trebol+corazon==100*diamante+10*pica+trebol)
                      imprime trebol,diamante,pica,corazon
                fin si
                corazon=corazon+1
           fin mientras
           pica=pica+1
         fin mientras
         diamante=diamente+1
     fin mientras
     trebol=trebol+1
  fin trebol

 Si exiges que los símbolos sean cifras distinas deberás de eliminar las soluciones donde se repite alguna.

Saludos.

18 Diciembre, 2012, 10:58 pm
Respuesta #2

argentinator

  • Consultar la FIRMAPEDIA
  • Administrador
  • Mensajes: 7,797
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Voy a llamar:

P = Picas
T = Trébol
C = Corazón
D = Diamante

El acarreo, al sumar dos dígitos, puede dar 0 ó 1.
Vamos a llamar:

x = "acarreo" de sumar Pica y Corazón

Tenemos que:

P + C = T + 10 x

Si x = 0, entonces "no hay acarreo" y simplemente P + C = T.
En cambio, si x = 1, entonces "hay acarreo", y tenemos P + C = 10 + T.

En la 2da columna hemos de sumar Diamante + Trébol + x,
y el resultado es una Pica más un acarreo z que podría ser 0 ó 1.
Si el acarreo z fuese 0, en la 3er columna tendríamos un Trébol en la fila del resultado, ya que al trébol de la 3er columna se la habrá sumado 0.
Pero como hay un símbolo distinto (un Diamante), quiere decir que ha habido "acarreo", y la única posibilidad es, como sabemos, z = 1.

De ahí que podemos afirmar que T + 1 = D, en primer lugar.
Y además, para la 2da columna, sabiendo que hubo acarreo hacia la 3er columna, tenemos que:

D + T = P + 10 z = P + 10

Reemplazando por T + 1 = D, obtenemos que:

2 T + 1 = P + 10, con lo cual:
2 T = P + 9.

En particular, como 2T es par, también ha de serlo P + 9, porque P es un número entero.
Así, P es impar, y sus posibilidades serían P = 1, 3, 5, 7 ó 9.
En cualquier aso, P + 9 es 10 ó más, por lo tanto T ha de ser 5 ó más.
Como D = T + 1, y D como mucho puede ser un 9, entonces T no puede ser 9. Así que su valor está entre 5 y 8 inclusive.

Volviendo a nuestra ecuación original: P + C = T + 10 x, y reemplazando P = 2T - 9, obtenemos que:

2T - 9 + C = T + 10 x, de donde:
T + C = 9 + 10x

Sabemos que T es uno de los dígitos del 5 al 8, como ya hemos probado.

Supongamos que el acarreo x fuese 0.
En tal caso T + C = 9, y las posibilidades serían:

T = 5, C = 4, P = 1, D = 6
T = 6, C = 3, P = 3, D = 7 (esta no es posible...)
T = 7, C = 2, P = 5, D = 8
T = 8, C = 1, P = 7, D = 9

Debido a que los dígitos T, C, P, D podemos suponerlos distintos,
la 2da fila no es posible o aceptable.

Supongamos ahora que el acarro x fuese 1.
En tal caso T + C = 10, y las posibilidades serían:

T = 5, C = 5, P = 1, D = 6 (esta no es posible...)
T = 6, C = 4, P = 3, D = 7
T = 7, C = 3, P = 5, D = 8
T = 8, C = 2, P = 7, D = 9

De nuevo, como los dígitos son distintos, la 1era fila no es aceptable.

En total, hemos encontrado 6 soluciones posibles al problema.
Y se puede verificar que efectivamente esas 6 soluciones son todas posibles en el problema original.

El resultado de la suma es "DPT", que se calcula como
100 D + 10 P + T = 100 T + 100 + 20 T - 90 + T = 121 T +10.

Aquí el número de resultados se reduce a 4 posibilidades, según los valores posibles de T:

T = 5, Resultado = 615
T = 6, Resultado = 736
T = 7, Resultado = 857
T = 8, Resultado = 978

23 Diciembre, 2012, 10:58 pm
Respuesta #3

Jano

  • $$\Large \color{#5372a0}\pi\,\pi$$
  • Mensajes: 70
  • Karma: +0/-0
  • Sexo: Masculino
Gracias a ambos por las soluciones.