楼主: newkid

[精华] puzzleup2012谜题,请用SQL或PLSQL解答

[复制链接]
论坛徽章:
520
奥运会纪念徽章:垒球
日期: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
261#
 楼主| 发表于 2012-11-15 03:04 | 只看该作者
#17 Prime Sums

All of the digits of a number are different. The sums of all neighboring three digits of this number are prime numbers. What is the largest number having these properties?

一个数的每一位各不相同。所有相邻三位数的和都是素数。具备这种属性的最大的数是什么?

按我的理解,ABCD中A+B+C是素数,B+C+D也是素数。写SQL很快能找出来,但却是一个很小的数,不知道为什么?

使用道具 举报

回复
论坛徽章:
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
262#
发表于 2012-11-15 07:00 | 只看该作者
a+b+c最大=23
b+c+d最大=19,

使用道具 举报

回复
论坛徽章:
93
生肖徽章2007版:牛
日期:2012-08-02 22:43:00紫蛋头
日期:2012-12-08 09:43:38鲜花蛋
日期:2012-11-17 12:02:07鲜花蛋
日期:2013-02-05 21:53:34复活蛋
日期:2012-11-17 12:02:07SQL极客
日期:2013-12-09 14:13:35SQL数据库编程大师
日期:2013-12-06 13:59:43SQL大赛参与纪念
日期:2013-12-06 14:10:50ITPUB季度 技术新星
日期:2012-11-27 10:16:10最佳人气徽章
日期:2013-03-19 17:24:25
263#
发表于 2012-11-16 08:33 | 只看该作者
newkid 发表于 2012-11-15 03:04
#17 Prime Sums

All of the digits of a number are different. The sums of all neighboring three dig ...

是不是忘记考虑0了?

使用道具 举报

回复
论坛徽章:
93
生肖徽章2007版:牛
日期:2012-08-02 22:43:00紫蛋头
日期:2012-12-08 09:43:38鲜花蛋
日期:2012-11-17 12:02:07鲜花蛋
日期:2013-02-05 21:53:34复活蛋
日期:2012-11-17 12:02:07SQL极客
日期:2013-12-09 14:13:35SQL数据库编程大师
日期:2013-12-06 13:59:43SQL大赛参与纪念
日期:2013-12-06 14:10:50ITPUB季度 技术新星
日期:2012-11-27 10:16:10最佳人气徽章
日期:2013-03-19 17:24:25
264#
发表于 2012-11-16 09:09 | 只看该作者
  1. bill@ORCL> with b as (
  2.   2  select rownum-1 n from dual connect by rownum<=10),
  3.   3  p as (
  4.   4  select level n from dual where (level>=2 and mod(level, 2)<>0 and mod(level, 3)<>0 and mod(level, 5)<>0) or level in (2, 3, 5) connect by level<=23),
  5.   5  tmp as (
  6.   6  select     d1.n||d2.n||d3.n d
  7.   7  from       b d1, b d2, b d3, p
  8.   8  where      d1.n<>d2.n
  9.   9  and        d1.n<>d3.n
  10. 10  and        d2.n<>d3.n
  11. 11  and        d1.n+d2.n+d3.n=p.n),
  12. 12  t (d) as (
  13. 13  select     d
  14. 14  from       tmp
  15. 15  where      not d like '0%'
  16. 16  union all
  17. 17  select     t.d||substr(tmp.d, -1)
  18. 18  from       t, tmp
  19. 19  where      substr(t.d, -2)=substr(tmp.d, 1, 2)
  20. 20  and        instr(t.d, substr(tmp.d, -1))=0)
  21. 21  select max(to_number(d)) from t;

  22. MAX(TO_NUMBER(D))
  23. -----------------
  24.          98652470

  25. 已用时间:  00: 00: 00.09
复制代码

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期: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
265#
 楼主| 发表于 2012-11-16 23:25 | 只看该作者
和你差不多,我原来有个地方写错:

WITH n AS (SELECT LEVEL-1 N FROM DUAL CONNECT BY LEVEL<=10)
,s AS (
SELECT n1.n||n2.n||n3.n s
  FROM n n1,n n2,n n3
WHERE n1.n<>n2.n AND n1.n<>n3.n AND n2.n<>n3.n
       AND n1.n+n2.n+n3.n IN (3,5,7,11,13,17,19,23)
)
,t(s) AS (
SELECT s FROM s where s not like '0%'
UNION ALL
SELECT t.s||SUBSTR(s.s,3)
  FROM t,s
WHERE INSTR(t.s,SUBSTR(s.s,3))=0
       AND SUBSTR(t.s,-2)=SUBSTR(s.s,1,2)   ---------- 原来 -2 写成 2了
)
SELECT MAX(to_number(s)) FROM t;

再送给牛蛙一个章,给我发pm吧。

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
266#
发表于 2012-11-17 01:14 | 只看该作者
newkid 发表于 2012-11-8 05:06
#16 Faulty Product

In a factory every 5 products out of 100 are faulty. Samples from a randomly ...

最后一句你翻译得不对,估计是笔误,正确的应该是
注:实验室报告一个次品为次品的概率和报告一个正品为正品的概率都等于该实验室的准确率。

另外,你猜测得不对
这其实是两个独立概率事件,即从有5个次品的总共100个产品里随机选出两件产品,正品和次品的选出概率 和 两个实验室都报告一个产品为次品,则该产品的确为次品的概率。
二者概率之乘积的和即为最终概率(概率乘积的和,这个算法类似于excel中的sumproduct函数)

使用道具 举报

回复
论坛徽章:
520
奥运会纪念徽章:垒球
日期: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
267#
 楼主| 发表于 2012-11-17 01:23 | 只看该作者
lastwinner 发表于 2012-11-17 01:14
最后一句你翻译得不对,估计是笔误,正确的应该是
注:实验室报告一个次品为次品的概率和报告一个正品为 ...

确实,我翻译不到位,每次都一遍过也没有再检查。不过脑子里想的意思和你一个样
牛蛙的答案是正确的吗?

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
268#
发表于 2012-11-17 01:31 | 只看该作者
newkid 发表于 2012-11-17 01:23
确实,我翻译不到位,每次都一遍过也没有再检查。不过脑子里想的意思和你一个样
牛蛙的答案是正确的吗 ...

我正在计算中,请稍候……

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
269#
发表于 2012-11-17 01:53 | 只看该作者
从有5个次品的总共100个产品里面选出2个产品:
1/全为正品的概率:(100-5)/100*(100-5-1)*/99=90.202020%=89.3/99
2/有一个为正品的概率:2*(100-5)/100*5/99=9.595960%=9.3/99
3/两个全为次品的概率:5/100*(5-1)/99=0.202020%=0.2/99

而两个实验室都报告一个正品为次品的概率为(1-0.75)*(1-0.90)=1/40
将一个次品报告为次品的概率为
0.75*0.90=27/40
sumproduct一下,从有5个次品的总共100个产品里面选出2个产品,误报(即两个实验室都报告一个正品为次品的概率为)的概率为
89.3/99*1/40+4.75/99*1/40=2.375%

而报告为次品的产品确实为次品的概率为
4.75/99*27/40+0.2/99*27/40=4.95*27/(99*40)=3.375%


单纯去看 两个实验室都报告一个产品为次品这个事情,则确实报告正确的概率为
3.375%/(2.375%+3.375%)=3.375/5.75=58.696%=27/46

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
270#
发表于 2012-11-17 02:10 | 只看该作者
17#
任意三位的和都要是质数,而且任意三位的和最小为3,所以这三位要么都是三个奇数(O),要么就是两个偶数(E)一个奇数(O),要充分利用0~9这十个数字,那最多位必然是这样的数字组合:
OEEOEEOE (由于奇偶数都最多只有5个,所以只能是这样了)
如果有满足这样条件的数字组合,就很可能是最大的所求数了

正确答案上面已经有了,这俩是人肉出来的比较大的数字
98634012
98056214

使用道具 举报

回复

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

本版积分规则 发表回复

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