需要帮助!无法解决这个问题,我遇到了硬件限制 - 页 12 1...5678910111213141516171819...21 新评论 Mykola Demko 2014.08.19 12:04 #111 komposter: 整个数据库到底能不能装下10万行? 所有文件都在一起 Mykola Demko 2014.08.19 12:05 #112 Candid:但这些序列是相互独立的,不是吗?那么,为什么我们不能在一个单一加载的序列上一次性地循环查看日期呢?在这里,顺便说一下,也许可以去找一些高效的递归算法,但那是运气好的时候。一百万上的大小将保持,文件将被读取一次。当然,一个在下一次迭代中步骤数保持不变的问题(即搜索区域不会随着计算的进行而变窄)看起来并不十分稳健。但这是主观的,当然。 当超过缓存限制时,这种维度上的递归将下降。 Sergey Dzyublik 2014.08.19 12:06 #113 有许多单一类型的交易序列,每个序列都是按时间排序的。Сделки в разных последовательностях разные, по времени распределены неравномерно (и в каждой последовательности по своему). Сделок разное количество. Но все - в интервале от Даты1 до Даты2.任务是以M分钟的步幅从D1移动到D2(或者更好--完全按所有序列的交易点数),按照标准K找到比其他序列更好的序列(一个单独的任务--不仅仅是找到最佳序列,而是按照标准对整个集合进行排序,并输出前10名--但这是一个可选项,还没有必要)。标准K的计算是基于相应序列的X个先前的交易,同时计算X个交易中每一个的几乎所有信息(例如,只有利润是不够的)。这就是我们应该开始的地方。我是否正确理解了以下内容。1) 一个20gb的文件由大约一百万个按时间排序的序列组成2) 每个序列的大小可能不同,取决于序列包含的交易数量3) 一个序列的平均大小为20/10^6=20Mb,那么我们能保证完全下载一个序列吗?4) K系数只取决于给定序列中的交易。5) 对于每个序列,我们必须找到K(总共10^6块)并选择前10块A 如果我们创建另一个带有序列间距离值的文件。1) 看看我们可以下载多少个序列,并对它们之间的距离进行求和(保留求和的中间值)。2) 我们从文件中读取距离到RAM中3) 对每个序列运行搜索算法到K(我们知道序列的开始位置,因为我们保留了步骤1中计算的小数)。4) 再次从第1点开始,稍稍向前移动至于前十名。n是K的总数值,m是最佳数量。1)你可以找到所有的K,然后在堆数据结构的帮助下,选择需要的最佳值的数量(获取堆O(n),选择最佳的O(log n)次数m,内存空间-n)2)计算所需的数量--m个实例(例如,10个),对它们进行排序,并使用二进制搜索来寻找剩余K个实例的插入点。(初始排序O(m*log m),搜索插入O(log m)次数(n-m),插入O(1),占用内存空间-m)。 统计学基础 针对交易的组合数学和概率论(第三部分):第一个数学模型 数据科学和机器学习(第 05 部分):决策树 Nikolay Likhovid 2014.08.19 12:20 #114 Urain: 当超过缓存限制时,这些维度上的递归将下降。 在经典的递归中,缓存的大小是固定的。 Nikolay Likhovid 2014.08.19 12:23 #115 ALXIMIKS:3)平均序列大小为20/10^6=20MB,什么会完全加载一个序列我们可以保证? 顺便说一句,是的,你可以一次加载成批的序列。 Sergey Dzyublik 2014.08.19 12:34 #116 我觉得我无法掌握需要什么和给予什么的要领(())。 А потом "нужная дата" сдвигается на точку закрытия сделки из выбранной последовательности и алгоритм повторяется.是的,20/10^6=20kb,因为1gb=1000mb=10^6kb。 Mykola Demko 2014.08.19 12:34 #117 YuraZ:走向SQL对我来说相对较新(没有仔细工作过,只是基本查询)。这在学习阶段可能是相当缓慢的。如果你选择这个选项,最好用存储过程来构建所有的业务逻辑专家顾问只留下两个功能,向服务器发送请求并获得一个完全完成的结果。服务器上的所有计算结果在单一客户机上安装的复杂性(独立版本)。事实上,在网上你可以找到很多关于如何将SQL服务器( ORACL, SYBASE + CENTOS为例) ORACL, SYBASE, MS SQL + WINDOWS独立机器ORACL学习起来比较复杂--专家少,文献少。MS SQL - 也许是网络上最大的信息量和更多的文献。不会有任何困难--网上有许多描述,商店里有更多的书。MSSQL 2012的参数与ORACL非常接近--在2014年已经如此。SQL + LINUX通常被选择用于生产环境中的操作 - 如果你对LINUX一无所知,最好使用WINDOWS。MSSQL Expres气球,但限制使用1个核心,1Gb的内存和10Gb的基础其他人则是有偿的。 Andrew Petras 2014.08.19 12:43 #118 komposter:...有许多类似的交易序列,每个序列都是按时间排序的。不同序列中的交易是不同的,在时间上分布不均(在每个序列中以不同的方式)。交易的数量是不同的。但所有这些都是在从Date1到Date2的区间内。任务--以M分钟的步骤从D1移动到D2(或者更好--完全按所有序列的交易点),找到一个序列,按照标准K比其他的更好(一个单独的任务--不仅仅是找到最好的序列,而是按照标准对整个集合进行排序,并输出前10名--但这是一个可选项,还没有必要)。...我不明白在哪里。在从Date1到Date2 的区间内,有一个标准--所有--。康帕斯。一切都是这样的。然后,"正确的日期 "被转移到所选序列的交易结束点,算法重复进行。以此类推一百万次 =)即,下一个是读。为什么不把文件分成许多从 Date1到Date2的间隔?会有花费的序列可以被关闭,对吗? Nikolay Likhovid 2014.08.19 12:47 #119 Silent:我不明白在哪里。这里的标准是--一切都在Date1和Date2之间。即,其内容如下。为什么不把文件分成从 Date1到Date2的许多区间?会有用完的序列,可以关闭,对吗? 显然,单一日期通行证的结果之一是一个新的日期。 Sergey Dzyublik 2014.08.19 12:59 #120 如果问题是这样。给定一个行 1 2 3 4 5 6 7 8 9 给定一个宽度,例如4,你必须用这个宽度穿过整个行,找到宽度内的某个值(例如最小值)。首先你需要找到1 2 3 4,然后2 3 4 5,然后3 4 5 6,然后4 5 6 7,然后....。等。那么任务就通过保持队列数据结构 中的最小值来解决。1) mails.ru视频课程中建议通过四个堆栈数据结构来实现这一点2)我通过队列数据结构和dec数据结构口头发明了一种实现方式,很可能有人已经做过一次,而且是以他的名字命名的,我只需要找到它。 From theory to practice 从理论到实践 Question - Open Order 1...5678910111213141516171819...21 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
但这些序列是相互独立的,不是吗?那么,为什么我们不能在一个单一加载的序列上一次性地循环查看日期呢?在这里,顺便说一下,也许可以去找一些高效的递归算法,但那是运气好的时候。一百万上的大小将保持,文件将被读取一次。
当然,一个在下一次迭代中步骤数保持不变的问题(即搜索区域不会随着计算的进行而变窄)看起来并不十分稳健。但这是主观的,当然。
Сделки в разных последовательностях разные, по времени распределены неравномерно (и в каждой последовательности по своему). Сделок разное количество. Но все - в интервале от Даты1 до Даты2.
任务是以M分钟的步幅从D1移动到D2(或者更好--完全按所有序列的交易点数),按照标准K找到比其他序列更好的序列(一个单独的任务--不仅仅是找到最佳序列,而是按照标准对整个集合进行排序,并输出前10名--但这是一个可选项,还没有必要)。
标准K的计算是基于相应序列的X个先前的交易,同时计算X个交易中每一个的几乎所有信息(例如,只有利润是不够的)。
这就是我们应该开始的地方。
我是否正确理解了以下内容。
1) 一个20gb的文件由大约一百万个按时间排序的序列组成
2) 每个序列的大小可能不同,取决于序列包含的交易数量
3) 一个序列的平均大小为20/10^6=20Mb,那么我们能保证完全下载一个序列吗?
4) K系数只取决于给定序列中的交易。
5) 对于每个序列,我们必须找到K(总共10^6块)并选择前10块
A 如果我们创建另一个带有序列间距离值的文件。
1) 看看我们可以下载多少个序列,并对它们之间的距离进行求和(保留求和的中间值)。
2) 我们从文件中读取距离到RAM中
3) 对每个序列运行搜索算法到K(我们知道序列的开始位置,因为我们保留了步骤1中计算的小数)。
4) 再次从第1点开始,稍稍向前移动
至于前十名。
n是K的总数值,m是最佳数量。
1)你可以找到所有的K,然后在堆数据结构的帮助下,选择需要的最佳值的数量(获取堆O(n),选择最佳的O(log n)次数m,内存空间-n)
2)计算所需的数量--m个实例(例如,10个),对它们进行排序,并使用二进制搜索来寻找剩余K个实例的插入点。
(初始排序O(m*log m),搜索插入O(log m)次数(n-m),插入O(1),占用内存空间-m)。
当超过缓存限制时,这些维度上的递归将下降。
3)平均序列大小为20/10^6=20MB,什么会完全加载一个序列我们可以保证?
我觉得我无法掌握需要什么和给予什么的要领(())。
А потом "нужная дата" сдвигается на точку закрытия сделки из выбранной последовательности и алгоритм повторяется.
是的,20/10^6=20kb,因为1gb=1000mb=10^6kb。
走向SQL
这在学习阶段可能是相当缓慢的。
如果你选择这个选项,最好用存储过程来构建所有的业务逻辑
专家顾问只留下两个功能,向服务器发送请求并获得一个完全完成的结果。
服务器上的所有计算结果
事实上,在网上你可以找到很多关于如何将SQL服务器
( ORACL, SYBASE + CENTOS为例) ORACL, SYBASE, MS SQL + WINDOWS独立机器
ORACL学习起来比较复杂--专家少,文献少。
MS SQL - 也许是网络上最大的信息量和更多的文献。
不会有任何困难--网上有许多描述,商店里有更多的书。
MSSQL 2012的参数与ORACL非常接近--在2014年已经如此。
SQL + LINUX通常被选择用于生产环境中的操作 - 如果你对LINUX一无所知,最好使用WINDOWS。
MSSQL Expres气球,但限制使用1个核心,1Gb的内存和10Gb的基础
其他人则是有偿的。
...
有许多类似的交易序列,每个序列都是按时间排序的。
不同序列中的交易是不同的,在时间上分布不均(在每个序列中以不同的方式)。交易的数量是不同的。但所有这些都是在从Date1到Date2的区间内。
任务--以M分钟的步骤从D1移动到D2(或者更好--完全按所有序列的交易点),找到一个序列,按照标准K比其他的更好(一个单独的任务--不仅仅是找到最好的序列,而是按照标准对整个集合进行排序,并输出前10名--但这是一个可选项,还没有必要)。
...我不明白在哪里。
在从Date1到Date2 的区间内,有一个标准--所有--。
一切都是这样的。
然后,"正确的日期 "被转移到所选序列的交易结束点,算法重复进行。
以此类推一百万次 =)
即,下一个是读。
为什么不把文件分成许多从 Date1到Date2的间隔?会有花费的序列可以被关闭,对吗?
我不明白在哪里。
这里的标准是--一切都在Date1和Date2之间。
即,其内容如下。
为什么不把文件分成从 Date1到Date2的许多区间?会有用完的序列,可以关闭,对吗?
如果问题是这样。
给定一个行 1 2 3 4 5 6 7 8 9
给定一个宽度,例如4,你必须用这个宽度穿过整个行,找到宽度内的某个值(例如最小值)。
首先你需要找到1 2 3 4,然后2 3 4 5,然后3 4 5 6,然后4 5 6 7,然后....。等。
那么任务就通过保持队列数据结构 中的最小值来解决。
1) mails.ru视频课程中建议通过四个堆栈数据结构来实现这一点
2)我通过队列数据结构和dec数据结构口头发明了一种实现方式,很可能有人已经做过一次,而且是以他的名字命名的,我只需要找到它。