哪吒杯开源SPL答题竞赛,一万元奖金,火爆来袭

哪 吒 哪 吒 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

一、竞赛规则      

本次竞赛共有3个题目,将提供数据文件和参考的SQL解法,参赛选手要写出返回同样结果的SPL脚本。

可以假定所有数据能在内存中放下,代码中不必考虑外存计算。

最后提交SPL脚本文件(.splx)。

二、奖励机制

1、每个题目设置三个优胜奖

  1. 第一个给出正确解答的(以邮件发送时间为准);奖励现金1000元;
  2. 在正确的基础上,代码最为简洁的(可以通俗地理解为短,当然用短变量名导致代码短并没有意义);奖励现金1500元;
  3. 在正确的基础上,代码效率最高的(可以通俗地理解为快,但这里因为数据量较小,测试运行时间会有较大随机性,只能评估代码的计算量);奖励现金1500元;

对于2、3项,如果两份答案的评分相同,则最早收到的答案获胜(以邮件发送时间为准)。

2、对于所有参赛但没得奖的选手,会抽取30名幸运奖,各奖励罗技蓝牙无线鼠标一个;

三、数据说明

1、SPL集文件格式的数据

SPL集文件格式的数据

2、在集算器(即SPL运行环境)中执行该脚本可将数据写入数据库(以MySQL为例)

SPL脚本

四、例题(仅供参考学习)

找出2021年3月18日(该日期可作为参数)上涨且已经连续上涨天数达到或超过4天(该天数可作为参数)的股票和相应的连续上涨天数。

参考SQL(使用MySQL8版本及以上,以下同)

with recursive
t1 as (select *, row_number() over(partition by code order by tdate) rn
from stock),
		t2 as (select *
from t1 where tdate='2021-03-18'
union all
select t1.*
from t2 join t1 on t2.code=t1.code and t2.rn=t1.rn+1
where t2.price>t1.price) 
select code,count(1)-1 cnt
from t2
group by code
having cnt>=4;

参考SPL解法

 A
1

2021-03-18

2

=T("data.btx").select(tdate<=A1).sort(code,-tdate)

3

=A2.group@o(code).select(tdate==A1)

4

=A3.new(code,~.pselect(price<=price[1])-1:cnt)

5

=A4.select(cnt>=4)

五、本次竞赛试题

1、上周四周五上涨、本周无停牌且至少4天上涨、本周一涨幅超1%且有一天涨幅超3%的股票中,接下来的2周里最大涨幅超10%的概率有多大?

参考SQL:

with 
#dayofweek('1970-01-04')=1, 周日
    t1 as (select *, datediff(tdate,'1970-01-04') div 7 as w,
        price/lag(price) over(partition by code order by tdate) rise
    from stock),
t2 as (select t1.code, t1.w, count(1) z0, sum(if(t1.rise>1,1,0)) z1,
        sum(if(dayofweek(t1.tdate)=2 and t1.rise>1.01,1,0)) z2,
        sum(if(dayofweek(t1.tdate)<>2 and t1.rise>1.03,1,0)) z3
    from t1 join t1 e1 on t1.code=e1.code and t1.w=e1.w+1
        join t1 e2 on t1.code=e2.code and t1.w=e2.w+1
    where dayofweek(e1.tdate)=5 and e1.rise>1
        and dayofweek(e2.tdate)=6 and e2.rise>1
    group by code, w
    having z0=5 and z1>=4 and z2=1 and z3>=1),
t4 as (select code, w, max(if(dayofweek(tdate)=6,price,null)) price5, max(price) h
    from t1 group by code, w),
t5 as (select code, w, price5, lead(h) over(partition by code order by w) h1,
        lead(h,2) over(partition by code order by w) h2
    from t4),
t6 as (select count(1) n
    from t5 join t2 using (code,w)
    where t5.h1/t5.price5>1.1 or t5.h2/t5.price5>1.1)
select n/(select count(1) from t2) p from t6;

2、设有涨>5%、跌>5%、涨>5%、跌>5%、涨>5%五个事件,请计算在2021年1季度(时间段可作为参数)中某20天(天数可作为参数)内依次发生前1、2、3、4、5个事件的股票数分别是多少?

参考SQL:

with
    q as (select *, row_number() over(partition by code order by tdate) n,
            price/lag(price) over(partition by code order by tdate) rise
        from stock),
    q0 as (select * 
        from q where tdate between '2021-01-01' and '2021-03-31'),
    q1 as (select code, n, 20-1 rg  #range是mysql关键字
        from q0 where rise>1.05),
    q2 as (select q0.code, q0.n, q1.rg+q1.n-q0.n rg
        from q0 join q1 on q0.code=q1.code and q0.n between q1.n+1 and q1.n+q1.rg
        where q0.rise<0.95),
    q3 as (select q0.code, q0.n, q2.rg+q2.n-q0.n rg
        from q0 join q2 on q0.code=q2.code and q0.n between q2.n+1 and q2.n+q2.rg
        where q0.rise>1.05),
    q4 as (select q0.code, q0.n, q3.rg+q3.n-q0.n rg
        from q0 join q3 on q0.code=q3.code and q0.n between q3.n+1 and q3.n+q3.rg
        where q0.rise<0.95),
    q5 as (select q0.code, q0.n, q4.rg+q4.n-q0.n rg
        from q0 join q4 on q0.code=q4.code and q0.n between q4.n+1 and q4.n+q4.rg
        where q0.rise>1.05)
select (select count(distinct code) from q0) n0,
    (select count(distinct code) from q1) n1,
    (select count(distinct code) from q2) n2,
    (select count(distinct code) from q3) n3,
    (select count(distinct code) from q4) n4,
    (select count(distinct code) from q5) n5;

3、在2021年第一季度(时间段可作为参数)中,每天选出最低价的涨停股和最高价的跌停股各一支,且前者价格低于后者的,找不到合适的则当天不选出。为避免精度导致的歧义,这里认为涨跌幅度超过9.5%即是涨停跌停。

参考SQL:

with
    q as (select *, price/lag(price) over(partition by code order by tdate) rise
        from stock),
    q1 as (select tdate, first_value(code) over(w1) code1, first_value(price) over(w1) price1
        from q
        where tdate between '2021-01-01' and '2021-03-31' and rise>1.095
        window w1 as (partition by tdate order by price)),
    q2 as (select * from q1 group by tdate),
    q3 as (select tdate, first_value(code) over(w2) code2, first_value(price) over(w2) price2
        from q
        where tdate between '2021-01-01' and '2021-03-31' and rise<0.905
        window w2 as (partition by tdate order by price desc)),
    q4 as (select * from q3 group by tdate)
select q2.tdate, q2.code1, q2.price1, q4.code2, q4.price2
from q2 join q4 using (tdate)
where q2.price1<q4.price2
order by tdate;

六、参赛时间及方式

  1. 活动时间:4月15日~5月12日
  2. 参赛方式:按照答题要求将答案发至邮箱:785713526@qq.com
  3. 榜单公布:会根据答题情况及时在官网公布得奖情况,将会在5月13日前公布完所有获奖信息。
  4. 奖励发放:5月20日前

七、参考资料

SPL介绍

SPL下载地址

SPL开源地址

学习SPL的路径

SPL中配置数据库连接

SPL学习资料

八、交流咨询群

1、扫码添加上方 哪吒 微信,咨询与本次竞赛相关的任何问题;

2、可通过 哪吒 微信申请加入技术交流群,沟通交流学习与SPL有关的技术问题。

九、在任务中提交你的CSDN主页地址,即可参与活动

...全文
0人已提交
完成率0%
暂无数据

相关推荐

从可观测性的角度研究基于扩展卡尔曼滤波器(EKF)的同时定位与地图构建(SLAM)中的不一致性问题(Matlab代码实现)

内容概要:本文系统研究了基于扩展卡尔曼滤波器(EKF)的同时定位与地图构建(SLAM)系统中存在的不一致性问题,重点从系统可观测性的角度进行深入分析。文章指出,EKF-SLAM在实际应用中常因系统可观测性不足而导致状态估计偏差和协方差低估,进而引发滤波器发散或定位精度下降。通过理论推导揭示了在特定运动模式(如纯旋转或直线运动)下系统可观测性降低的机理,并结合Matlab仿真实验验证了相关结论。研究构建了典型的SLAM仿真场景,展示了不同运动轨迹对估计一致性的影响,并探讨了提升系统可观测性的改进策略,旨在增强EKF-SLAM算法的鲁棒性与可靠性。; 适合人群:具备控制理论、机器人学、状态估计或传感器融合等相关领域基础知识,正在从事SLAM、自主导航、智能系统研发的硕士、博士研究生及科研人员。; 使用场景及目标:①深入理解EKF-SLAM中估计不一致性的根本原因及其与可观测性的内在联系;②掌握基于可观测性理论分析非线性估计系统的方法;③利用提供的Matlab代码复现仿真结果,用于学术研究、算法验证或教学演示。; 阅读建议:建议读者结合线性系统理论与非线性滤波知识,重点研读可观测性分析的数学推导部分,并动手运行配套的Matlab代码,通过改变机器人运动轨迹等方式观察滤波性能变化,以深化对理论内容的理解与实践应用能力。

大龙不吃小鱼干

基于AI大模型的量化交易可信数据空间建设方案.pptx

基于AI大模型的量化交易可信数据空间建设方案.pptx

公众号:优享智库

(Multisim课设资料)最全面函数信号发生器(三角波+正弦波+方波信号+锯齿波仿真设计+报告文档

内容概要:本文详细介绍了基于Multisim的最全面函数信号发生器的设计与仿真,涵盖三角波、正弦波、方波及锯齿波等多种信号的生成电路设计,并结合仿真结果进行分析验证。文档不仅提供了完整的电路设计方案,还包括详尽的报告文档,适用于电子类课程设计与实践教学。通过该设计,用户能够深入掌握信号发生器的工作原理、Multisim仿真软件的应用技巧以及模拟电路的调试方法,全面提升电路设计与系统仿真能力。; 适合人群:电子信息工程、自动化、电气工程等相关专业的本科生及研究生,具备基本电路理论知识和Multisim软件操作基础的学习者。; 使用场景及目标:①用于高校电子类课程设计(如模拟电子技术、电路仿真等)的教学与实践;②帮助学生系统掌握函数信号发生器的设计流程与Multisim仿真技能;③为科研项目中信号源模块的搭建提供可复用的参考方案和技术支持。; 阅读建议:建议读者结合Multisim软件同步操作,按照文档中的电路图逐步搭建并仿真,重点关注各信号产生电路的参数设置、波形生成质量及调试过程,以深化对模拟电路工作原理与系统设计方法的理解。

荔枝科研社

Go语言高并发与云原生项目实战

Go语言高并发与云原生项目实战

miaobinfei

MCP4728 数模转换模块

MCP4728 数模转换模块

剑藏锋
评论 3
收藏 已收藏
分享
返回顶部
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
哪吒社区 516,558 成员 17,336 内容