楼主: newkid

PUZZLEUP 2014

[复制链接]
论坛徽章:
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
211#
发表于 2014-9-20 10:23 | 只看该作者
〇〇 发表于 2014-9-20 10:13
前几项
SQL> create table n as select level l from dual connect by level select count(*) from n wh ...

3位数包含11的有9*2个(前面和后面各9),减去重复的111,加上多出的222,是18个

使用道具 举报

回复
论坛徽章:
737
季节之章:春
日期:2015-07-31 17:16:29ITPUB季度 技术新星
日期:2014-07-17 14:37:00季节之章:秋
日期:2015-07-31 17:16:14季节之章:夏
日期:2015-07-31 17:16:29股神
日期:2014-10-15 09:23:31衰神
日期:2014-10-20 22:47:12季节之章:冬
日期:2015-07-31 17:16:14红钻
日期:2014-12-16 17:51:41洛杉矶湖人
日期:2016-09-23 08:18:15布鲁克林篮网
日期:2016-09-23 08:17:18
212#
发表于 2014-9-20 19:26 | 只看该作者
本帖最后由 oracle_cj 于 2014-9-20 20:54 编辑

之前做的有点问题,我把之前的帖子删了,下面这个对不对?
不考虑0的情况

SELECT power(9,10)---总数
       -
      (
       1+--排除9,与9个9矛盾的就是10个9,只有一个
       1+8+8+--排除8,与8个8矛盾的是10个8(1个)和8个8(16个)
       1+8+8+2*8*8+8*8+--排除7---以此类推
       1+8+8+2*8*8+8*8+3*8*power(8,2)+power(8,3)+--排除6
       1+8+8+2*8*8+8*8+3*8*power(8,2)+power(8,3)+4*8*power(8,3)+power(8,4)+--排除5
       1+8+8+2*8*8+8*8+3*8*power(8,2)+power(8,3)+4*8*power(8,3)+power(8,4)+5*8*power(8,4)+power(8,5)+--排除4
       1+8+8+2*8*8+8*8+3*8*power(8,2)+power(8,3)+4*8*power(8,3)+power(8,4)+5*8*power(8,4)+power(8,5)+6*8*power(8,5)+power(8,6)+--排除3
       1+8+8+2*8*8+8*8+3*8*power(8,2)+power(8,3)+4*8*power(8,3)+power(8,4)+5*8*power(8,4)+power(8,5)+6*8*power(8,5)+power(8,6)+7*8*power(8,6)+power(8,7)+--排除2
       1+8+8+2*8*8+8*8+3*8*power(8,2)+power(8,3)+4*8*power(8,3)+power(8,4)+5*8*power(8,4)+power(8,5)+6*8*power(8,5)+power(8,6)+7*8*power(8,6)+power(8,7)+8*8*power(8,7)+power(8,8)--排除1
      )
      FROM dual;
结果是:3295827400


使用道具 举报

回复
论坛徽章:
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
213#
发表于 2014-9-20 20:23 来自手机 | 只看该作者
可以用位数少的验证

使用道具 举报

回复
论坛徽章:
737
季节之章:春
日期:2015-07-31 17:16:29ITPUB季度 技术新星
日期:2014-07-17 14:37:00季节之章:秋
日期:2015-07-31 17:16:14季节之章:夏
日期:2015-07-31 17:16:29股神
日期:2014-10-15 09:23:31衰神
日期:2014-10-20 22:47:12季节之章:冬
日期:2015-07-31 17:16:14红钻
日期:2014-12-16 17:51:41洛杉矶湖人
日期:2016-09-23 08:18:15布鲁克林篮网
日期:2016-09-23 08:17:18
214#
发表于 2014-9-20 20:37 | 只看该作者
〇〇 发表于 2014-9-20 20:23
可以用位数少的验证

看了peter的解释,有个小小的疑问,三位的时候最大的一个,999还是333

使用道具 举报

回复
论坛徽章:
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
215#
发表于 2014-9-21 07:25 | 只看该作者
oracle_cj 发表于 2014-9-20 20:37
看了peter的解释,有个小小的疑问,三位的时候最大的一个,999还是333

都验证

使用道具 举报

回复
论坛徽章:
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
216#
 楼主| 发表于 2014-9-21 09:58 | 只看该作者
oracle_cj 发表于 2014-9-20 19:26
之前做的有点问题,我把之前的帖子删了,下面这个对不对?
不考虑0的情况

1+8+8+2*8*8+8*8+--排除7 ---------这个是什么意思?
10个7:1
9个7:8+8
8个7: 2*8*9 + 8*8
如果中间有隔开,7可以再次出现,比如 7777777717 所以应该是2*8*9
你没有考虑交叉情况。比如 7777777711这里面也包含了1的违规情况。

使用道具 举报

回复
论坛徽章:
737
季节之章:春
日期:2015-07-31 17:16:29ITPUB季度 技术新星
日期:2014-07-17 14:37:00季节之章:秋
日期:2015-07-31 17:16:14季节之章:夏
日期:2015-07-31 17:16:29股神
日期:2014-10-15 09:23:31衰神
日期:2014-10-20 22:47:12季节之章:冬
日期:2015-07-31 17:16:14红钻
日期:2014-12-16 17:51:41洛杉矶湖人
日期:2016-09-23 08:18:15布鲁克林篮网
日期:2016-09-23 08:17:18
217#
发表于 2014-9-21 10:44 | 只看该作者
newkid 发表于 2014-9-21 09:58
1+8+8+2*8*8+8*8+--排除7 ---------这个是什么意思?
10个7:1
9个7:8+8

是奥,没考虑清楚,晚上回来我再整理下

使用道具 举报

回复
论坛徽章:
94
生肖徽章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
218#
发表于 2014-9-23 15:51 | 只看该作者
newkid 发表于 2014-9-20 02:42
有没有聪明的人肉办法算出来?

第八题,sql版本的
bill@ORCL> with b as (
  2  select level lv from dual connect by level<=9),
  3  t1 (str) as (
  4  select rpad(lv, level, lv)
  5  from    b
  6  connect by level<=lv and prior lv=lv and prior dbms_random.value()>0
  7  ),
  8  t as (
  9  select * from t1 where length(str)<=5
10  ),
11  r (str) as (
12  select  str
13  from    t
14  union all
15  select  r.str||t.str
16  from    t, r
17  where   substr(r.str, -1, 1)!=substr(t.str, 1, 1)
18  and     length(r.str||t.str)<=5
19  ),
20  r2 as (
21  select  str, substr(str, -1) trail, 5-nvl(length(rtrim(str, substr(str, -1))), 0) len
22  from    r
23  where   length(str)=5
24  ),
25  r3 as (
26  select  str, substr(str, 1, 1) lead, 5-nvl(length(ltrim(str, substr(str, 1, 1))), 0) len
27  from    r
28  where   length(str)=5
29  )
30  select  56143*56143-count(*)
31  from    r2, r3
32  where   r2.trail=r3.lead
33  and     r2.len+r3.len>r2.trail;

56143*56143-COUNT(*)
--------------------
          3110771999

Elapsed: 00:08:13.69

56143就是select count(*) from r

至于公式版,比较烦,推不出来,不过比较接近于power(9, n)-(n-1)*power(9, n-2),巧合的是前4项都是符合的

使用道具 举报

回复
论坛徽章:
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
219#
发表于 2014-9-23 16:00 | 只看该作者
udfrog 发表于 2014-9-23 15:51
第八题,sql版本的
bill@ORCL> with b as (
  2  select level lv from dual connect by level

nice

使用道具 举报

回复
论坛徽章:
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
220#
发表于 2014-9-23 16:04 | 只看该作者
udfrog 发表于 2014-9-23 15:51
第八题,sql版本的
bill@ORCL> with b as (
  2  select level lv from dual connect by level

用pl/sql应该更快吧

使用道具 举报

回复

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

本版积分规则 发表回复

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