怎麼用程式把所有排列可能列出 - 拼圖

Victoria avatar
By Victoria
at 2003-11-08T18:07

Table of Contents

#include <stdio.h>

int num[20]; // 要印出的組合
int used[20]; // 某個數字是否使用過
int n; // 要印多少個數字

void lalala(int a){
int i;
if (a == n){
/* 這邊印出 num[] 這個陣列的結果 */
}
else {
for (i = 0 ; i < n ; i ++){
if (used[i] == 0){
num[a] = i;
used[i] = 1;
lalala(a + 1);
used[i] = 0;
}
}
}
}

int main(){
/* 這邊輸入 n ,讓n 等於你想要印 1 ~ n 的組合 */
lalala(0);
}
※ 引述《Manbot (manbot)》之銘言:
: 若有N個不同的東西
: 就會有N!不同的排列方法
: 那我們該怎麼用程式列出N!種的可能呢
: 就拿1-9九個數字當例子
: 9!種...要怎麼有效改變排列才能完成呢
: ---------------
: 想了好久都想不出來

--
人口壓力,請交給保險套解決
  不要交給戰爭、墮胎或疾病

--
Tags: 拼圖

All Comments

三人分果汁...

Vanessa avatar
By Vanessa
at 2003-08-17T02:34
兩個人分果汁的話 最公平的方法是 A分成2杯, B先選 那3個人分果汁的話 有沒有最公平的方法? (要考慮3人中可能會有人串通好的問題) -- 人口壓力,請交給保險套解決   不要交給戰爭、墮胎或疾病 - ...

一隻鳥的遊戲....

Edward Lewis avatar
By Edward Lewis
at 2003-08-09T21:07
http://www.abc.net.au/gameon/chasm/chasm.swf 有人知道水壩那裡怎麼過嗎? 我是先從左邊樓梯下來的 - ...

圓切線作圖題組

Brianna avatar
By Brianna
at 2003-08-09T10:07
已知:平面上一圓C及其圓心O,圓外一點P。 (1) 試用尺規作圖作出過點P且和圓C相切的兩條切線。 (2) 只用圓規,作出點P關於圓C的兩個切點。 (3) 只用直尺和筆,作出過點P且和圓C相切的兩條切線。 已知:平面上一圓C,圓外一點P。 (1) 試用尺規作圖作出過點P且和圓C相切的兩條切線。 (2) 只用 ...

1/2?

Una avatar
By Una
at 2003-08-01T16:58
如何用一個不良的銅板(但並不知道它正反面出現的機率各是多少) 來得到一個1/2(或者1/n)的機率呢.. 這樣以後又用銅板決定事情就不用擔心會不公平了^^ -- 即使人的腦袋變得簡單的足以被了解, 人們依舊將愚蠢的無法了解它. - ...

一懸宕多年的難題 (看似簡單,其實大有文章…)

Christine avatar
By Christine
at 2003-07-28T09:56
這一題是我們學校一位老師提出來的 期間有不少同學試著去解 但都沒有人能提出一個完整、正確的答案 不知各位有沒有什麼看法? 兩個1到50之間的正整數(大於1,小於50) A知道它們的和 B知道它們的積 A說:「我不知道這兩個數是什麼」 B說:「我知道你不知道這兩個數是什麼,而且我也不知道這兩個數是什麼」 A說 ...