程式設計演算法問題 10,c語言演算法問題

2023-04-19 14:50:13 字數 4456 閱讀 6642

1樓:匿名使用者

典型的動態規劃揹包問題。

2 動態規劃。

你找一下揹包問題,到處都有詳細解答~~~

跟這個問題類似 只要稍微改一下題目和**就行。

改了之後思路如下 幫你換成c語言了 給分啊~~~

有一個箱子容量為v(正整數,o≤v≤20000),同時有n個物品(o≤n≤30),每個物品有一個體積(正整數)。要求從 n 個物品中,任取若千個裝入箱內,使箱子的剩餘空間為零。(這裡的v就是你的s,這裡的n就是你的n)

void search(int k, int v)

best為全域性變數,表示箱子的剩餘空間的最小值,初始值為設為很大的正數就好。

所以 search(n,v)後 best為0則表示有解。

2 dp 動態規劃(迭代法)

f[i,j]為前i個物品中選擇若干個放入使其體積正好為j的標誌,為布林型。

實現:將最優化問題轉化為判定性問題。

f [i][j] =f [ i-1 ][j-w[i] ]f [ i-1 ][j ] w[i]<=j<=v) 邊界:f[0][0]=true;

for(i=1;i<=n;i++)

for(j=w[i];j>=v;j--)

f [i][j] =f [ i-1 ][j-w[i] ]f [ i-1 ][j ]

算完之後 f[n][v]為true則有解。

3 dp 動態規劃(迭代法優化)

優化:當前狀態只與前一階段狀態有關,可降至一維。

f[0]=true;

for(i=1;i<=n;i++)

for(j=w[i];j>=v;j--)

f [j] =f [ j-w[i] ]f [ j ]

算完之後 f[v]為true則有解。

4 dp 動態規劃(備忘錄演算法)

f為二維陣列int f[n][v] 一開始初始化為0

bool dp(int n, int v)

dp(n,v)為1則有解。

2樓:匿名使用者

無聊中,我來下吧 ,不過我不是很清楚,是找到一組就可以,還是把所有滿足情況都找到。

其實這道題不用什麼演算法就行,因為n比較小,列舉都可以。

列舉法:列舉就是把所有情況都試一下,看是否滿足,任意選取幾個數,那就從一個數開始,到n個數結束,因為n《=20,那麼計算次數是2^20 = 1048576,方案可行。

**響,接**去了,想出其他方法在修改~

3樓:匿名使用者

首先確定要取幾個數吧,然後定義幾個變數 如果是三個可以這樣。

i j k 分別都可以大於等於0和小於等於20 然後其和等於20 這兩個條件應該就可以出來幾組數了吧。

演算法就是程式,這句話對不?

4樓:四舍**入

不對。演算法是解決問題的步驟,程式是演算法的**實現演算法要依靠程式來完成功能,程式需要演算法作為靈魂。

程式是結果,演算法是手段(為編寫出好程式所使用的運算方法)。同樣編寫一個功能的程式,使用不同的演算法可以讓程式的體積、效率差很多,所以演算法是程式設計的精華所在。

5樓:匿名使用者

不對,演算法是解決問題的步驟。而程式是對問題的具體**實現。演算法依靠程式來完成功能。

6樓:匿名使用者

不對,程式是對演算法的具體實現。

7樓:仉昀邇

演算法是程式的靈魂,程式是演算法的演繹。就像一棟房子,演算法就是設計圖,是抽象的;程式則包括鋼筋、水泥等這些的材料,是具體的。

這樣說不知能否解答你的疑問。

8樓:東方刀客

程式包括演算法和資料結構兩個方面的內容,不能以偏概全。

9樓:安徽新華電腦專修學院

程式=資料結構+演算法。

c語言演算法問題

10樓:蝶love_花

"→"的意思是等於,即t=t*i;s5的其實就是一個迴圈,翻譯過來就是下面的一段**:

while (i<=5)

明白了嗎?好吧,我把運算步驟一步步的說給你看。

首先是賦初值:t=1,i=2;

然後開始迴圈,在這道題中一共要做四次迭代(i從2到5),分別是i=2,i=3,i=4,i=5

第一次迴圈,即i=2時,t=t*i=1*2=2,注意此時t此時的值是2了(t=1*2);

然後對i作「++運算,接下來i=3,t=t*i=2*3=6; 此時t=1*2*3=6;

接著對i做「++運算,這時i=4,t=t*i=6*4=24;此時t=1*2*3*4=24;

接著對i做「++運算,這時i=5,t=t*i=24*5=120;此時t=1*2*3*4*5=120;

然後由於i不能大於5(我們可以在迴圈體中設定迴圈判斷條件:i<=5),所以迴圈到此為止,於是此時t 的值就是最終的運算結果。

從上面的迴圈過程可以看到,我們每次都把一次迭代後的計算結果賦值給t。

現在懂了嗎?

11樓:淦海瑤

這個就是找到規律,用迴圈把問題解決。

最原始方法:c實現。

int a,b;

b=1*2;

a=b;b=a*3;

a=b;b=a*4;

a=b;b=a*5;

改進的演算法:

int a,i;

a=1;for(i=2;i<=5;i++)

a*=i;你說的那個 → 是賦值的意思,就是說讓txi儲存在t空間中。

12樓:網友

——>那句話的意思相當於i=i+1;()s3處的)

s5步的意思相當於if(i<=5),goto s3;這樣應該很明白了吧。

演算法問題j**a

13樓:匿名使用者

看了一下,好像不容易!

可以把每個矩形的一個物件,只有長寬兩個長度屬性,進行組合,它們之間空隙越少越好,就是愈接近他們的面積和效果越好!

不過這個重點在於這個組合過程,長度越接近的就讓他們的邊儘量重合,不過好像很難,如果屬性圖形學的說不定有相應的演算法,有空再回頭看吧!

上面對矩形的屬性還應該增加一個屬性:方向,就是讓它橫放還是豎放。至於斜放那就不用考慮了!

演算法:1)可以尋找存在有等邊情況的矩形,將這些矩形先拼接成一個矩形,接著尋找矩形中存在一個矩形邊等於若干個矩形邊的和,把這些矩形拼接起來,(但這樣有可能不一定是最優的)。最後尋找那些邊長接近的拼接起來,知道沒有新的矩形!不過數學功底不夠,沒辦法形式化證明最小。

2)另外可以用窮舉法(當n不大時很適合),而且完全可以實現,就是用組合排列(包括對相對位置和方向(2個旋轉方向)進行全排列),例如當n=2,它們相對位置的組合中有效的是:4種。計算每一種可能取最小的就ok!

但這個演算法效率比較低,當然裡面有很多是重複的,可以優化演算法!

總結:上面都是邊寫邊想的,很隨意。不過第二個演算法一定可行,但需要優化。

數學知識不夠,只能到此。至於實現那就容易了,只要演算法好。時間緣故停在此吧!

不過你的題目挺有意思的!若誰有好的演算法,期待中……

14樓:網友

演算法不是問題,有需要請問我。

在程式設計和演算法領域,有哪些經典問題

15樓:告才

對於歸併演算法,看不懂的話一般是因為沒理解什麼是歸併,為什麼用歸併。我先給你通俗的說一下這個演算法的含義,然後你再看你的教材或者**實現,相對就好理解了。

歸併演算法一開始是為了大資料和平行計算而開發出來的,當一段需要排序的資料量非常大的時候,大到記憶體都裝不下了(早期的計算機記憶體很小,只有kb級別,很容易出現這種現象),這時可以用歸併演算法,先把這段大資料分成兩個或兩個以上的資料段,然後先分別對每個資料段進行排序,再把這些排好序的小資料段一個一個的組合起來,組合的時候再排一次序,等到所有的小資料段都被組合了之後,就恢復成了原來的大資料,但是排好序了。在對小資料段分別進行排序的時候,因為它們之間是相互獨立的,因此可以用平行計算來加快速度。所以歸併演算法在早期使用分佈計算的時候,或者現在使用多核計算機的時候,速度很快。

對於遞迴這種思路,其實它就是一種縱深錨點思維能力,可以通過訓練來加強。方法很簡單,就是訓練找錨點的能力,錨點就是遞迴中的返回條件。找準了錨點,遞迴的過程是不用考慮的,有多少層的遞迴呼叫都不用理會,只要明白什麼條件下會結束遞迴、層層返回就行了。

演算法問題。

16樓:追風尋跡

第10天早上沒吃就只剩1個,那第一天摘了1534個,要是吃過後剩一個那就第一天摘了3070,演算法為:當天桃數為x,前一天的桃數為2(x+1)

17樓:夜神夢無眠

$day = 10;

total = 1;

for($i = 0; $i < day ; i ++var_dump($total);

如果用php 寫法是這樣寫的,其他語言 原理差不多。

c 演算法問題? 70,c 演算法問題?

c 演算法問題?include using namespace std int main 遍歷陣列,如果當前元素為0,則將其多寫一次。for int i 0 i len i nums i 1 0 在i 1的位置上新增一個0len 陣列長度加1 i 跳過新新增的0,繼續往後遍歷。輸出重新寫完後的陣列。f...

c語言問題程式設計,C語言程式設計問題

程式修改輸出加個 元 後面執行結果可看到 編譯執行結果 如果輸入50 如果輸入90 如果輸入100 如果輸入110 include int main if x 50 y 80 x printf f n y return 0 c語言程式設計問題 解題思bai路 完全跟百錢買百雞的問題是du一樣的 設大...

c語言程式設計問題,C語言程式設計問題

你演算法都寫出來了,還要我們幫你寫什麼,演算法能寫,相信你能搞定的 c語言程式設計問題 b 當i 0時。呼叫 if語句 a 6t a 就是t等於t a然後a自曾,得t 6 return t a 這是a已經自曾為7 得返回13 呼叫當i 1時if語句的else句 a 7t a 就是t等於t a然後a自...