//+------------------------------------------------------------------+//| 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);
}
//+------------------------------------------------------------------+
短语B是什么意思?他如何事先知道A在得到总和时不会猜出数字?这其实是一个非常简洁的答案,它几乎包含了所有关于数字的信息
如果第一个学者被告知两个质数的乘积,他就会立即找到答案。
这很明显。最主要的是破译对话的第二条评论。
любое разложение суммы, сообщенной Б, на два слагаемых приводит к тому, что хотя бы одно из слагаемых содержит два множителя.
你认为会有什么变化吗?
彻底的。看。
写出所有大于1的数对的可能组合,其总和为
即小于一百(有2401个这样的对)。
如果你能想到两个相同的数字,那么配对的数量就会变得更大。检查。
现在让我们把这个脚本扔到图表上,我们会看到什么?总和小于100的对子数量=4656。
如果第一个学者被告知两个质数的乘积,他就会立即找到答案。
是的,但不确定他是否会被抓住说他这么快就找到了。
根部。看。
如果你能想到两个相同的数字,那么配对的数量就会变得更大。让我们检查一下。
现在让我们把这个脚本扔到图表上,我们会看到什么?总和小于100的对子数量=4656。
for(int ii=100;ii>=2;ii--) - 这里不应该这样做。
但像这样。
for(int ii=i-1;ii>=2;ii-)
for(int ii=100;ii>=2;ii--) - 不像这样。
但像这样
for(int ii=i-1;ii>=2;ii-)
不--这样我们永远不会搜索到两个相同的数字的组合,因为第二个数字总是少1。
我们要用我们所得到的东西。
而且没有必要在一个循环中重复成对的数字。
然后像这样试一试
for(int ii=i;ii>=2;ii--)