MT版本存档。 - 页 6

 
Alexey Viktorov:

但根据这段代码

从这个函数返回的值必须以某种方式进行处理。如果在代码的其他部分没有反应,返回 "减去许多九 "有什么好处?

返回减去大的值,将把这个传递放在结果的底部。如果根本就没有测试(测试被停止了,在我的例子中是在第一个柱子开盘时),那么就没有什么可计算的,没有数据可计算。因此,当设置tester_stop时,会返回一个大的负数。

此外,我没有在代码的任何地方使用这个结果,虽然,也许,它可以被使用,但如何使用--目前我不知道,我也不需要它。

 
Сергей Таболин:

返回减去一个大的数值,将把这个通道放在结果的底部。如果原则上没有测试(测试被停止了,在我的例子中是在第一根柱子的开口处),那么就没有什么可以计算的,没有数据可以计算。因此,当设置tester_stop时,会返回一个大的负数。

此外,我没有在我的代码中的任何地方使用这个结果,尽管它可能可以使用,但我不知道 如何使用,而且我目前也不需要它

这对于解决一般的任务,特别是解决编程任务来说是非常糟糕的方法。

出于某种原因,我不相信一般的测试,更不相信优化。这就是为什么我不能给你如何安排算法的具体建议,但我看到你的排序和处理结果的算法是坏的。

如果在调用TesterStop() 之前必须至少有一次通过,所以请提供这一次通过。你的问题是什么?我不知道,也不需要知道?这是不对的。

 
Сергей Таболин:

我明白一切,我不需要拐杖。而我不得不在这里 寻找一个拐杖,阅读什么

这是有可能的。但我不记得有人抱怨过这个问题。

你的愿望可以以更简单的方式安排,没有任何无用的代码。

用一些全局变量代替INIT_PARAMETERS_INCORRECT返回,例如ExtTesterStop=true。

把检查放在OnTick的第一行

void OnTick()
  {
   if(ExtTesterStop)
     {
      TesterStop();
      return;
     }
...
 
Alexey Viktorov:

这是一个非常糟糕的解决问题的方法,特别是对于编程问题。

出于某种原因,我不相信一般的测试,更不相信优化。因此,我不能对算法的组织给出具体的建议,但我看到你对结果的排序和处理的算法是坏的。

如果在调用TesterStop()之前必须至少有一次传递,请提供这一次传递。你的问题是什么?我不知道,也不需要它?这是不对的。

Alexey,无意冒犯,但你完全没有理解我为什么使用TesterStop()。此外,你甚至没有尝试去做。既然你没有读过我用它做什么,我就简单解释一下。

我用它来筛选出无用的测试通道,并加快优化速度。特别是遗传优化。这就是为什么在这种情况下,我根本不需要哪怕是一张通行证的原因!这是对INIT_PARAMETERS_INCORRECT 的替换,因为在OnInit()中,如果它们的数量很大,就会导致遗传学的崩溃。

相信或不相信,使用或不使用优化是你自己的事,与这个问题的解决没有关系))))。

斯拉瓦

你的愿望可以以更简单的方式安排,没有任何无用的代码。你会同意,这是以不同的方式进行的相同的耙子))

用一些全局变量来代替INIT_PARAMETERS_INCORRECT返回,例如ExtTesterStop=true。

把检查放在OnTick的第一行

我同意,虽然代码看起来会更简单一些!

这件事仍然没有改变。在初始化阶段取消通行证的情况不会发生。同样的代码将出现在OnInit()和OnTick()中。我们能得到什么?

TesterStop()仍然会皱起眉头

TesterStop() called on 0% of testing interval

而且,在这个版本的MT中,控制将被传递给OnTester()。你会同意,我们有同样的问题,但方式不同))))。

如果能有一个替代函数,例如TesterStopImmediately(),那就太好了。当我们必须立即停止测试时,不把控制权传给OnTester(),而是直接传给OnDeinit(const int reason)...。

但在我们的有生之年可能不会看到它...

 
Сергей Таболин:

Alexey,无意冒犯,但你完全没有理解我使用TesterStop()的原因。此外,你甚至没有尝试去做。既然你没有读过我用它做什么,我就简单解释一下。

我用它来筛选出无用的测试通道,并加快优化速度。特别是遗传优化。这就是为什么在这种情况下,我根本不需要哪怕是一张通行证 的原因!这是对INIT_PARAMETERS_INCORRECT 的替换,因为在OnInit()中,如果它们的数量很大,就会导致遗传学的崩溃。

相信或不相信,使用或不使用优化--这是你自己的事,与这个问题没有关系))))。

我没有准确地表达自己,你完全误解了我。但这并不重要。

 
Alexey Viktorov:

我没有准确地表达自己,你完全误解了我。但这并不重要。

重要的是。我相信,一般来说,所有问题都是误解的结果。但人类生来就有语言,是为了交谈、谈判))))。自然,每个人都认为自己是对的,但在这个问题上的固执是一个标志。愚蠢的行为。所以请解释你的意思。就我个人而言,我已经准备好学习了))))。

 
Сергей Таболин:

重要的是。我相信,一般来说,所有问题都是误解的结果。但人类生来就有语言,是为了交谈、谈判))))。自然,每个人都认为自己是对的,但在这个问题上的固执是一个标志。愚蠢的行为。所以请解释你的意思。就我个人而言,我准备学习))))

我们能从一个表现出无能的人身上学到什么?还是你在说你自己?是你固执己见,不想做最起码的代码来尝试了解你想要的东西。好吧,我已经说过,我不参与优化,因此我从未使用过与测试员有关的活动。我的建议只针对一个较窄的领域。斯拉瓦重复了我的建议。也许你以不同的方式使用它,因为你没有得到你所期望的。这只是从缺乏相关信息的角度进行的猜测。

 
Alexey Viktorov:

我们能从一个有不聪明迹象的人身上学到什么?还是你在说你自己?是你在拖延时间,不愿意做最起码的代码来尝试弄清你想要什么。好吧,我已经说过,我不从事优化工作,所以我从未使用过与测试者有关的事件。我的建议只针对一个较窄的领域。斯拉瓦重复了我的建议。也许你以不同的方式使用它,因为你没有得到你所期望的。这只是从缺乏相关信息的角度进行的猜测。

你甚至读过我写给你的东西吗?

"Alexey,无意冒犯,但你完全没有理解我用TesterStop()做什么此外,你甚至没有尝试去做。既然你没有读过我用它做什么,我就简单解释一下。

我用它来筛选出无用的测试通道,并加快优化速度。特别是遗传优化。这就是为什么在这种情况下,我根本不需要哪怕是一张通行证的原因!它是INIT_PARAMETERS_INCORRECT的替代品,因为如果OnInit()中的数量很大,就会导致遗传学的崩溃。"

你有什么不明白的地方吗?

P.S.顺便说一句,与你不同,斯拉瓦完全知道我们在说什么。))
 
Сергей Таболин:

你甚至读过我写给你的东西吗?

"Alexey,无意冒犯,但你完全没有理解我用TesterStop()做什么此外,你甚至没有尝试去做。既然你没有读过我用它做什么,我就简单解释一下。

我用它来筛选出无用的测试通道,并加快优化速度。特别是遗传优化。这就是为什么在这种情况下,我根本不需要哪怕是一张通行证的原因!它是INIT_PARAMETERS_INCORRECT的替代品,因为如果OnInit()中的数量很大,就会导致遗传学的崩溃。"

你对这一点有什么不清楚的地方吗?

P.S.顺便说一句,与你不同,斯拉瓦完全知道我们在说什么。))

Sergei,TesterStop()是用来提前停止测试 的。在这种情况下,什么应该是输出是程序员的事。我不需要知道你必须得到什么,最主要的是要停止测试。其他都是在计算算法中规定的。

如果你对获得的数值的某个中间变量不满意,你就停止测试,并从后台返回一个发明的结果。如果你不能做到这一点,这意味着你的算法在某处没有正确构建。毕竟,如何停止测试,你被告知不止一次。

 
Alexey Viktorov:

Sergei,TesterStop()是用来提前停止测试 的。而在这种情况下,你必须得到的是一个程序员的业务。我不需要知道你必须得到什么,最主要的是要停止测试。其他都是在计算算法中规定的。

如果你对获得的数值的某个中间变量不满意,你就停止测试,并返回一个发明的结果。如果你不能做到这一点,这意味着你在某处建立了错误的算法。毕竟,如何停止测试,你被告知不止一次。

如果我提出让你买一桶钉子,你不可能绝对不感兴趣,我从哪里得到它,它要多少钱。所以你的答案可能是任何东西:不,我不想,我不想要,嗯,等等。最主要的是,你和我都会理解。我在这种情况下的回答是 "从火炬发明的结果",我个人绝对理解。

在这个调查过程中,已经变得很清楚的是,TesterStop()和ExpertRemove()在新的构建之前立即将控制权传递给OnDeinit(),而在新的构建中,它们立即将控制权传递给OnTester()(如果有这样的控制)。而如果在第一种情况下,测试结果是一个 NULL,现在onTester()我们需要检查在这些事件中是否有输出(当然这个检查必须是有组织的),并做出我们自己的输出。而在这种情况下指定什么结果(0或-99999999)--这是一个偏好问题。