楼主: 〇〇

[每日一题] puzzleup 2020 11月开始

[复制链接]
论坛徽章:
519
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
101#
发表于 2020-12-25 21:51 | 只看该作者
〇〇 发表于 2020-12-25 18:33
理论上怎么分析

所有三位数 P(6,3)=120
每个六位数占四个三位数,理论上极限 = 120/4=30 就是最大可能的子集。

使用道具 举报

回复
论坛徽章:
33
劳斯莱斯
日期:2013-08-08 14:01:23三菱
日期:2013-09-28 10:16:06一汽
日期:2013-11-19 17:01:11凯迪拉克
日期:2013-12-07 17:11:282014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02itpub13周年纪念徽章
日期:2014-09-27 14:20:21itpub13周年纪念徽章
日期:2014-10-08 15:13:38懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
102#
发表于 2020-12-26 09:43 | 只看该作者
newkid 发表于 2020-12-25 21:51
所有三位数 P(6,3)=120每个六位数占四个三位数,理论上极限 = 120/4=30 就是最大可能的子集。

newkid老兄,开始休长假了吧

使用道具 举报

回复
论坛徽章:
519
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
103#
发表于 2020-12-26 09:50 来自手机 | 只看该作者
这边的圣诞放两天,公司加一天,元旦放假一天,我凑上个人休假和周末,总共两周,就相当于中国过春节了。

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
104#
 楼主| 发表于 2020-12-26 14:44 | 只看该作者
solomon_007 发表于 2020-12-24 22:59
#8 SQL> with t as (  2  select replace(sys_connect_by_path(n,','),',') str  3    from (select level  ...

sqlite 不支持在递归时用分析函数,没法实现rownum=1, limit 1的结果不对

  1. with t6 as(select 1 n union all select n+1 from t6 where n<6)
  2. ,t as(select 1 lv, n n1 from t6 union all select lv+1, n1*10+n from t,t6
  3. where lv<6 and instr(n1,n)=0)
  4. ,tall as(select row_number()over(order by n1)rn,n1 str from t where lv=6)
  5. , s as (
  6. select str,
  7.         substr(str,1,3) a,
  8.        substr(str,2,3) b,
  9.        substr(str,3,3) c,
  10.        substr(str,4,3) d
  11. from tall ),
  12. r (lvl,rn,str_list,abcd_list) as (select 1,1,
  13.                                       str,
  14.                                       a||','||b||','||c||','||d
  15.                                  from s
  16.                                 union all
  17.                                select lvl+1,row_number()over(order by str)rn,
  18.                                       r.str_list||','||s.str,
  19.                                       r.abcd_list||','|| s.a||','||s.b||','||s.c||','||s.d
  20.                                  from r,s
  21.                                 where instr(r.str_list,s.str)=0
  22.                                   and instr(r.abcd_list,s.a)=0
  23.                                   and instr(r.abcd_list,s.b)=0
  24.                                   and instr(r.abcd_list,s.c)=0
  25.                                   and instr(r.abcd_list,s.d)=0
  26.                                   and rn=1
  27.                                   )
  28. --select * from r;
  29. select max(lvl) from r
  30. ;
复制代码

使用道具 举报

回复
论坛徽章:
548
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:222012新春纪念徽章
日期:2020-11-30 22:13:24海蓝宝石
日期:2012-02-20 19:24:27
105#
发表于 2020-12-26 15:07 | 只看该作者
newkid 发表于 2020-12-26 09:50
这边的圣诞放两天,公司加一天,元旦放假一天,我凑上个人休假和周末,总共两周,就相当于中国过春节了。

幸福的NEWKID

使用道具 举报

回复
论坛徽章:
548
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:222012新春纪念徽章
日期:2020-11-30 22:13:24海蓝宝石
日期:2012-02-20 19:24:27
106#
发表于 2020-12-26 15:12 | 只看该作者
〇〇 发表于 2020-12-26 14:44
sqlite 不支持在递归时用分析函数,没法实现rownum=1, limit 1的结果不对

加 rownum 是不对的,加了就是让其选择一个路径即可,我执行多次,结果不确定,最大26.
sqllite 我从没用过。 你玩的clickhouse 支持吗?

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
107#
 楼主| 发表于 2020-12-26 15:42 | 只看该作者
solomon_007 发表于 2020-12-26 15:12
加 rownum 是不对的,加了就是让其选择一个路径即可,我执行多次,结果不确定,最大26.sqllite 我从没用过 ...

clickhouse 不支持递归with,但支持lambda表达式

SELECT arrayFilter( (z,x) -> not arrayExists(i -> x%i=0  and x<>i, r)  , (arrayMap(z->z+2, range(20))) as r,r) prime
┌─prime─────────────────┐
│ [2,3,5,7,11,13,17,19] │
└───────────────────────┘

使用道具 举报

回复
论坛徽章:
548
生肖徽章2007版:猴
日期:2008-05-16 11:28:59生肖徽章2007版:马
日期:2008-10-08 17:01:01SQL大赛参与纪念
日期:2011-04-13 12:08:17授权会员
日期:2011-06-17 16:14:53ITPUB元老
日期:2011-06-21 11:47:01ITPUB官方微博粉丝徽章
日期:2011-07-01 09:45:27ITPUB十周年纪念徽章
日期:2011-09-27 16:30:472012新春纪念徽章
日期:2012-01-04 11:51:222012新春纪念徽章
日期:2020-11-30 22:13:24海蓝宝石
日期:2012-02-20 19:24:27
108#
发表于 2020-12-26 21:20 | 只看该作者
〇〇 发表于 2020-12-26 15:42
clickhouse 不支持递归with,但支持lambda表达式SELECT arrayFilter( (z,x) -> not arrayExists(i -> x%i=0  ...

lambda 这是 C# 中的内容吧。 搞到SQL中,都看不懂了

使用道具 举报

回复
论坛徽章:
519
奥运会纪念徽章:垒球
日期:2008-09-15 01:28:12生肖徽章2007版:鸡
日期:2008-11-17 23:40:58生肖徽章2007版:马
日期:2008-11-18 05:09:48数据库板块每日发贴之星
日期:2008-11-29 01:01:02数据库板块每日发贴之星
日期:2008-12-05 01:01:03生肖徽章2007版:虎
日期:2008-12-10 07:47:462009新春纪念徽章
日期:2009-01-04 14:52:28数据库板块每日发贴之星
日期:2009-02-08 01:01:03生肖徽章2007版:蛇
日期:2009-03-09 22:18:532009日食纪念
日期:2009-07-22 09:30:00
109#
发表于 2021-1-4 22:45 | 只看该作者
最后一题答案找到了,确实可以凑出30个。

验证:

with a as (
select '123456,134652,146253,152463,163245,215634,235416,241536,265314,312546,326154,342165,426315,461325,534126,621435,523164,513624,561243,451623,645213,413562,635142,614532,436512,542361,364251,352641,256431,654321' str from dual
)
,b as (
select regexp_substr(str,'[^,]+',1,level) p
  from a
  connect by level<=30
)  
select b1.*
  from b b1,b b2
where b1.p<>b2.p
       and (instr(b2.p,substr(b1.p,1,3))>0
            or instr(b2.p,substr(b1.p,2,3))>0
            or instr(b2.p,substr(b1.p,3,3))>0
            or instr(b2.p,substr(b1.p,4,3))>0
           )

no rows selected;

使用道具 举报

回复
论坛徽章:
407
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
110#
 楼主| 发表于 2025-2-17 16:04 | 只看该作者
deepseek做的第4题

  1. def calculate_probability():
  2.     # 初始化动态规划表
  3.     # dp[a][b] 表示当第一个盒子有 a 颗糖,第二个盒子有 b 颗糖时,最终另一个盒子剩下 5 颗糖的概率
  4.     dp = [[0] * 11 for _ in range(11)]
  5.    
  6.     # 边界条件
  7.     for a in range(11):
  8.         for b in range(11):
  9.             if a == 0 and b == 5:
  10.                 dp[a][b] = 1
  11.             elif b == 0 and a == 5:
  12.                 dp[a][b] = 1
  13.             elif a == 0 or b == 0:
  14.                 dp[a][b] = 0
  15.    
  16.     # 动态规划递推
  17.     for a in range(1, 11):
  18.         for b in range(1, 11):
  19.             dp[a][b] = 0.5 * dp[a-1][b] + 0.5 * dp[a][b-1]
  20.    
  21.     # 返回初始状态的概率
  22.     return dp[10][10]

  23. # 计算概率
  24. probability = calculate_probability()

  25. # 将概率转换为分数形式
  26. from fractions import Fraction
  27. fraction_probability = Fraction(probability).limit_denominator()

  28. # 输出结果
  29. print(f"另一个盒子里正好剩下 5 颗糖的概率是:{fraction_probability}")
复制代码

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表