结合段的范围的算法--帮助创建 - 页 3

 
Dmitry Fedoseev:

1. 系数在哪里?

2.第1页呢?

3.不,比这更简单。好的,我明天会试着加快进度。

1.系数(综合指数)在每个段将对其特点 - 实验的话,我确定的公式,但常规我们可以假设,他是。

2.所以它是每段分开的,只有一个指标(在计算它的三个指标中)在那里你可以分配给所有人,而其他两个不能。

3.谢谢,我等着。

 

在这里。但如果有1,000个部分,那就无济于事了。有太多的变种,你甚至可能没有足够的内存。

你可以用另一种方法--在每个段的末尾绑定一个索引指向下一个段的数组。这样你就可以通过所有的选项而不至于填满内存。但还是会有太多的选项......搜索将需要很长的时间。如果你需要的话,你也可以考虑如何通过它们的编号提供对变体的访问(为了好玩)。

但在有这么多变体的情况下,这真的值得吗?将任务具体化以使其更加现实如何?

附加的文件:
3.mq5  14 kb
 
Dmitry Fedoseev:

在这里。但如果有1,000个部分,那就无济于事了。有太多的变种,你甚至可能没有足够的内存。

你可以用另一种方法--在每个段的末尾绑定一个索引指向下一个段的数组。这样你就可以通过所有的选项而不至于填满内存。但还是会有太多的选项......搜索将需要很长的时间。如果你需要的话,你也可以考虑如何通过它们的编号提供对变体的访问(为了好玩)。

但在有这么多变体的情况下,这真的值得吗?将任务具体化以使其更加现实如何?

外面可能有很多目标。最小的失误,从最长的片段,从最短的,从最相同的)即使在目标图中,最短的时间和最小的路径在逻辑上是不同的解决方式)
 
Valeriy Yastremskiy:
那里可以有很多目标。最小的失误,从最长的片段,从最短的,从最相同的)即使在目标图中,更少的时间和最小的路径在逻辑上是不同的解决方法)

这是什么情况?

与包含所有准备好的组合的数组相比,带有指向相邻段的数组的内存量是微不足道的。

 
Dmitry Fedoseev:

在这里。但如果有1,000个部分,那就无济于事了。有太多的选择,你甚至可能没有足够的内存。

谢谢你!

但我不太清楚更新的意义是什么--对代码进行了修正吗?上次它检索到613个组合,这次它检索到1507个组合。

速度变慢了,但这可能是来自于组合的数量。

最后的变体。

2021.04.23 19:56:08.350 Scripts script Q_Podbor_02 (Si-6.21,M1) loaded successfully
2021.04.23 19:56:08.742 Scripts script Q_Podbor_02 (Si-6.21,M1) removed

目前的变体。

2021.04.23 19:51:56.608 Scripts script Q_Podbor_03 (Si-6.21,M1) loaded successfully
2021.04.23 19:51:58.387 Scripts script Q_Podbor_03 (Si-6.21,M1) removed
Dmitry Fedoseev:

我们可以采取另一种方式--在每个段的末尾,我们可以绑上一个数组,其索引指向下一个段。但仍然会有很多变体......搜索会花很长时间。如果你需要的话,你也可以考虑如何通过它们的编号提供对变体的访问(为了好玩)。

如果我没弄错的话,这个想法是随后计算组合并评估它,然后保存结果并继续下一个组合。如果新的结果(或前10名)比上一个好,我们就在数组变量中替换它。还有,是的,只是想问一下,如何获得组合所包含的数组第一层的索引链?

德米特里-费多塞耶夫

但如果有这么多的变体,这有意义吗?把问题具体化,使其更加现实,如何?

为什么从当前点开始的段数有限的变体(组合步骤,当已经拾取了n个段)不适合,因为它将大大减少组合的数量?

 
Aleksey Vyazmikin:

谢谢你!

但我不太明白更新的意义--是否对代码进行了修正?上次有613种组合,这次有1507种。

速度变慢了,但这可能是来自于组合的数量。

最后的变体。

目前的变体。

如果我理解正确的话,建议连续计算一个组合并立即评估,保存评估结果,然后继续下一个组合。如果新的结果(或前10名)比以前的好,我们就在数组/变量中替换它。还有,是的,只是想问一下,如何获得组合所包含的数组的第一级索引链?

为什么从当前点(组合的步骤,当你已经拿起n个部分)尝试有限的部分不是很好,因为它可以大大减少组合的数量?

我们为什么不考虑问题的原始版本呢?

 
Алексей Тарабанов:

我们为什么不看一下问题的原始版本呢?

没有段子。

 
Алексей Тарабанов:

我们为什么不看一下问题的原始版本呢?

Alexei Tarabanov:

没有段子。

是否有这样的变体?

最初的变体是将数字系列作为一个数组理想地划分为若干段(范围)。分割的标准是。

1.至少有5%的数字落入一个范围--%R。

2)评估一个段对另一个相同大小的二进制数组的反应(如果有一个范围内的数字-1,如果没有-0),段的反应应该与整个二进制数组的平均值至少相差5%-dP%。

3. 在10个相同的片段上按阵列深度计算SCO dP%,它应该不超过1.5-K_SKO。

现在不同的方法定义范围,但不同的方法能够选择符合上述标准的不同范围。因此,目标是采取不同方法的所有细分变体,并结合最好的方法。

 
Aleksey Vyazmikin:

谢谢你!

但我不太明白更新的意义--是否对代码进行了修正?上次有613种组合,这次有1507种。

速度变慢了,但这可能是来自于组合的数量。

最后的变体。

目前的变体。

如果我理解正确的话,建议连续计算一个组合,并立即评估,保存评估结果,然后继续进行下一个组合。如果新的结果(或前10名)比以前的好,我们就在数组变量中替换它。还有,是的,只是想问一下,如何获得组合所包含的数组的第一级索引链?

为什么从当前点(组合的步骤,当你已经选择了n个部分)尝试有限数量的部分不是很好,因为它可以大大减少组合的数量?

而且我不知道你在哪里以及在什么地方寻找组合?一般来说,每次启动都会产生一组新的输入段,而且总是不同的。

指数链--所以你需要创建的组合不是来自于段,而是来自于段的索引,或者你可以在第二维中添加第三个元素,并将索引存储在其中。

我不知道为什么一些有限的数字不适合,你写的是所有的组合。

 
Dmitry Fedoseev:

我不知道你在哪里以及以何种组合方式寻找?

以上,阿列克谢-塔拉巴诺夫在回答时详细地写了在什么地方和在什么地方。但这是理论--我还没有真正完成我需要的东西。

Dmitry Fedoseev:

一般来说,每个创业公司都会创建一套新的初始段,而且它们总是不同的。

然后我看到--我还没有处理,只是运行了两个脚本--如果集合是不同的,那么只有在集合是相同的情况下才有可能评估。

Dmitry Fedoseev:

索引链--所以我们不应该从段中创建组合,而应该从段的索引中创建组合,好吧,或者在第二维中添加第三个元素并将索引保存到其中。

我认为第三个要素是一个更方便的选择。你能不能调整一下代码,使其在这种实现方式下正确工作?

DmitryFedoseev:

我不知道为什么某种列举一些有限的数量是不好的,你写的是所有的组合。

这是正确的,最初我写的是所有的组合,但在这个过程中,由于你的帮助,变得很清楚,这是非常昂贵的,我们需要一个选项,根据经验,能够不比蛮力差。 由于对结果段的评估是由它的块组成的,我假设通过限制最佳块的n个组合和增加新的块,将有可能接近所有可能组合的最佳选项,没有限制。