日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

构造数独 算法及代码实现

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 构造数独 算法及代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

子標題: 編程之美1.15——構造數獨?
轉載信息:?http://blog.csdn.net/linyunzju/article/details/7673959

?

問題:

構造一個9*9的方格矩陣,玩家要在每個方格中,分別填上1至9的任意一個數字,
讓整個棋盤每一列、每一行以及每一個3*3的小矩陣中的數字都不重復。

?

首先我們通過一個深度優先搜索來生成一個可行解,然后隨機刪除一定數量的數字,
以生成一個數獨。

?

  • #include<iostream> ?
  • #include<cstdlib> ?
  • usingnamespace std; ?
  • ?
  • #define LEN 9 ?
  • #define CLEAR(a) memset((a),0,sizeof(a)) ?
  • ?
  • int level[]={30,37,45}; ?
  • ?
  • int grid[LEN+1][LEN+1]; ?
  • int value[LEN+1]; ?
  • ?
  • voidnext(int&x,int&y) ?
  • { ?
  • ? ? x++; ?
  • ? ? if(x>9) ?
  • ? ? { ?
  • ? ? ? ? x =1; ?
  • ? ? ? ? y++; ?
  • ? ? } ?
  • } ?
  • ?
  • // 選擇下一個有效狀態 ?
  • int pickNextValidValue(int x,int y,int cur) ?
  • { ?
  • ? ? CLEAR(value); ?
  • ? ? int i, j; ?
  • ? ? for(i=1; i<y; i++) ?
  • ? ? ? ? value[grid[i][x]]=1; ?
  • ? ? for(j=1; j<x; j++) ?
  • ? ? ? ? value[grid[y][j]]=1; ?
  • ? ? int u =(x-1)/3*3+1; ?
  • ? ? int v =(y-1)/3*3+1; ?
  • ? ? for(i=v; i<v+3; i++) ?
  • ? ? ? ? for(j=u; j<u+3; j++) ?
  • ? ? ? ? { ?
  • ? ? ? ? ? ? value[grid[i][j]]=1; ?
  • ? ? ? ? } ?
  • ? ? for(i=cur+1; i<=LEN && value[i]; i++); ?
  • ? ? return i; ?
  • } ?
  • ?
  • void pre(int&x,int&y) ?
  • { ?
  • ? ? x--; ?
  • ? ? if(x<1) ?
  • ? ? { ?
  • ? ? ? ? x =9; ?
  • ? ? ? ? y--; ?
  • ? ? } ?
  • } ?
  • ?
  • int times =0; ?
  • ?
  • int main() ?
  • { ?
  • ? ? int x, y, i, j; ?
  • ? ? x = y =1; ?
  • ? ? // 深度搜索的迭代算法 ?
  • ? ? while(true) ?
  • ? ? { ?
  • ? ? ? ? times++; ?
  • ? ? ? ? // 滿足成功結果 ?
  • ? ? ? ? if(y==LEN && x==LEN) ?
  • ? ? ? ? { ?
  • ? ? ? ? ? ? for(i=1; i<=LEN; i++) ?
  • ? ? ? ? ? ? { ?
  • ? ? ? ? ? ? ? ? for(j=1; j<=LEN; j++) ?
  • ? ? ? ? ? ? ? ? ? ? cout << grid[i][j]<<" "; ?
  • ? ? ? ? ? ? ? ? cout << endl; ?
  • ? ? ? ? ? ? } ?
  • ? ? ? ? ? ? cout << times << endl; ?
  • ? ? ? ? ? ? break; ?
  • ? ? ? ? ? ? //pre(x, y); ?
  • ? ? ? ? ? ? //times = 0; ?
  • ? ? ? ? } ?
  • ? ? ? ? // 滿足失敗結果 ?
  • ? ? ? ? if(y==0) ?
  • ? ? ? ? ? ? break; ?
  • ? ? ? ? // 改變狀態 ?
  • ? ? ? ? grid[y][x]= pickNextValidValue(x, y, grid[y][x]); ?
  • ? ? ? ? if(grid[y][x]> LEN) ?
  • ? ? ? ? { ?
  • ? ? ? ? ? ? // 恢復狀態 ?
  • ? ? ? ? ? ? grid[y][x]=0; ?
  • ? ? ? ? ? ? pre(x, y); ?
  • ? ? ? ? } ?
  • ? ? ? ? else ?
  • ? ? ? ? ? ? // 進一步搜索 ?
  • ? ? ? ? ? ? next(x,y); ?
  • ? ? } ?
  • ? ? for(i=1; i<= level[2]; i++) ?
  • ? ? { ?
  • ? ? ? ? int ind = rand()%(LEN*LEN); ?
  • ? ? ? ? grid[ind/LEN+1][ind%LEN]=0; ?
  • ? ? } ?
  • ? ? for(i=1; i<=LEN; i++) ?
  • ? ? { ?
  • ? ? ? ? for(j=1; j<=LEN; j++) ?
  • ? ? ? ? ? ? cout << grid[i][j]<<" "; ?
  • ? ? ? ? cout << endl; ?
  • ? ? } ?
  • } ?
  • 轉載于:https://www.cnblogs.com/mfryf/archive/2012/08/11/2633746.html

    總結

    以上是生活随笔為你收集整理的构造数独 算法及代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: av无码一区二区三区 | 在线观看欧美一区二区三区 | 日韩视频 中文字幕 | 韩国三级做爰视频 | 欧美精品xxx | 欧美人日b | 国产精品美女久久久 | 国产午夜精品理论片在线 | 久久天堂影院 | 亚洲精品一区二区三区蜜桃 | 一级做a爰片久久毛片 | 免费看的av网站 | 91插插插视频| 日韩成人影视 | 中文在线免费看视频 | 国产a∨精品一区二区三区仙踪林 | 992在线观看 | 色图网址 | 麻豆视频免费在线观看 | 色综合网址 | 亚洲色图13p| 亚洲理论片 | 草比网站 | 亚洲AV无码久久精品色三人行 | 日韩在线视频网站 | 黄色片免费的 | 啪啪天堂 | 亚洲国产天堂 | 一级黄色欧美 | 麻豆一区二区在线观看 | 国产精品污视频 | 爱啪啪导航 | 久久与婷婷 | 青草福利视频 | 亚洲iv一区二区三区 | 国产中文字幕久久 | 欧美不卡一区二区 | 在线观看av国产一区二区 | 日本一区二区三区视频免费看 | 亚洲videos| 久久网免费视频 | 台湾三级伦理片 | 调教亲女小嫩苞h文小说 | 亚洲天堂社区 | 欧美日韩在线视频一区二区三区 | 91玉足脚交嫩脚丫在线播放 | 国偷自产视频一区二区久 | 成人免费毛片高清视频 | 玖草在线观看 | 亚洲天堂色图 | 亚洲欧美bt| 国产福利不卡 | 黄色1级视频 | 免费毛片播放 | 狠狠躁狠狠躁视频专区 | 欧美日韩系列 | 波多野结衣福利 | 免费看色 | 91亚洲国产成人精品一区二三 | www国产亚洲精品久久麻豆 | 精品国产一区二区三区噜噜噜 | 黄色片视频免费 | 成年网站在线播放 | 国产又粗又猛又爽又黄无遮挡 | 超碰人人艹 | 少妇高潮一区二区三区四区 | 不许穿内裤随时挨c调教h苏绵 | 日本一区二区高清视频 | 亚洲自拍偷拍一区二区三区 | 久草精品在线观看 | 曰女同女同中文字幕 | 欧美重口另类 | 久久在线免费视频 | 欧美日韩在线观看免费 | 18成人免费观看网站下载 | 国产一区二区三区视频播放 | 一级草逼片 | 少妇人妻真实偷人精品视频 | 91系列在线观看 | 中文字幕一区二区在线老色批影视 | 婷婷伊人综合中文字幕 | 成人黄色三级视频 | 国产午夜福利一区 | 色wwwwww| 欧美国产视频 | 可以直接在线观看的av | 中文字幕一区二区三区四区 | 在线免费看av片 | 欧美成人国产精品一区二区 | 黑人添美女bbb添高潮了 | 欧美一区二区三区视频在线观看 | 国产精品美女久久久久av超清 | 国产56页| 欧美一及片 | 亚州一级| 午夜生活片 | 国产欧美日韩免费 | 亚洲成人二区 | 亚洲成人伦理 |