組合數學練習5

2021-08-30 14:59:33 字數 826 閱讀 4373

複習到了sa,正好做了一道利用sa解決lp問題,是非常基礎的一道題目。

求x1-3x2的最小值?

其中滿足的條件是:2x1+3x2<=6,-x1+x2<=1,x1>=0,x2>=0,一看可能會有點熟悉的題目吧,是啊,這個是高中最普遍的解決線性規劃的問題,我們當時的變數不多,如果變數好多的話,解決就要需要電腦了,現在我用sa的想法來解決問題。

首先要加入襯墊變數x3,x4,使得2x1+3x2+x3=6,-x1+x2+x4=1,其中x1>=0,x2>=0,x3>=0,x4>=0.然後利用sa演算法,下面有**做說明

[table]

|0|-1|-3|0|0

| |x1|x2|x3|x4

|6 |2|3|1|0

|1|-1|1|0|1

[/table]

做法首先確定了其中的基底x3和x4(兩個是線性無關的),然後找到第一行中的是負數的最小的那個,然後縱向找到乙個正數即3,接著就是線性代數的知識,使得基底進行變動,並且使得第一行中的負數變為0

[table]

|3|-4|0|0|3

||x1|x2|x3|x4

|3|5|0|1|-3

|1|-1|1|0|1

[/table]

下面的操作和上面的類似,最終得到

[table]

|27/5|0|0|4/5|3/5

||x1|x2|x3|x4

|3/5|1|0|1/5|-3/5

|8/5|0|1|1/5|2/5

[/table]

對應**中的左上角的數正是我們所求數的相反數,所以最小的值因為-27/5,而此時我們可以得到x1=3/5,x2=8/5

組合數學 求組合數

對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...

數學 組合數學

mod must be a prime const int mod 1e9 7 namespace combinatory ll inv ll x ll fac maxn invfac maxn void initc int n ll a ll n,ll m ll c ll n,ll m ll d ...

組合數學筆記

從n個數中選m個數,每個數至多選一次,方案數 性質 c n,0 c n,n 1 c n,m c n,n m c n,m c n 1,m 1 c n 1,m 楊輝三角 二項式展開 x y n i 0.n c n,i x iy n i 那這裡先說一下楊輝三角 前提 每行端點與結尾的數為1 每個數等於它上...