1樓:網友
以前寫了個 應該和你的問題差不多。
函式如下(這是乙個類的方法。。輸入輸出的陣列是別的地方建立的,具體可以看看參考鏈結)
void combine(int level , int pos )for(int i = pos ; i < num_count ; i++)
num_out[level] =num_in[i];
cout
2樓:網友
有x個元素,則它的子集有2的x次方個。
怎樣用遞迴實現輸出乙個集合的全部子集(c++)?
3樓:網友
int i=0;
fun(集合)
ps:幹嗎用遞迴啊,迴圈不是更簡單明瞭?
用遞迴 求出乙個string的所有子集 j**a
4樓:網友
其實問題還是比較明顯的,比如;這句話在for迴圈中重復執行,但是顯然firstword每次都是, 1);而在整個for迴圈中,你又沒有對word重新賦值過。這也就是為什麼你的輸出有那麼多相同的字串吧。
另外,理論上你每次新建乙個subsetgenerator,就不能算遞迴了。
public static arraylistgetsubsequences(string word)
private static void dogetsubsequences(string word, string s,arraylistlist)
string tail =
dogetsubsequences(tail, s, list);
dogetsubsequences(tail, s + list);}
j**a題目:j**a題目:用遞迴寫n個元素的子集 static object[] subs(object[] chosen, int i, int n)
5樓:匿名使用者
遞迴問題都是千篇一律的,將問題分為n類,每一類問題又可以分為n類。
這個問題中,設a為集合,將所有子集合分為兩類,有a[0]的和沒a[0]的。
有a[0]的分為兩類,有a[1]的和沒a[1]的。
有a[n-2]的分為兩類,有a[n-1]的和沒a[n-1]的。
有a[n-1]的直接返回[a[n-1]]。
沒a[n-1]的直接返回。
subs(chosen,i,n)
if(i==n)else
arr1=subs(delete_arr_index(chosen,i-1),i+1,n);/沒chosen[i-1]的情況,當i=1時,也就是求得沒有a[0]的所有集合。
arr2=subs(chosen,i+1,n);/有chosen[i-1]的情況,當i=1時,也就是求得有a[0]的所有集合。
arr=arr1+arr2//合併陣列,當i=1時,就是獲得了全部集合。
return arr;
刪除陣列中的某個元素。
public static void delete_arr_index(str,index)
int newstr = int[1]);
reuturn newstr;
元素 和子集的區別,謝謝
6樓:尋找迷失的心
子集是乙個集合,可以包含元素。
舉例:{是乙個集合,都是{包含的元素,{這個集合是{的子集。
7樓:網友
集合裡面的每乙個數(式)叫做元素。
如果集合a的元素都是集合b的元素,那麼集合a叫做集合b的子集。
比如設a={2,3},b={2,3,4,5},集合a的元素是,集合b的元素是,集合a是集合b的子集。
8樓:網友
補充一下上面。
其中,也是此集合的元素,}是其中的乙個子集。
集合所有子集元素之和怎麼算
9樓:網友
空集是任何集合的子集。
這個集合中有9個元素。
當隻有乙個元素時,有9種;
有兩個元素時,有1有8種搭配,2有7種,依此類推,有8+7+5+…+1=36種。
有2^9=512個。
公式當乙個集合中有n個元素,那麼 它的子集有2^n個,真子集有2^n-1個。
10樓:網友
若乙個集合含有n個元素,則稱它為n元集。
乙個n元集的子集有多少個呢?答案是2^n。
0)零元集,即空集,有c(n,0)個。
1)一元集:有n個。
2)二元集:有c(n,2)個。
k)k元集:有c(n,k)個。
n)n元集:有c(n,n)個。
總共有 c(n,0)+c(n,1)+.c(n,k)+.c(n,n)=2^n
11樓:許願石的無奈
它們要是數列就用求和公式。
要是無規律的陣列,那就挨個加唄!
12樓:網友
可以根據排列組合先把所有子集找出來,再加和。
13樓:網友
沒有公式 不用問了 具體的題可能 但是一般的通用的公式沒有。
遞迴輸出集合子集
14樓:網友
是輸出所有的子集嗎,請看嚴蔚敏《資料結構》c語言版第149-150頁。
15樓:網友
思路: 對於某個集合元素 e 和某個子集subset, e要不就在這個集合中,要不就不在。 故,只需列舉所有元素的在或不在某子集, 即可列舉所有子集。
不標準偽**: 不妨設集合元素為 e[0] 到 e[n-1] 共n個, 用陣列 flag[0] 到 flag[n-1] 代表i元素是否在當前集合。
void output( i )
flag[i] =在當前集合;
output(i + 1);
flag[i] =不在當前集合;
output(i + 1);
初始化時 flag[0] 到flag[n-1]都為 『不在當前集合』;
初始呼叫 output(0);
高中數學問題,子集和真子集是什麼關係?我能否說集合既是子集又是真子集?能舉例佳,謝謝
a是b的真子集,則a一定是b的子集。如a 1,2,3 b 子集包含真子集,真子集包含於子集 真子集 子集 本身的所有集合 包含關係,一個集合既是本身集合子集又是真子集。高中數學集合基本關係 做題目的時候 如果同時符合 真子集 和子集的關係 那符合是不是可以隨便寫一個 20 做題目的時候 如果同時符合...
matlab中矩陣如何求所有元素的和
可先求列和,然來後將列源和組成的向量轉置,最後再對轉置後的向量求列和。例對矩陣a求所有元素的和,可 sum sum a 例 a 1632 135101189 67124 1514 1 sum sum a ans 136 可先求列和,bai然後將列和組成的向du量轉置,最後再zhi對轉置後dao的向量...
cc語言程式設計問題求3 3矩陣對角線元素之
include define n 3 int main int i,j,a n n sum 0 printf 請輸入矩陣 3 3 n for i 0 isum a i i printf 對角線之和為 d n sum return 0 c include include using namespace...