楼主: newkid

[每日一题] PUZZLEUP 2017

[复制链接]
论坛徽章:
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
251#
发表于 2017-11-24 08:53 | 只看该作者
〇〇 发表于 2017-11-24 08:50
是的,小数还必须>11111,因为11111*88888是9位数

这个也对。

使用道具 举报

回复
论坛徽章:
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
252#
发表于 2017-11-24 09:00 | 只看该作者
newkid 发表于 2017-11-23 22:36
这个用SPATIAL的方法倒是比较新奇。
但是DIY也不难,这有个线段交叉判断的算法:
https://segmentfault ...

spatial 的 sdo_anyinteract或sdo_relate 判断是否相交,可以是任何点,线,面,甚至3D的点,线,面或体
spatial在数据库中就是对应与那个MDSYS用户模式

使用道具 举报

回复
论坛徽章:
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
253#
发表于 2017-11-24 13:37 | 只看该作者
solomon_007 发表于 2017-11-24 09:00
spatial 的 sdo_anyinteract或sdo_relate 判断是否相交,可以是任何点,线,面,甚至3D的点,线,面或体
...

找到了中文文档
http://book.51cto.com/art/200910/157414.htm

使用道具 举报

回复
论坛徽章:
8
玉兔
日期:2015-11-16 10:18:00铁扇公主
日期:2015-10-27 21:47:42九尾狐狸
日期:2015-12-11 22:31:15
254#
发表于 2017-11-24 14:16 | 只看该作者
本帖最后由 lugionline 于 2017-11-25 07:52 编辑

好像没问题

使用道具 举报

回复
论坛徽章:
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
255#
 楼主| 发表于 2017-11-24 22:22 | 只看该作者

为什么你的图形个数不是178?

使用道具 举报

回复
论坛徽章:
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
256#
 楼主| 发表于 2017-11-24 22:25 | 只看该作者
给猫咪转了个章,顺便贴下我的SQL:

with c as ( ---- 9个点及其坐标
select x,y,rownum cid
  from (select level x from dual connect by level<=3)
      ,(select level y from dual connect by level<=3)
)
,m as ( ----- 两两的点构成的线段, 两个端点命名为A和B
select c1.x A_x,c1.y A_y,c2.x B_x,c2.y B_y
      ,c1.cid||c2.cid mid
  from c c1,c c2
WHERE c1.cid<c2.cid
)
,crossing AS ( ----- 所有交叉的成对线段
SELECT m1.mid cr1,m2.mid cr2
  FROM m m1,
       (SELECT mid,A_x C_x,A_y C_y,B_x D_x,B_y D_y FROM m) m2 ---- 第一个线段AB,第二个线段改名CD, 方便套用算法
WHERE m1.mid<>m2.mid
       AND ((C_x-A_x)*(D_y-A_y)-(D_x-A_x)*(C_y-A_y))*((C_x-B_x)*(D_y-B_y)-(D_x-B_x)*(C_y-B_y))<=0
       AND ((A_x-C_x)*(B_y-C_y)-(B_x-C_x)*(A_y-C_y))*((A_x-D_x)*(B_y-D_y)-(B_x-D_x)*(A_y-D_y))<=0
)
,tr AS ( ---- 所有三角形及其三条边
SELECT c1.cid||c2.cid||c3.cid as tid
      ,c1.cid||c2.cid mid1
      ,c1.cid||c3.cid mid2
      ,c2.cid||c3.cid mid3
  FROM c c1,c c2,c c3
WHERE c1.cid<c2.cid
       AND c2.cid<c3.cid
       AND (c2.y-c1.y)*(c3.x-c1.x)<>(c3.y-c1.y)*(c2.x-c1.x)
)
,trm AS ( ---- 每个三角形拆成三行,一条边一行
SELECT tid,DECODE(n,1,mid1,2,mid2,3,mid3) mid
  FROM tr,(SELECT LEVEL n FROM DUAL CONNECT BY LEVEL<=3)
)
,ctrm AS (---所有交叉或触碰的成对三角形
SELECT DISTINCT trm1.tid tid1,trm2.tid tid2
  FROM trm trm1,trm trm2,crossing
WHERE trm1.tid<trm2.tid
       AND trm1.mid=crossing.cr1
       AND trm2.mid=crossing.cr2
)
SELECT tr1.tid tid1,tr2.tid tid2
  FROM tr tr1,tr tr2         
WHERE tr1.tid<tr2.tid
MINUS
SELECT tid1,tid2 FROM ctrm
;
      

178 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
257#
发表于 2017-11-25 05:56 来自手机 | 只看该作者
学习  

使用道具 举报

回复
论坛徽章:
8
玉兔
日期:2015-11-16 10:18:00铁扇公主
日期:2015-10-27 21:47:42九尾狐狸
日期:2015-12-11 22:31:15
258#
发表于 2017-11-25 07:53 | 只看该作者
本帖最后由 lugionline 于 2017-11-25 08:45 编辑
newkid 发表于 2017-11-24 22:22
为什么你的图形个数不是178?

哦,有几个被截掉了,已更新

算算看,旋转翻转当作重复的去掉后有多少种呢?

使用道具 举报

回复
论坛徽章:
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
259#
 楼主| 发表于 2017-11-26 09:21 | 只看该作者
lugionline 发表于 2017-11-25 07:53
哦,有几个被截掉了,已更新

算算看,旋转翻转当作重复的去掉后有多少种呢?

这个容易,就用OO发明的TRANSLATE**。下周有空我来改一下。

使用道具 举报

回复
论坛徽章:
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
260#
 楼主| 发表于 2017-11-28 05:34 | 只看该作者
lugionline 发表于 2017-11-25 07:53
哦,有几个被截掉了,已更新

算算看,旋转翻转当作重复的去掉后有多少种呢?

SQL算出来47种,你答案多少?
上面那贴本来是有 DA FA两个字,被敏感的论坛替换成了**

使用道具 举报

回复

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

本版积分规则 发表回复

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