素數環問題 回溯法

2021-09-11 15:19:48 字數 376 閱讀 9117

素數環是乙個電腦程式問題,指的是將從1到n這n個整數圍成乙個圓環,若其中任意2個相鄰的數字相加,結果均為素數,那麼這個環就成為素數環。

現在要求輸入乙個n,求n個數圍成一圈有多少種素數環,規定第乙個數字是1。

#include#includeusing namespace std;

int n=0;

int a[100]; //對應環

int visit[100]; //標記陣列 0表示未用 1表示已用

int check(int k) //判斷數字x是否為整數

void dfs(int step)

此類回溯問題與八皇后 哈密頓迴路問題等都大同小異

素數環問題 回溯法

素數環是乙個電腦程式問題,指的是將從1到n這n個整數圍成乙個圓環,若其中任意2個相鄰的數字相加,結果均為素數,那麼這個環就成為素數環。現在要求輸入乙個n,求n個數圍成一圈有多少種素數環,規定第乙個數字是1。分析 準備 num紀錄素數環個數 將結果放入快取陣列a,a i 代表第i個資料 設定visit...

素數環問題(回溯)

素數環問題描述 問題描述 將從1到n這n個整數圍成乙個圓環,若其中任意2個相鄰的數字相加,結果均為素數,那麼這個環就成為素數環。注 第1個位置恒為1 include includeint n 環內元素個數 int p 10 p i 表示第i個位置的元素 p 1 1 第1個位置恒為1 int hash...

回溯解決素數環問題

素數環是乙個電腦程式問題,指的是將從1到n這n個整數圍成乙個圓環,若其中任意2個相鄰的數字相加,結果均為素數 我們可以根據問題建成乙個根節點為1深度為n的n叉數。通過對解空間的進行回溯剪枝 條件就是相鄰兩元素和為素數以及是否重複使用 就可以得到所有解。public class primering p...