楼主: 〇〇

[精华] Puzzleup 2010 比赛快开始了,大家用SQL解答啊

[复制链接]
论坛徽章:
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
311#
发表于 2010-11-18 13:16 | 只看该作者
我来给个方法:
1~9,9个数,5奇4偶
从10开始,每10个数字构成一组,考察这组数
可以看到这组数奇偶各半,都是5个。末位数字的奇偶性决定了该数的奇偶性,所以末位数字也是奇偶各半
而该组数字有多少个数位是奇数?显然该组数中任意一个数除去个位后,剩余数位的奇数个数和乘以10再加上个位中有5个奇数,即是该组数字中奇数数位的个数和(汗,还是newkid翻译得准,我大半夜的眼睛都在打架了)

考察99及以内的数
1~9,9个数,数位5奇4偶
10~19,10个数,数位15奇5偶
20~29,10个数,数位5奇15偶
…………
90~99,10个数,数位15奇5偶
显然各组数的奇数数位个数都小于自身数的个数的2倍,究其原因,两位数中最多两个数字都是奇数,所以其不可能满足题设的奇数数位个数之和等于该组数个数的2倍
99*2=198,99及之内的数字奇数数位个数和为100,相差98

考察100~299之间的数
100~109,数位15奇15偶
110~119,数位25奇5偶
……
200~209,数位5奇25偶
210~219,数位15奇15偶
……

百位为奇数的,每20个数正好能自我平衡(即这20个数的奇数数位个数之和为其个数的2倍)
百位为偶数的,每20个数无法做到自我平衡,奇数数位个数和仅为其个数本身,小于其个数的2倍

百位数字上产生的缺口为
400*2=800

即999之内的数字,奇数数位个数之和比其个数的2倍少400+98=498

观察1000~2999,引用前面的结果
1000~1099,数位200奇200偶
1100~1199,数位300奇100偶      --由此开始,该组奇数数位个数之和超过了其个数的2倍

故而当达到1900~1999区间时,就会出现平衡
计算得出首次出现平衡的数为 1998
当累加到1999时,奇数数位个数之和超过了数字总个数的2倍,盈余为2
接下来就要找到一组数,使得盈余能亏下去后再实现平衡最后一直盈余,或者直接能使得这个盈余一直都大于0,那就能找到满足条件的最大的数了

继续观察2000~2999
2000~2099,数位100奇300偶
2100~2199,数位200奇200偶
……
可得出2000~2999,每200个数字能做到亏100
而在3000~3999,每200个数字能做到盈余100
所以2000~3999,实现了自我平衡
类推,得4000~5999、6000~7999、8000~9999都实现了自我平衡

于是从1~9999,奇数数位个数之和比数字个数的2倍多2,出于盈余的状态

观察10000~11999
10000~10099,数位200奇300偶   --总体实现了自我平衡
10100~10199,数位300奇200偶
……
11000~11099,数位350奇150偶
11100~11199,数位400奇100偶
可得出10000~11999,奇数数位个数和为1250*5=6250,比其个数的2倍:2000*2=4000,多出2250
12000~13999、14000~15999、……、18000~19999,每组数的盈余都是2250

考察20000~21999
20000~20099,数位100奇400偶
20100~20199,数位200奇300偶    --实现了自我平衡
……
21000~21099,数位250奇250偶
21100~21199,数位300奇200偶
可得出20000~21999,奇数数位个数和为850*5=4250,比其个数的2倍:2000*2=4000,多出250

单独考察20000~20099中带来最大盈余的数的范围20000~20098,其不足以平衡10000~19999带来的盈余,而其后又实现了自我平衡甚至盈余,故而最大的满足题设条件的数不会超过20000。


回过头来考察10000~11999,只有在10000~10099之间总体实现了自我平衡,从10100~10199开始就实现了盈余,其后不断重复自我平衡、盈余甚至更多盈余,因此最大的数不应超过10100
10000~10009,数位15奇,亏5
10010~10019,数位25奇,盈5  --至此,10000~10019实现自我平衡
……
只要在10000~10099范围内找到一个数,在其组内计算到其为止,能实现盈3,这样的数取最大,就是我们要求的数
10080~10089,数位15奇,亏5
10090~10096,数位17奇,盈3

10096就是所求

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
312#
发表于 2010-11-18 14:34 | 只看该作者
原帖由 费奇11 于 2010-11-17 10:53 发表



请问如何证明X=16时不会出现单色三角形?劳烦将理论证明方法(不要计算机暴力法,不要实践结果图)发我邮箱 liangyj1128@163.com,谢谢!



发给你了,一个判断公式,呵呵

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
313#
发表于 2010-11-18 14:36 | 只看该作者
原帖由 lastwinner 于 2010-11-18 13:16 发表
我来给个方法:
1~9,9个数,5奇4偶
从10开始,每10个数字构成一组,考察这组数
可以看到这组数奇偶各半,都是5个。末位数字的奇偶性决定了该数的奇偶性,所以末位数字也是奇偶各半
而该组数字有多少个数位是奇数?显然该组数中任意一个数除去个位后,剩余数位的奇数个数和乘以10再加上个位中有5个奇数,即是该组数字中奇数数位的个数和(汗,还是newkid翻译得准,我大半夜的眼睛都在打架了)

考察99及以内的数
1~9,9个数,数位5奇4偶
10~19,10个数,数位15奇5偶
20~29,10个数,数位5奇15偶
…………
90~99,10个数,数位15奇5偶
显然各组数的奇数数位个数都小于自身数的个数的2倍,究其原因,两位数中最多两个数字都是奇数,所以其不可能满足题设的奇数数位个数之和等于该组数个数的2倍
99*2=198,99及之内的数字奇数数位个数和为100,相差98

考察100~299之间的数
100~109,数位15奇15偶
110~119,数位25奇5偶
……
200~209,数位5奇25偶
210~219,数位15奇15偶
……

百位为奇数的,每20个数正好能自我平衡(即这20个数的奇数数位个数之和为其个数的2倍)
百位为偶数的,每20个数无法做到自我平衡,奇数数位个数和仅为其个数本身,小于其个数的2倍

百位数字上产生的缺口为
400*2=800

即999之内的数字,奇数数位个数之和比其个数的2倍少400+98=498

观察1000~2999,引用前面的结果
1000~1099,数位200奇200偶
1100~1199,数位300奇100偶      --由此开始,该组奇数数位个数之和超过了其个数的2倍

故而当达到1900~1999区间时,就会出现平衡
计算得出首次出现平衡的数为 1998
当累加到1999时,奇数数位个数之和超过了数字总个数的2倍,盈余为2
接下来就要找到一组数,使得盈余能亏下去后再实现平衡最后一直盈余,或者直接能使得这个盈余一直都大于0,那就能找到满足条件的最大的数了

继续观察2000~2999
2000~2099,数位100奇300偶
2100~2199,数位200奇200偶
……
可得出2000~2999,每200个数字能做到亏100
而在3000~3999,每200个数字能做到盈余100
所以2000~3999,实现了自我平衡
类推,得4000~5999、6000~7999、8000~9999都实现了自我平衡

于是从1~9999,奇数数位个数之和比数字个数的2倍多2,出于盈余的状态

观察10000~11999
10000~10099,数位200奇300偶   --总体实现了自我平衡
10100~10199,数位300奇200偶
……
11000~11099,数位350奇150偶
11100~11199,数位400奇100偶
可得出10000~11999,奇数数位个数和为1250*5=6250,比其个数的2倍:2000*2=4000,多出2250
12000~13999、14000~15999、……、18000~19999,每组数的盈余都是2250

考察20000~21999
20000~20099,数位100奇400偶
20100~20199,数位200奇300偶    --实现了自我平衡
……
21000~21099,数位250奇250偶
21100~21199,数位300奇200偶
可得出20000~21999,奇数数位个数和为850*5=4250,比其个数的2倍:2000*2=4000,多出250

单独考察20000~20099中带来最大盈余的数的范围20000~20098,其不足以平衡10000~19999带来的盈余,而其后又实现了自我平衡甚至盈余,故而最大的满足题设条件的数不会超过20000。


回过头来考察10000~11999,只有在10000~10099之间总体实现了自我平衡,从10100~10199开始就实现了盈余,其后不断重复自我平衡、盈余甚至更多盈余,因此最大的数不应超过10100
10000~10009,数位15奇,亏5
10010~10019,数位25奇,盈5  --至此,10000~10019实现自我平衡
……
只要在10000~10099范围内找到一个数,在其组内计算到其为止,能实现盈3,这样的数取最大,就是我们要求的数
10080~10089,数位15奇,亏5
10090~10096,数位17奇,盈3

10096就是所求



哈哈,鹦鹉哥教科书般的推理过程,赞!

使用道具 举报

回复
论坛徽章:
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
314#
发表于 2010-11-18 23:03 | 只看该作者
鹦鹉哥确实诲人不倦,奥数哥的答案总是那么简约,高深莫测。把X=16的证明贴出来吧?我看了前面的答案只是对X=17的否定。
那个“数位”的翻译是我随口胡诌的,一下子想不出有什么准确的表达。

使用道具 举报

回复
论坛徽章:
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
315#
发表于 2010-11-19 00:44 | 只看该作者
原帖由 newkid 于 10-11-18 23:03 发表
鹦鹉哥确实诲人不倦,奥数哥的答案总是那么简约,高深莫测。把X=16的证明贴出来吧?我看了前面的答案只是对X=17的否定。
那个“数位”的翻译是我随口胡诌的,一下子想不出有什么准确的表达。


X=17是否定的,X=16则可以得出肯定的
方法就是抽屉原则,不过证明过程会略有不同,但其实也是依葫芦画瓢就能出来的

使用道具 举报

回复
论坛徽章:
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
316#
发表于 2010-11-19 02:49 | 只看该作者
原帖由 lastwinner 于 2010-11-19 00:44 发表


X=17是否定的,X=16则可以得出肯定的
方法就是抽屉原则,不过证明过程会略有不同,但其实也是依葫芦画瓢就能出来的

抽屉原则用于证明有重复, 怎么证明不重复?

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
317#
发表于 2010-11-23 11:23 | 只看该作者
原帖由 newkid 于 2010-11-19 02:49 发表

抽屉原则用于证明有重复, 怎么证明不重复?



没明白,什么重复啊?

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
318#
发表于 2010-11-23 11:24 | 只看该作者
话说,是哪位好心人颁了枚徽章给我啊?^^

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
319#
发表于 2010-11-23 11:31 | 只看该作者
http://en.wikipedia.org/wiki/Ramsey%27s_theorem
看看这里吧,拉姆萨定理
16点的情况只有两种涂色法

使用道具 举报

回复
论坛徽章:
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
320#
发表于 2010-11-24 02:14 | 只看该作者
原帖由 nlrte13 于 2010-11-23 11:23 发表



没明白,什么重复啊?

颜色重复啊!这就导致X=17必定出现单色三角形。
徽章不是毛毛雨,不会自己从天上掉下来。你感谢国家吧。

使用道具 举报

回复

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

本版积分规则 发表回复

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