隨機排列組合的輸出

2021-09-21 00:15:29 字數 908 閱讀 9720

在演算法的書本上描述了這樣的乙個問題:有3個白球,4個黑球,5個藍球,請輸出一共有多少種組合,與此同時,輸出每一種組合的方式。這個問題,我一直都在思考,雖然我知道早已經有了答案。遞迴總是讓我知道自己的蹩腳的邏輯。我的倔強的脾氣讓我一直都在研究,到底應該如何寫這個遞迴的方程式。今天晚上寫了乙個模糊的演算法,還只是乙個不能實現的雛形。

隨機排列組合:  m個紅球 , n個白球, l個藍球

遞迴的函式如下:

int list(m,n,l)

if(n>1)

if(l>1)

以下是乙個希望能夠獲得啟發的例子,但是暫時還沒有任何的啟發:

例項目標:

設有字母a.b,c,程式設計用遞迴的方法產生有這些字元組成的且長度為n的字串,例如輸入n=2,則輸出:aa,ab,ac,bb,bc,ca,cb,cc,這是函式遞迴呼叫的又一例項。

實現方法:

對於長度為n的字串,可以認為先寫乙個字元,然後生成n-1的字串,那麼組合在一起就形成於乙個長度為n的字串

程式**如下:

#include

#include

#include

#define size 10    //臨時陣列的大小,其值一定要大於n

void full(char* p,int n,char* s,int m)}}

void main()

錯誤的:

#include

using

namespace

std;#include

intmerge(strings,int

a,int

b,int

c)if(b!=0)

if(c!=0)

if((a==0)&&(b==0)&&(c==0))

}int

main()

排列組合輸出

給定n個數,輸出他們所有排列組合情況。題目比較簡單,直接說思路。每乙個位置的數字都有n種出現情況,如果用陣列來儲存這n個數字,那麼固定其中乙個位置,不斷交換它與其他位置的數字,這能保證這個位置取到n種情況。基於此思想,我們可以用遞迴來或者迴圈來做此題 將陣列看作前n 1個元素與最後乙個元素,不斷交換...

VBA全排列組合輸出

全排列 簡單講是從n個不同元素中取出m個,按照一定順序排成一列,通常用a n,m 表示。當m n時,稱為全排列.下例展示了展示了這4個數全排列。總的排列數為a 4,4 4 24種。輸出 如下 dim n 用於增加動態陣列下標 sub perm arr,k,m,brr 全排列 arr為需要全排列的陣列...

c 排列組合排序 排列組合 組合數專題

書接上回,本期正男老師將帶大家梳理排列組合中組合數的相關考點,組合數考點可以細分為4類,分別為 分類數數問題 分組排序問題 塗色問題以及插棍問題。近六年高考真題中,組合數考點共涉及5道。組合數專題高考真題分布 組合數的定義以及公式如下圖所示。組合數定義 分類數數問題與排列問題中的窮舉問題相似,但分類...