日韩性视频-久久久蜜桃-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电影在线观看不卡 | 三级特黄视频 | 亚洲超碰在线观看 | 伊人久久大香线蕉av一区 | 免费av动漫 | 日本xx视频免费观看 | 无码专区久久综合久中文字幕 | 成人动漫视频在线观看 | 欧美日本中文字幕 | 丰满岳乱妇国产精品一区 | 欧美特级黄 | 香蕉久久久久 | 已满18岁免费观看电视连续剧 | 久久亚洲免费 | 亚洲av无码一区二区三区在线播放 | 金瓶风月在线 | 中文字幕在线2021 | 少妇熟女视频一区二区三区 | 无遮挡无掩盖网站 | 久久久精品视频一区 | 大奶子在线观看 | 中文字幕一区二区在线观看视频 | 91麻豆精品91久久久久同性 | 国产精品50页 | www.中文字幕.com| 自拍毛片 | 国产夫妻视频 | 在线观看黄色大片 | 亚洲一区二区国产精品 | 自拍第一区 | 国产嫩草在线 | 一级aa毛片 | 中文字幕久久熟女蜜桃 | 日韩精品 欧美 | 狠狠插狠狠操 | 国产激情一区二区三区视频免樱桃 | 亚洲精品成人片在线观看精品字幕 | 久久97视频 | 中文字幕国产在线 | 欧美专区在线观看 | 欧美色拍 | 在线观看日本网站 | 色婷婷精品视频 | 亚洲欧美国产高清 | 日日夜夜狠狠爱 | 日本囗交做爰视频 | 精品动漫一区二区三区 | 少妇精品一区二区 | 91成人在线播放 | 亚洲男人天堂 | www日韩在线| 少妇逼逼| 夜夜嗨av色一区二区不卡 | 日韩欧美综合视频 | a级片视频网站 | 亚洲美女视频网 | 色诱av手机版 | 潘金莲裸体一级淫片视频 | 欧美亚洲另类视频 | 美国成人av| 亚洲一区二区三区在线观看视频 | 久久精品亚洲 | 美女被男人c | 五月天色综合 | 亚洲精品一区二区在线 | 想要视频在线 | 欧美日韩高清一区二区三区 | 色吟av| 五月天福利视频 | 免费在线观看日韩av | 四虎影院在线免费播放 | www免费网站在线观看 | 天天干天天干天天操 | 少妇做爰免费视看片 | 无码人妻丰满熟妇区毛片蜜桃精品 | 丁香花在线影院观看在线播放 | 黄色免费国产 | 亚洲黄色av网站 | 自拍偷拍色图 | 国产麻豆乱码精品一区二区三区 | 91久久电影| 欧美一区亚洲 | 欧美人与性动交ccoo | 午夜影院一区二区三区 | 一级黄色片在线 | 人体裸体bbbbb欣赏 | 色网站女女 | 欧美性色网| 国产成人三级在线观看 | 热久久精品 | 欧美 丝袜 自拍 制服 另类 | 国产三级在线免费观看 | 国产美女永久免费无遮挡 | 亚洲超丰满肉感bbw 悠悠av | 美女扒开尿口来摸 | 99热国产| 亚洲成人av网址 | 色视频导航 | 最近免费中文字幕大全免费版视频 |