亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: loveguohuasai
打印 上一主題 下一主題

[算法] 母牛數(shù)量算法 [復(fù)制鏈接]

論壇徽章:
1
技術(shù)圖書徽章
日期:2014-03-06 15:32:30
221 [報告]
發(fā)表于 2008-03-29 00:46 |只看該作者
mathe在csdn給過一個求Fibonacci數(shù)列第n項復(fù)雜度為O(logN)的算法,并給出了數(shù)學(xué)歸納法的推導(dǎo)過程,
貌似這個也可以用類似方法推導(dǎo),只是俺數(shù)學(xué)很不好,高手們來看看。!

論壇徽章:
0
222 [報告]
發(fā)表于 2008-03-29 01:07 |只看該作者
原帖由 db_info 于 2003-8-21 12:04 發(fā)表
不會吧,第100年時,第1頭母牛總共生了97,第2頭母牛總共生了94,第3頭母牛總共生了91,依此,所以100年絕對不會超過1到100的和5050=(100+1)*100/2哦,最多也只是97+94+91+...+1=(97+1)*32/2=736頭,不知是否 ...


同感:)
這才是算法

論壇徽章:
0
223 [報告]
發(fā)表于 2008-03-29 01:14 |只看該作者
原帖由 海濱 于 2003-8-8 05:18 發(fā)表
有這等事
很嚴(yán)重呀,要是改成“美女”真不知道會是什么樣的呢~!


這世間就不會再有光棍了

論壇徽章:
0
224 [報告]
發(fā)表于 2008-03-31 11:20 |只看該作者

簡單有效的算法

long result[100] = {1,1,1};
int f()
{
    for(int i= 3; i<100;i++)
        result = result[i-1]+result[i-2];
    return result[99];
}

論壇徽章:
0
225 [報告]
發(fā)表于 2008-03-31 13:31 |只看該作者
int t(int year){
                if(year<1)
                        return 0;
                else{
                        return year+t(year-4);
                }
        }

一百年的話:1200

論壇徽章:
0
226 [報告]
發(fā)表于 2008-03-31 16:43 |只看該作者

循環(huán)算法

int col(int year)
{
        int i,tmp;
        uint32_t base = 1;    // 進入生育期的牛數(shù)量
        uint32_t notg0 = 0;   // 剛出生的牛數(shù)量
        uint32_t notg1 = 0;   // 1歲牛數(shù)量
        uint32_t notg2 = 0;   // 2歲牛數(shù)量
        uint32_t notg3 = 0;   // 3歲牛數(shù)量

        if(year < 4)
               return 1;

        for(i=4;i<year; i++ ) // 歷史的進程開始了,時間,跑吧!
        {
                tmp = notg0;  // 將上年出生的牛保存到tmp
                notg0 = base; // 母牛生孩子了
                base += notg3; // 3歲的母牛也會生孩子了
                notg3 = notg2; // 2歲的孩子也應(yīng)該長大一歲
                notg2 = notg1; // 1歲的小朋友應(yīng)該會跑了
                notg1 = tmp;   // 去年剛出生的小孩子應(yīng)該一歲了
        }
        return  notg3 + notg2 +notg1 +notg0 + base; // n多年后,所有的大人小孩都來集合(如果還沒老死的話)
}

[ 本帖最后由 poor-man 于 2008-4-1 12:56 編輯 ]

論壇徽章:
0
227 [報告]
發(fā)表于 2008-03-31 20:22 |只看該作者
#include<iostream>
using namespace std;
#define N 50
int main()
{
        int born=1;
        int beg_born[N];
        unsigned int have[N];
        int i,j;
        for(j=0;j<N;++j)
        {
                beg_born[j]=have[j]=0;
        }
        have[3]=1;
        for(i=4;i<N;++i)
        {
                have=born+have[i-1];       
                if(i+4<N)beg_born[i+4]=born;
                born+=beg_born;
        }
        cout<<have[N-1];
}

100年用int都溢出了。。。
遞推俄~~
多多指教

論壇徽章:
0
228 [報告]
發(fā)表于 2008-04-03 14:45 |只看該作者
我的瑪雅,這么簡單的題目居然會引無數(shù)英雄盡折腰了,那么多的解答基本上都存在很打的邏輯漏洞
先不談什么規(guī)律了,那個不需要邏輯
兩個方案
1. 循環(huán)普通解法
思路:new 一個牛圈,里面每個元素代表一頭牛,元素值代表歲數(shù)。一年一年的循環(huán)計算,每個cow歲數(shù)都加一,如果歲數(shù)足夠大到生孩子的年齡就生一個
int cows(int year) {
        int sum = 1;
        const int N = 100;
        int* cows = new int[N];
        cows[0] = 1;  //first cow is one year old
        for(int i=0; i<year; i++) {
//如果cows容量越界,重新非配空間
                int temp = sum;
                for(int j=0; j<temp; j++) {
                        if(cows[j] >= 4)cows[sum++] = 2;
                        cows[j]++;
                }
        }
        return sum;
}

int main() {
        printf("%d\n", cows(10));
        getchar();
        return 0;
}
2. 動態(tài)規(guī)劃算法
思路:n年的牛的總頭數(shù)  =  第1年出生的牛的頭數(shù)+第2年出生的牛的頭數(shù)+第3年出生的牛的頭數(shù)+。。。
而且 第n年出生的牛的頭數(shù) = 第1年出生的牛的頭數(shù)+第2年出生的牛的頭數(shù)+第3年出生的牛的頭數(shù)+。。。第n-3年出生的牛的頭數(shù)(凡是這些年出生的牛都可以生小牛了)

int cows(int year) {
        int* cows = new int[year];
        memset(cows, 0, year*4);
        cows[0] = 1;
        if(year <= 3)return 1;
        for(int i=3; i<year; i++) {
                for(int j=0; j<=i-3; j++)cows += cows[j];
        }
        int sum = 0;
        for(int i=0; i<year; i++) {
                sum += cows;
        }
        return sum;
}

int main() {
        printf("%d\n", cows(10));
        getchar();
        return 0;
}
看不懂的話就沒辦法了- -!

論壇徽章:
0
229 [報告]
發(fā)表于 2008-05-29 19:27 |只看該作者
看看吧

論壇徽章:
0
230 [報告]
發(fā)表于 2008-05-29 19:30 |只看該作者
原帖由 HJLin 于 2008-4-3 14:45 發(fā)表
我的瑪雅,這么簡單的題目居然會引無數(shù)英雄盡折腰了,那么多的解答基本上都存在很打的邏輯漏洞
先不談什么規(guī)律了,那個不需要邏輯
兩個方案
1. 循環(huán)普通解法
思路:new 一個牛圈,里面每個元素代表一頭牛, ...



NB啊
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP