算法的优化。 - 页 3

 
joo:

扇形的宽度不能与数组中的数值相匹配,否则该算法将无法对所有数字起作用。

重要的是这些数字之间的距离。所有数字与第一个数字的距离越远,它们就越不可能掉出来。在本质上,我们推迟在一条直线上的酒吧成比例的数字之间的距离,调整的因素为0.01,所以,最后一个数字的概率下降不等于0,因为从第一个最远的。系数越高,各部门就越平等。excel文件附在后面,用它来实验。

1.理论概率的计算在EXCEL中给出。第一个数字是最高概率,最后一个数字是最低概率,但不等于0。

2)对于任何一组数字来说,扇形的负数都不会发生,前提是这组数字是按降序排序的--第一个数字是最大的(这组数字中最大的但却是负数,它也会起作用)。

我不明白,但我已经喜欢你对概率论的处理方法,用一个关键的短语表达:"数字之间的距离很重要。所有的数字与第一个数字相距越远,它们掉出来的可能性就越小......",第二步(检查镜头):"你是建议在数组中 随机挑选一个元素 吗?- 它没有考虑到数组数字之间的距离,所以你的方法是无用的"。 合法的问题:洗脑是磨练程序编写逻辑的必修课吗? 我最好保持一个业余的编码者,这对我的健康更好。

如果你精通概率论,那么轮盘赌的逻辑--在0到36的范围内随机生成数字(如果轮盘赌是传统的,欧洲的,没有美式的双零,等等)。

 
Wangelys:

我不明白,但我已经喜欢你对概率论的处理方法,用关键的一句话表达:"数字之间的距离很重要。所有的数字离第一个数字越远,它们掉出来的可能性就越小......",第二条(检查镜头):"你建议直接从阵列中 随机选择一个元素?- 它没有考虑到数组数字之间的距离,所以你的方法是无用的"。 合法的问题:洗脑是磨练程序编写逻辑的必修课吗? 我最好保持一个业余的编码者,这对我的健康更好。

如果你对概率论很在行,那么轮盘赌的逻辑--随机数字发生器的范围是0到36(如果是正规的欧洲轮盘赌,没有美式的双零等......)。

实际上,赌场轮盘赌只不过是一个比喻,在这个主题中至少有三个人已经上当了。

 
joo:

实际上,赌场轮盘赌只不过是一个比喻,在这个主题中至少有三个人已经上当了。

- 是的,是的,我明白了!伊索的语言。

- 对不起,这是从哪里来的?

 
Wangelys:

- 是的,是的,我明白了!伊索的语言。

- 对不起,我没听清,这是从哪里来的?

Robert Sheckley?
 
joo:

扇形的宽度不能与数组中的数值相匹配,否则该算法将无法对所有数字起作用。

重要的是这些数字之间的距离。所有数字与第一个数字的距离越远,它们就越不可能掉出来。在本质上,我们推迟在一条直线上的酒吧成比例的数字之间的距离,调整的因素为0.01,所以,最后一个数字的概率下降不等于0,因为从第一个最远的。系数越高,各部门就越平等。excel文件附在后面,用它来实验。

1.理论概率的计算在EXCEL中给出。第一个数字是最高概率,最后一个数字是最低概率,但不等于0。

2)对于任何一个数字集来说,负的扇形大小都不会发生,只要这个数字集是按降序排序的--第一个数字是最大的(对数字集中最大的数字也会起作用,但也是一个负数)。

这不是一个正确的说法,IMHO。

имеем массив
 double a[10]={1,2,3,4,5,6,7,8,9,10};
какова вероятность выпадения каждого?
 55=1+2+3+4+5+6+7+8+9+10;
 double b[10]={1/55,2/55,3/55,4/55,5/55,6/55,7/55,8/55,9/55,10/55};
те вероятность выпадения [0] в 10 раз меньше чем [9].
теперь разметим массив где эти вероятности будут отображены
 double с[10]={1,3,6,10,15,21,28,36,45,55};
теперь при выпадении чисел от 1 до 55, если ранд55 <= c[x], то имеем нужный индекс.
для того чтоб работало и для отрицательных чисел нужно сдвинуть значения на 1-с[0].

теперь посмотрим изменяться ли вероятности при изменении чисел...
 double a[10]={2,4,6,8,10,12,14,16,18,20};
какова вероятность выпадения каждого?
 110=2+4+6+8+10+12+14+16+18+20;
 2/110==1/55
 double b[10]={1/55,2/55,3/55,4/55,5/55,6/55,7/55,8/55,9/55,10/55};
те вероятность выпадения [0] в 10 раз меньше чем [9], 
вероятность выпадения не изменилась, 
т.к. она измеряется относительно среднего рассчитанного по всему массиву.

 

第二,每个周期需要计算一次概率数组与[],所以我们应该把这个函数拆成RoletteEpoh()和RoletteRand()。

虽然朱棣文在一开始就提到了这一点。

但你可以通过搜索c[]数组中的放弃值来获得加速本身。

你可以使用标准的biblio,即快速搜索方法。

而你最好从MQL5中的电子表格 这篇文章中采取其重做的方法。

如果你想对具有非递减值的排序数组进行快速搜索,请使用具有递增值的标准数组(我可能是错的,我已经有一段时间没有翻阅标准数组了)。

 
joo:
罗伯特-沙克雷?
不,更简单一点--敖德萨的Privoz,虽然我也喜欢Shackley(几乎拼成shekels)。 但你下面的比喻 "搞定 "了这个分支的所有参与者。
joo:
我建议我们在这里讨论最优算法逻辑构建的问题
-因为这里发生的事情几乎不属于 "算法逻辑的优化构建 "问题的措辞范围 -它更像是编码方法和技术的改进...还是我错了?
 
Wangelys:
"算法逻辑的优化构建 "的问题--它更像是编码方法和技术的改进...还是我错了?

一个一般性质的主题。

"如果有人怀疑他们的算法在 速度(或清晰度) 方面有最佳逻辑,欢迎他们来。"

而具体来说,我的任务是"......请建议一个更快的变体......"。更快!更快我不是在问我的算法是对是错,在这种情况下,我只需要更快的速度,也就是说,如果有人提出另一种算法的变体,它应该产生与我相同的结果,而不是其他。而出于某种原因,每个人都开始考虑他自己的事情。


好了,我的提速 任务已经解决了。:)

 
Wangelys:

- 是的,是的,我明白了!伊索的语言。

- 对不起,我没听清,这是从哪里来的?

这是来自遗传算法
Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
现在我有一个问题。 我需要对元素复制 "成本 "较大的数组进行有效排序(即其中的元素是笨重的 "重型 "结构、类对象、长字符串等)。 常识表明,我们应该让它们留在原地,而是通过某种指针进行排序--它们原来位置的单元格索引。 以下是这里的一段话 :https://www.mql5.com/ru/forum/6476#comment_178318
Если прямо тут перевести в подобие "техзадания", то нужна функция, на вход берущая массив и возвращающая 
второй массив (int), элементы которого являются индексами элементов входного массива, расположенными 
по убыванию (возрастанию).

В идеальном случае сделать перегрузки для всех стандартных типов + CObject (при обязательном требовании
к реализации функции Compare() у наследников CObject).  Хотелось бы и для структур, но похоже на стороне
разработчика никак не решаемо - виртуальных функций у структур нет (и не надо!), т.е. юзерскую функцию
Compare() не пришить, а "стандартное" отношение порядка для структур, естественно, не определено.  
让我们暂时让那些受人尊敬的终端开发者去完成他们当前的众多任务,并在mql5上实现它。