設集合s=, n1 + n2 +...+nt = n, 從s中任取r個,求其組合數rc(n, r)。
設多項式
則rc(n,r)就是多項式中xr的係數, 即 rc(n, r) = ar。
根據上述方法,程式設計實現:求任意的從s中任取r個的組合數rc(n,r),且輸出ai(i = 1, 2...r)。
解決思路:
1. 每個多項式用乙個鍊錶表示。多項式的係數和冪用鍊錶的節點表示。
2. 多項式相乘即為對鍊錶每個節點的遍歷和計算。
程式設計實現如下:
#include
#include
typedef int datatype;
typedef struct node
listnode, *linklist;
linklist linklist_create()
l->next = null;
return l;
}int linklist_insert(linklist l, datatype x, datatype y)
p = (linklist)malloc(sizeof(listnode));
p->coe = x; //係數
p->power = y; //冪
p->next = q->next;
q->next = p;
return 0;
}int linklist_is_empty(linklist l)
int linklist_show(linklist l)
printf("\n\n");
return 0;
}int linklist_show_r(linklist l, int k)
printf("%d\n", p->coe);
return 0;
}int linklist_clear(linklist l)
return 0;
}int linklist_length(linklist l)
return --len;
}int multinomial_multipty(linklist l, linklist mul)
, temppower[100] = ;
linklist p = mul->next, q = l->next;
int temp = 0;
int i = 0;
i = 0;
while (i <= len)
while (p != null) //多項式相乘
p = p->next;
}p = q = null;
linklist_clear(l);
for (i = 0; i <= len; i++) //重新賦值給鍊錶l
return 0;
}#define n 100
int main(void)
; //元素
int m[n] = ; //元素個數
int i = 0, j = 0;
int r = 0, n = 0;
linklist l, tl;
l = linklist_create();
tl = linklist_create();
linklist_insert(l, 1, 0);
printf(" 程式計算結果如下 \n\n\n");
printf("請輸入元素型別數:");
scanf("%d", &t);
printf("\n請輸入各元素:");
for (i = 0; i < t; i++)
printf("\n請輸入相應的元素個數:");
for (i = 0; i < t; i++)
printf("\n請輸入r: ");
scanf("%d", &r);
printf("\n輸入的多項式為: \n");
for (i = 0; i < t; i++)
linklist_show(tl);
multinomial_multipty(l, tl);
linklist_clear(tl);
}printf("\n相乘後的多項式為: ");
linklist_show(l);
printf("組合數rc(n, r) = rc(%d, %d) = ", n, r);
linklist_show_r(l, r);
printf("\n");
system("pause()");
return 0;
}
鍊錶實現多項式相乘
參考文章 自己敲了一遍,先mark一下,以後理解可能會更深一點。亮點在於對第二個多項式進行了逆反。include includetypedef struct node listnode listnode createlist int n 建立鍊錶 int printlist listnode hea...
單向鍊錶 練習3 7 多項式相乘
3.7 編寫乙個函式將兩個多項式相乘,用乙個鍊錶實現。你必須保證輸出的多項式按冪次排列並且最多有一項為任意冪。多項式相乘 position multiply2pol position h1,position h2 排序合併 mpsort h,size return h 氣泡排序多項式,按照項的次數從...
鍊錶的多項式加法鍊錶的多項式加法
老師給的模板看的我不要不要的,真心難看,看了很久才把過載加法搞定了。include using namespace std include 定義結點類 用於表示多項式的一項 class node node int nexp,int ncoef private int exp 指數 int coef ...