[Archivo] Matemáticas puras, física, química, etc.: problemas de entrenamiento cerebral no relacionados con el comercio de ninguna manera - página 428

 
Mathemat:

¿Qué significa la frase B? ¿Cómo sabe de antemano que A no adivinará los números cuando reciba la suma? Esta es una respuesta muy sucinta en realidad, ¡contiene casi toda la información sobre los números!


Si al primer experto le hubieran dicho el producto de dos números primos, habría encontrado la respuesta inmediatamente.
 

Esto es obvio. Lo principal es descifrar el segundo comentario del diálogo.

любое разложение суммы, сообщенной Б, на два слагаемых приводит к тому, что хотя бы одно из слагаемых содержит два множителя.

 
ValS:

¿Crees que algo cambiará?


Radicalmente. Mira.

Escribe todas las combinaciones posibles de pares de números mayores que uno, la suma de
de los cuales es menos de un centenar (hay 2401 pares de este tipo).

Si puedes pensar en dos números idénticos, el número de pares es mucho mayor. Compruébalo:

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start(){
  int SchPar=0;
  for(int i=100;i>=2;i--){
    for(int ii=100;ii>=2;ii--){
      if(i+ii<100){
        SchPar++;
      }
    }
  }
  Alert("Общее число пар чисел, сумма которых менее 100 = ",SchPar);
  return(0);
}
//+------------------------------------------------------------------+

Ahora pongamos este script en el gráfico y ¿qué vemos? El número de pares cuya suma es inferior a cien = 4656.

 
ValS:

Si al primer experto le hubieran dicho el producto de dos números primos, habría encontrado la respuesta inmediatamente.

Sí, pero no es seguro que lo hubieran atrapado diciendo que lo encontró tan rápido.
 
¿Qué es un "gotcha"? Probablemente sea mejor asumir que están diciendo la verdad.
 
drknn:


Raíz. Mira.

Si puedes pensar en dos números idénticos, el número de pares es mucho mayor. Vamos a comprobarlo:

Ahora vamos a lanzar este script al gráfico y ¿qué vemos? El número de pares cuya suma es inferior a cien = 4656.


for(int ii=100;ii>=2;ii--) - aquí no se debe hacer así,

sino así.

for(int ii=i-1;ii>=2;ii--)

 
Así que te delatarías a ti mismo. Te delatarías con una palabra descuidada.
 
ValS:


for(int ii=100;ii>=2;ii--) - no así,

pero así

for(int ii=i-1;ii>=2;ii--)


No - de esta manera nunca buscaremos la combinación de dos números idénticos, porque el segundo número siempre será 1 menos.
 

Vamos con lo que tenemos.

Y no es necesario duplicar pares de números en un bucle.

 

Entonces inténtalo así

for(int ii=i;ii>=2;ii--)