當前位置:首頁 » 操作系統 » 分物品演算法

分物品演算法

發布時間: 2024-08-11 21:23:41

㈠ 關於禮物分配演算法

#include<iostream>
using namespace std;

int main()
{
cout << "請輸入n"<<endl;
int n;
cin>>n;
int *pn=new int[n];//輸入禮物個數
float *pValue = new float[n]; //禮物價值
float *pValue1 = new float[n];//第一個人的禮物價值
float *pValue2 = new float[n];//第二個人的禮物價值
cout << "輸入價值" <<endl;
for (int i = 0; i < n ; i ++) //將所有的值存起來
{
cin >> pValue[i];
}
int row1 = 0;
int row2 = 0;
float fvalue1 = 0;
float fvalue2 = 0;
for (int j = 0; j < n ; j ++)
{
if (fvalue1 <= fvalue2)
{
pValue1[row1] = pValue[j];
fvalue1 += pValue1[row1];
row1 ++;
}
else
{
pValue2[row2] = pValue[j];
fvalue2 += pValue2[row2];
row2 ++;
}
}
cout <<"第一個"<< fvalue1 << endl;
cout <<"第二個"<< fvalue2 << endl;

delete[] pn;
delete[] pValue;
delete[] pValue1;
delete[] pValue2;
pn = NULL;
pValue = NULL;
pValue1 = NULL;
pValue2 = NULL;

return 0;
}

㈡ 貪心演算法幾個經典例子

[背包問題]有一個背包,背包容量是M=150。有7個物品,物品可以分割成任意大小。

要求盡可能讓裝入背包中的物品總價值最大,但不能超過總容量。

貪心演算法是很常見的演算法之一,這是由於它簡單易行,構造貪心策略簡單。但是,它需要證明後才能真正運用到題目的演算法中。一般來說,貪心演算法的證明圍繞著整個問題的最優解一定由在貪心策略中存在的子問題的最優解得來的。

對於本例題中的3種貪心策略,都無法成立,即無法被證明。

㈢ 序號為1至n的n個人,分序號為1至n的n個物品,序號不重合的概率,的演算法

回答:
這個問題是一個經典問題,即「亂序問題」.
n個人分n個物品,不管序號重不重,共有n!種分法;
序號不重的分法共有d(n) = n!∑{i=0,n}[(-1)!/i!].
故序號不重的概率P(n)是
P(n) = d(n)/n!= ∑{i=0,n}[(-1)!/i!].

熱點內容
排解壓力的經歷 發布:2025-07-12 21:58:43 瀏覽:96
微支付介面java 發布:2025-07-12 21:56:53 瀏覽:913
JAVA擴展 發布:2025-07-12 21:51:08 瀏覽:150
忘記華為賬號密碼如何更改 發布:2025-07-12 21:43:20 瀏覽:777
字體android 發布:2025-07-12 21:30:38 瀏覽:621
資料庫中包含 發布:2025-07-12 21:25:08 瀏覽:621
艦娘緩存系統 發布:2025-07-12 21:21:21 瀏覽:100
cpu對存儲器的讀寫 發布:2025-07-12 21:21:14 瀏覽:772
如何建立一個網站需要伺服器 發布:2025-07-12 21:18:40 瀏覽:67
php登陸微信 發布:2025-07-12 21:17:55 瀏覽:14