PIXNET Logo登入

Edison.X. Blog

跳到主文

YouLoveMe() ? LetItBe() : LetMeFree() ;

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 1月 27 週四 201120:02
  • 整數規劃 (2)

第二個問題
假設 1a+2b+3c+4d+5e+6f >=10 且 2a+3b+4c+5d+6e+7f <= 21,其中 a,b,c,d,e,f 都是大於等於 0 的整數,要求符合條件的 abcdef,這裡主要的問題是第一個限制式,因為它是愈加愈大,所以如果用它拿來當主判斷的話會遺失很多可用資訊。這裡用第二式為主判斷,判斷成功後再去判斷第一式合不合條件,原始碼如下
#include <stdio.h>
#include <stdlib.h>

#define N 6
const int coef1[N] = {1,2,3,4,5,6};
const int coef2[N] = {2,3,4,5,6,7};

const int lim1 = 10, lim2 = 21;
int sol[N] = {0};
int sol_cnt=0;


inline void print_sol()
{
int i;
printf("Cnt%4d:(", sol_cnt+1);
for(i=0; i!=N; ++i) printf("%c=%d,", 'a'+i, sol[i]);
printf(")\n");
++sol_cnt;
}
void dfs(int index, int sum1, int sum2)
{
sum1 += coef1[index]*sol[index];
sum2 += coef2[index]*sol[index];
if(index==N-1 && sum2 <= lim2) {// 合條件2
if(sum1>=lim1) print_sol(); // 合條件1
// 再試下個數字
sum1 -= coef1[index]*sol[index];
sum2 -= coef2[index]*sol[index];
++sol[index];
dfs(index, sum1, sum2);
}
else if(sum2<=lim2) {// 暫時合條件2
dfs(++index, sum1, sum2);
}
else{ // 不合條件2
// 回到上一個狀態, sol[index] 設成0
sum1-= coef1[index]*sol[index];
sum2-= coef2[index]*sol[index];
sol[index]=0;
--index;
if(index<0) return; // 結束
sum1-= coef1[index]*sol[index];
sum2-= coef2[index]*sol[index];
++sol[index];
dfs(index, sum1, sum2);
}
}
int main()
{
dfs(0, 0, 0);
return 0;
}
(繼續閱讀...)
文章標籤

edisonx 發表在 痞客邦 留言(0) 人氣(811)

  • 個人分類:回溯.列舉.遞迴
▲top
  • 1月 27 週四 201119:58
  • 整數規畫 (1)

考慮一個簡單的問題
x+Y <= 3,其中 x, y 為大於等於 0 之整數,要把所有符合條件的 x, y 都列出來。
這問題只是簡單的 trackback ,用 recursive 很快可得到解答,說明有空再寫。
原始碼如下
(繼續閱讀...)
文章標籤

edisonx 發表在 痞客邦 留言(0) 人氣(181)

  • 個人分類:回溯.列舉.遞迴
▲top
1

個人資訊

edisonx
暱稱:
edisonx
分類:
數位生活
好友:
累積中
地區:

熱門文章

  • (444,461)[C] printf 引數說明
  • (83,007)[C&++] 亂數基本使用
  • (80,151)[C] 計時器整理
  • (58,126)[浮點數] IEEE754 , C/C++ 浮點數誤差
  • (53,349)[Poker] 撲克牌遊戲設計介紹
  • (49,851)VBA Procedure 簡述
  • (45,791)VBA 活頁簿(Workbooks)管理
  • (39,455)[C] scanf 引數說明
  • (21,953)bitset 整理
  • (4,979)多測資處理

文章分類

toggle 開發手札 (2)
  • 未實作的想法 (4)
  • 心得筆記 (2)
toggle C/C++ (8)
  • C/C++ Note (52)
  • 亂數 (10)
  • Debug (9)
  • Hidden Features in C (6)
  • OO NOTE (0)
  • 面試題庫 (12)
  • C/C++ FAQ (4)
  • STL Note (3)
toggle 應用軟體/工具 (1)
  • Office (1)
toggle 數值分析 (9)
  • 非線性方程式求解 (10)
  • 矩陣運算 (7)
  • 深入質數 (5)
  • 浮點數 (9)
  • 複數 Complex (2)
  • 積分法 (2)
  • 多項式內差法 (2)
  • 常見關於數 (5)
  • math.h/cmath application (8)
toggle 程式之美 (1)
  • 遊戲之樂 (3)
toggle VB.Net (1)
  • VB.Net Note (1)
toggle 英文 (1)
  • 專題單字 (1)
toggle AutoIt!! (2)
  • AutoIt!! Note (13)
  • Auto-Dll (9)
toggle VBA (4)
  • VBA FAQ (5)
  • VBA Note (9)
  • VBA tec. (1)
  • VBA_Note2 (3)
toggle MFC (1)
  • MFC雜記 (4)
toggle Win32 (8)
  • Process (10)
  • Win32-Console (5)
  • 檔案系統 (1)
  • 音效 (1)
  • 隱喻外掛 (3)
  • System undoc. (0)
  • GDI (2)
  • 記憶體管理 (1)
toggle 環境與Script (4)
  • visual studio (6)
  • 批次檔batch (2)
  • 程式環境架構 (3)
  • Library (3)
toggle 數學整理 (2)
  • 常用公式 (1)
  • 有趣數學 (2)
toggle 演算法 (7)
  • Bit-Hacks (1)
  • AI (13)
  • 大數 (5)
  • 資料結構 (0)
  • 影像 (2)
  • 遞迴-recursive (2)
  • 回溯.列舉.遞迴 (2)
toggle 程設亂語 (1)
  • 胡言亂語 (10)
toggle SmallTalk (1)
  • SmallTalk (27)
  • 未分類文章 (1)

最新文章

  • 轉戰 python
  • [MFC] CArray 注意事項
  • 你真的很狠...
  • [開發手札] tool 整理 <NOTE>
  • [開發手札] vs dll 相容性
  • [開發手札] vc 效率問題
  • [開發手札] 修改 exe 裡面的 constant
  • [開發手札] 受不了 IDE 常當機問題...
  • [Job] Job Journal 130501
  • [面試] some tips

最新留言

  • [25/02/13] 訪客 於文章「[C語言數值分析] cmath / ma...」留言:
    您好,在最后的建表法趋近中, sin_tablePI2[i]...
  • [22/10/28] 訪客 於文章「C/C++ 學習歷程分享...」留言:
    abombterry(at)gmail.com...
  • [22/10/28] 訪客 於文章「C/C++ 學習歷程分享...」留言:
    請問現在還有教c語言嗎? 我有興趣,可否來信告知,謝謝 ...
  • [22/05/31] 五月花 於文章「[Poker] 撲克牌遊戲設計介紹...」留言:
    幫作者推一個 撲克遊戲真的很有趣 個人也是長年愛打牌的其...
  • [22/04/15] 訪客 於文章「[C語言數值分析] 非線性方程式求解 -...」留言:
    原本在搜尋引擎找出一堆 Blog 文章,不知哪幾篇值得花時間...
  • [21/12/27] RIYO 於文章「[Poker] 撲克牌遊戲設計介紹...」留言:
    感覺好酷!! 雖然不懂這些 但身為一個熱愛撲克的玩家覺得...
  • [21/10/01] 訪客 於文章「[GA] 基因演算法(Genetic A...」留言:
    只是想與板主和網友補充交流一下敝人拜讀完的拙見, 我想版主...
  • [21/06/19] 訪客 於文章「[亂數] <細說> C/C++ 亂數基本...」留言:
    請問要怎麼讓檔案第一次執行跑出10個亂數,二次執行跑出20個...
  • [20/09/24] 訪客 於文章「VBA Procedure 簡述...」留言:
    老師 您好 上述撰寫程式的示範,我能理解為何這樣演化,但我...
  • [20/06/25] 訪客 於文章「VBA Procedure 簡述...」留言:
    您好,我想請教一下 我在網路教學裡看到許多老師教製作Exc...

動態訂閱

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣:

留言板