由約瑟夫環報數出局演算法串聯字串啟發起
static string 金箍(int 陣列, int 量, int 起位, int 間隔)
while (量 > ++數);
return 輸出;
}int aa = ;
console.writeline("", 金箍(aa, 4, 0, 1));
int 起 = 0, 隔 = 1, 量 = 0;
list金箍咒 = new list();
do; 量 = aa.count();
//金箍咒.add(金箍(aa, 量, 起, 隔++));
//if (隔 > 量)
console.writeline("", 金箍(aa, 量, 起, 隔++));
if (隔 >= 量)
} while (起 < 量);
"", string.join("\n\r", 金箍咒));
"----");
"", string.join("\n\r", 金箍咒.distinct()));
「金箍」系列下標取值組合演算法:
static string 金箍(int 陣列, int 量, int 起位, int 間隔)
while (量 > ++數);
return 輸出;
}
int aa = ;
int 起 = 0, 隔 = 1, 量 = aa.count();
do", 金箍(aa, 量, 起, 隔++));
if (隔 >= 量)
} while (起 < 量);
static string 金箍(string 字串, int 量, int 起位, int 間隔)
while (量 > ++數);
return 輸出;
}
static string 對換(string 字串, int 量)
while ((數 += 2) < 量);
return 輸出;
}
static string 金箍換(string 字串, int 量, int 起位)
else if (數 > 起位)
輸出 += 字串[數++ % 量].tostring();
} while (數 < 量);
return 輸出;
}
修改為可按指定位置交換的演算法:
static string 金箍換(string 字串, int 量, int 起位, int 間隔)
else if (數 == 起位)
while (++計 < 間隔);
}輸出 += 字串[數].tostring();
數 += 2 + 間隔;
}else if (數 > 起位)
輸出 += 字串[數++ % 量].tostring();
} while (數 < 量);
return 輸出;
}
console.write(金箍換("123456", 6, 4, 3));
「金箍咒」我的全排列組合演算法設計演化之三無限巢狀
迴圈巢狀是非常常用的,之前已經發布寫過雙迴圈巢狀的控制變數變形巢狀,在此基礎上,演化出無限巢狀演算法 string 字串 123456789 int 量 字串.length,跟 0,定 3,巢狀量 量 定 int 無限巢狀 enumerable.range 定,巢狀量 toarray do 跟 if...
C 全排列組合演算法
題目描述 給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入描述 輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。輸出描述 輸出這個字串的所有排列方式,每行乙個排列。...
高效率的排列組合演算法
組合演算法 本程式的思路是開乙個陣列,其下標表示1到m個數,陣列元素的值為1表示其下標 代表的數被選中,為0則沒選中。首先初始化,將陣列前n個元素置1,表示第乙個組合為前n個數。然後從左到右掃瞄陣列元素值的 10 組合,找到第乙個 10 組合後將其變為 01 組合,同時將其左邊的所有 1 全部移動到...