亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL數據庫編程大賽(第一期)

系統 2581 0

本期題目:5X5方格棋盤難題
SQL數據庫編程大賽(第一期)
在5X5的方格棋盤中(如圖),每行、列、斜線(斜線不僅僅包括對角線)最多可以放兩個球,如何擺放才能放置最多的球,這樣的擺法總共有幾種?輸出所有的擺法。
要求: 用一句SQL實現。
輸出格式: 從方格棋盤第一行至第5行,每行從第一列到第5列依次輸出,0表示不放球,1表示放球。例如:1001000000000000000000000。一行輸出一個行號和一個解,按解所在的列字符串順序從大到小排序。

數據庫平臺: 適用Oracle、MS SQL Sever,版本(Oracle推薦10gr2(包含)以上版本、MS SQL Sever推薦2008版本)

原文見: http://www.itpub.net/thread-1400067-1-1.html

參賽者答案: http://www.itpub.net/thread-1407072-1-1.html

我提交的答案:

解題思路:

1、先將每行可以放2個棋子的排列組合全部列出,用union all生成記錄集。

2、用笛卡爾連接5個表,生成所有行滿足要求的排列組合(第行2個棋子)。

3、去除列和斜邊不滿足要求的記錄。

評委意見:

思路和代碼簡明,結果排序正確,性能良好,寫法直截了當,但未說明最大值=10的依據。既然已經預設了每行各有兩個球,可以推斷每列有且僅有兩個球,下面的列判斷可以改進為=2而不是<=2。

個人分析:

1、每行都肯定有2個棋子的假定是比較武斷的,扣分是應該的,除非自己先用算法或數學方法證明(應該可以證明,但我還不會)。

2、枚舉每行都有2個棋子的代碼比較難看,擴展性不好,可以改進(第二期改進了)。

3、用笛卡爾連接5個表,假如有行數不是5則需要修改SQL,擴展性不好。

4、SQL整體性能不錯,相對其他人的代碼簡單易懂。

5、沒有注釋,主要原因是自己認為代碼邏輯較簡單,評委肯定能看懂,最后還是被扣分了。

由于以上原因最后得分很低,我最喜歡是第3名(TK)的答題,大家有興趣可以看看。

SQL數據庫編程大賽(第一期)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91成人午夜精品福利院在线观看 | 美国毛片一级视频在线aa | 午夜香蕉网 | 久久精品国语 | 在线观看免费视频a | 99色影院| 就要爱综合 | 老司机深夜影院入口aaaa | 欧美一级成人毛片影院 | 九九精彩视频在线观看视频 | 日韩精品亚洲一级在线观看 | 日日拍夜夜嗷嗷叫狠狠 | 再猛点深使劲爽日本免费视频 | 色狠狠一区二区 | 在线观看视频99 | 天天干天天拍天天操 | 色偷偷久久一区二区三区 | 亚洲国产小视频 | 亚洲视频欧洲视频 | 国产免费不卡 | 成 人 黄 色 大 片 | 午夜噜噜噜私人影院在线播放 | 国产美女久久久久久久久久久 | 欧美夜夜骑 | 在线观看欧美视频 | 变态捡到女婴h养成调教 | 久久久婷婷 | 曰本不卡视频 | 亚州精品视频 | 久久精品视频免费观看 | 久久机热一这里只精品 | 亚洲不卡一区二区三区在线 | 国产欧美精品专区一区二区 | 欧美成人精品在线 | 日韩毛片在线影视 | 天天综合天天添夜夜添狠狠添 | 亚洲欧美中文字幕高清在线一 | 日日摸夜夜夜夜夜添 | h片在线看 | 四虎在线网站 | 亚洲一区二区精品推荐 |