[Matematica pura, fisica, chimica, ecc.: problemi di allenamento del cervello non legati in alcun modo al commercio - pagina 428

 
Mathemat:

Cosa significa la frase B? Come fa a sapere in anticipo che A non indovinerà i numeri quando riceverà la somma? Questa è una risposta molto succinta in realtà, contiene quasi tutte le informazioni sui numeri!


Se al primo opinionista fosse stato detto il prodotto di due numeri primi, avrebbe trovato subito la risposta.
 

Questo è ovvio. La cosa principale è decifrare il secondo commento del dialogo.

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

 
ValS:

Pensi che cambierà qualcosa?


Radicalmente. Guarda.

Scrivere tutte le possibili combinazioni di coppie di numeri maggiori di uno, la somma di
di cui è meno di cento (ci sono 2401 coppie di questo tipo).

Se puoi pensare a due numeri identici, il numero di coppie diventa molto più grande. Controllare:

//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+

Ora buttiamo questo script sul grafico e cosa vediamo? Il numero di coppie la cui somma è inferiore a cento = 4656.

 
ValS:

Se al primo opinionista fosse stato detto il prodotto di due numeri primi, avrebbe trovato subito la risposta.

Sì, ma non è certo che sarebbe stato catturato dicendo di averlo trovato così in fretta.
 
Cos'è un "gotcha"? Probabilmente è meglio supporre che stiano dicendo la verità.
 
drknn:


Radice. Guarda.

Se puoi pensare a due numeri identici, il numero di coppie diventa molto più grande. Controlliamo:

Ora lanciamo questo script sul grafico e cosa vediamo? Il numero di coppie la cui somma è inferiore a cento = 4656.


for(int ii=100;ii>=2;ii--) - non è così che dovrebbe essere fatto qui,

ma così.

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

 
Così ti daresti alla macchia. Ti tradiresti con una parola noncurante.
 
ValS:


for(int ii=100;ii>=2;ii--) - non così,

ma come questo

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


No - in questo modo non cercheremo mai la combinazione di due numeri identici, perché il secondo numero sarà sempre 1 in meno.
 

Andiamo con quello che abbiamo.

E non c'è bisogno di duplicare coppie di numeri in un ciclo.

 

Allora prova così

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