李國帥 於2006.9
通過這個程式,我發現程式最重要的就是演算法和結構,在結構和演算法沒有弄清楚之前所有的勞動,所有的編碼都是白費工夫,因此在動手之前,盡一切努力,通過各種溝通途徑把邏輯關係搞清楚是最重要的事情.
十年前的東西了,這個演算法有很多漏洞,條件考慮不足,不過,依然可以看作對實際問題解決的一次嘗試,自己已經沒有精力做這玩意了,有高手可以看看如何解決。----2017.12.22
lucy 的問題
18*14*8.5cm的盒子,25盒裝乙個箱子,裝成方形的箱子,用那個尺寸的盒子裝在乙個方形的箱子裡面,那個需要多大尺寸的方形箱子。
/*有這麼幾個限制條件
長寬高 後面加上空隙
h = 18*nx +14*ny +8.5*nz +ox
w = 18*nx +14*ny +8.5*nz +oy
l = 18*nx +14*ny +8.5*nz +oz
nx,nx,nx <= 24
最後的紙箱體積
h * w * l = 25*18*14*8.5 + ov
必須使的空餘的體積ov最小。
因為長寬高的空餘長度ox,oy,oz可以放在ov中計算,所以可以不用帶上。
建立**迴圈,依次求出正數ov,最後得到最小的ov時的nx,nx,nx
ov = h * w * l - 25*18*14*8.5
本來長寬高必須分別至少包含一長寬高的個數,但沒有必要進行過多的判斷。
長度、寬度,高度上分別至少有乙個nx,nx,nx
那也不行,對於每乙個長都要求乙個寬,然後要求乙個高。
所以需要9級迴圈,可以使用遞迴,最後再說。
*/#include
#include
#include
#include
#define wordmaxlen 1024
//double l=0,w=0,h=0;
int vnum = 3
;double hwl[3] = ;//
h,w,l
double ov = 0.0
;double l = 18, w = 14, h = 8.5
;double minline =h;
double maxline =l;
int maxnum = 25
;double tv = maxnum*l*w*h;
double minov = 100000000000.0
;double minh = 0, minw = 0, minl = 0
;file *stream;
int nxyz[3][3
];void getv(double& hwl, int nhwl, int
leftnum)
if (minov > 1500)continue
; fprintf(stream,
"nhwl(%d)hwl2(%.1f)hwl1(%.1f)hwl0(%.1f)minov(%.2f)\n
", nhwl, hwl[nhwl], hwl[nhwl + 1], hwl[nhwl + 2
], minov);
fprintf(stream,
"l: nx,ny,nz %d,%d,%d \n
", nxyz[0][0], nxyz[0][1], nxyz[0][2
]); fprintf(stream,
"w: nx,ny,nz %d,%d,%d \n
", nxyz[1][0], nxyz[1][1], nxyz[1][2
]); fprintf(stream,
"h: nx,ny,nz %d,%d,%d \n
", nxyz[2][0], nxyz[2][1], nxyz[2][2
]); }}}
else
getv(hwl[nhwl - 1], nhwl - 1, leftnum / (nx + ny +nz));}}
}}
}int main(int argc, char **argv)
ODB 基於c 的ORM對映框架嘗試 使用
摘要 2 使用 首先,需要定義乙個物件,用來和資料庫字段對應 cce lang cpp ifndef volume h define volume h include include pragma db object cl 2 使用 首先,需要定義乙個物件,用來和資料庫字段對應 cce lang c...
C 封裝POSIX 執行緒庫(四)使用封裝的執行緒
本文主要介紹如何使用c 封裝posix 執行緒庫 一 互斥鎖 c 封裝posix 執行緒庫 二 條件變數的封裝和c 封裝posix 執行緒庫 三 執行緒的封裝三文中介紹的posix pthread的基本元件 互斥鎖,條件變數和執行緒 c 封裝的使用。設計乙個場景讓我們用到這三個元件 一共啟動三個執行...
C 中常用的加密演算法的封裝
des加密是對稱加密演算法,對稱加密演算法的優點是速度快,缺點是金鑰管理不方便,要求共享金鑰 public class desencrypt des加密 需要加密的值 加密後的結果 public string encrypt string text des解密 需要解密的值 解密後的結果 publi...