Cộng ngẫu nhiên 1 dãy số để ra 1 kết quả cho trước.

Liên hệ QC

tuanthuy1012

Thành viên chính thức
Tham gia
12/9/15
Bài viết
62
Được thích
1
Chào các bác

Em có vấn đề cần các bác tư vấn và giúp đỡ.
Em có tập tin đính kèm trong đó cột N là CBM ( số khối của container) , cột X là PO/cut
Công việc của em là cộng tổng ngẫu nhiên từ trên xuống dưới (cột N) lại với nhau làm sao:
1, Cho ra kết quả nằm trong khoảng (74-75) là cho vào 1 nhóm. cộng lại cho đến hết. để lập ra các nhóm khác nhau,có chung kết quả tổng là (74-75), cái còn lại nếu cộng không đủ (74-75) để riêng ra.
2, Cộng các Ô được liên tiếp nhau, đừng cộng các Ô xa nhau quá.Ưu tiên liên tiếp nhau từ trên xuống.
3, Nếu Cùng chung 1 po/cut (Cột X) thì không được tách nhau ra.
Mong các bác tư vấn giúp đỡ em code hay công thức cũng được ạ!
Nếu mà chưa hiểu chổ nào thì đừng ngại đặt ra câu hỏi, xin đừng chửi em ạ.!

P/s: Tùy từng bảng khác nhau mà điều kiện 1 thay đổi từ (74-75) thành (64-65) sau này bác nào giúp em chỉ cho em phần điều kiện này để tự em thay đổi .
Em có edit lại cho phù hợp.
Em chân thành cảm ơn các bác!
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các bác

Em có vấn đề cần các bác tư vấn và giúp đỡ.
Em có tập tin đính kèm trong đó cột N là CBM ( số khối của container) , cột X là PO/cut
Công việc của em là cộng tổng ngẫu nhiên từ trên xuống dưới (cột N) lại với nhau làm sao:
1, Cho ra kết quả nằm trong khoảng (74-75) là cho vào 1 nhóm. cộng lại cho đến hết. để lập ra các nhóm khác nhau,có chung kết quả tổng là (74-75), cái còn lại nếu cộng không đủ (74-75) để riêng ra.
2, Cộng các Ô được liên tiếp nhau, đừng cộng các Ô xa nhau quá.
3, Nếu Cùng chung 1 po/cut (Cột X) thì không được tách nhau ra.
Mong các bác tư vấn giúp đỡ em code hay công thức cũng được ạ!
Nếu mà chưa hiểu chổ nào thì đừng ngại đặt ra câu hỏi, xin đừng chửi em ạ.!

P/s: Tùy từng bảng khác nhau mà điều kiện 1 thay đổi từ (74-75) thành (64-65) sau này bác nào giúp em chỉ cho em phần điều kiện này để tự em thay đổi .
Em chân thành cảm ơn các bác!
Chưa hiểu ý bạn lắm, bạn nói cộng ngẫu nhiên rồi cộng các ô liên tiếp nhau là sao nữa?
 
Chưa hiểu ý bạn lắm, bạn nói cộng ngẫu nhiên rồi cộng các ô liên tiếp nhau là sao nữa?
Có thể hiểu là ưu tiên cộng các ô liên tiếp, rồi mới cộng các ô xa sau sao cho tổng bằng 74 đến 75.
Kết quả lẻ cho ô còn lại và xếp các ô đã cộng ra kết quả thành 1 nhóm.
 
Cái quan trọng nhất thì bạn không nói, bạn muốn vứt kế quả ở đâu, kết quả mong muốn nó trông như thế nào.
 
Cái quan trọng nhất thì bạn không nói, bạn muốn vứt kế quả ở đâu, kết quả mong muốn nó trông như thế nào.
Da. Dưới mỗi nhóm bác cho e luôn tổng chổ cột CBM luôn ạ.
Bài đã được tự động gộp:

Có thể hiểu là ưu tiên cộng các ô liên tiếp, rồi mới cộng các ô xa sau sao cho tổng bằng 74 đến 75.
Kết quả lẻ cho ô còn lại và xếp các ô đã cộng ra kết quả thành 1 nhóm.
Dạ đúng rồi ạ.
Bài đã được tự động gộp:

Chưa hiểu ý bạn lắm, bạn nói cộng ngẫu nhiên rồi cộng các ô liên tiếp nhau là sao nữa?
Dạ ưu tiên liên tiếp từ trên xg dưới.
 

File đính kèm

Lần chỉnh sửa cuối:
Bác nào có thời gian vào giúp e với ạ. Em cám ơn nhiều.
 
Khả năng giải ra bài này rất thấp bạn à, cộng số ngẫu nhiên ra 1 số đã khó rồi còn ra nhiều nhóm số nữa....
Dùng thuật toán vét cạn thì giải dễ dàng.
Cái khó là phần tối ưu hoá thôi. Có hai cách tối ưu hoá:
1. dùng Heuristic functions
2. dùng toán Linear Programming
Vào mấy diễn đàn chuyên về toán mà tìm lời giải.
 
Dùng thuật toán vét cạn thì giải dễ dàng.
Cái khó là phần tối ưu hoá thôi. Có hai cách tối ưu hoá:
1. dùng Heuristic functions
2. dùng toán Linear Programming
Vào mấy diễn đàn chuyên về toán mà tìm lời giải.
Em thì chịu mấy cái này rồi :(
 
Nếu điều kiện như bạn nói thì có hàng triệu kết quả??? Mình tính đến tổng của 7 số trở lại mà đã đến 19000 trường hợp. Vậy bản chất của việc tách nhóm để làm gì để có thể có cách khác hợp lý hơn.
 
Nếu điều kiện như bạn nói thì có hàng triệu kết quả??? Mình tính đến tổng của 7 số trở lại mà đã đến 19000 trường hợp. Vậy bản chất của việc tách nhóm để làm gì để có thể có cách khác hợp lý hơn.
Mình đoán tác giả làm việc trong lĩnh vực logistic. Có nhiều kiện hàng vận chuyển mà xe container tải trọng 75 tấn, làm sao sắp xếp ít chuyến nhất và các kiện hàng gần nhau ưu tiên cùng chuyến đỡ mất công bốc xếp.
 
Mình đoán tác giả làm việc trong lĩnh vực logistic. Có nhiều kiện hàng vận chuyển mà xe container tải trọng 75 tấn, làm sao sắp xếp ít chuyến nhất và các kiện hàng gần nhau ưu tiên cùng chuyến đỡ mất công bốc xếp.
Bài toán Linear Programming tôi đề cập ở bài #8 chính là loại toán được logistics áp dụng nhiều nhất.
Môn này thường được dạy trong chương trình toán ứng dụng, điển hình ngành kỹ sư cơ khí học vào khoảng năm thứ 2 hoặc 3. Trường đại học kỹ thuật nào không có dạy môn này là chương trình hơi yếu.

Chú: hồi tôi học là phép tính bằng tay. Bây giờ ngừoi ta có cách tính bằng máy, vì vậy tôi mới đề nghị vào mấy diễn đàn toán mà tìm.
 
Bài toán Linear Programming tôi đề cập ở bài #8 chính là loại toán được logistics áp dụng nhiều nhất.
Môn này thường được dạy trong chương trình toán ứng dụng, điển hình ngành kỹ sư cơ khí học vào khoảng năm thứ 2 hoặc 3. Trường đại học kỹ thuật nào không có dạy môn này là chương trình hơi yếu.

Chú: hồi tôi học là phép tính bằng tay. Bây giờ ngừoi ta có cách tính bằng máy, vì vậy tôi mới đề nghị vào mấy diễn đàn toán mà tìm.
Nghe anh nói thì bó tay rùi, đến cái vba em còn vần chưa xong, nói gì tới thuật toán cao siêu vậy,
 
Khả năng giải ra bài này rất thấp bạn à, cộng số ngẫu nhiên ra 1 số đã khó rồi còn ra nhiều nhóm số nữa....
dạ vì mỗi lần em tự nhóm lại bằng tay thì nó rất mất thời gian. Nên lên đây nhờ các anh chị giúp đỡ.
Em cám ơn bác đã comment ạ!
Bài đã được tự động gộp:

Mình đoán tác giả làm việc trong lĩnh vực logistic. Có nhiều kiện hàng vận chuyển mà xe container tải trọng 75 tấn, làm sao sắp xếp ít chuyến nhất và các kiện hàng gần nhau ưu tiên cùng chuyến đỡ mất công bốc xếp.

Gần Đúng ý em rồi ạ, bọn em làm bên xuất cont nên ghép các mã hàng lại vào cont sao cho ko vượt quá 75 khối.
 
Nghe anh nói thì bó tay rùi, đến cái vba em còn vần chưa xong, nói gì tới thuật toán cao siêu vậy,
Nó chỉ là một loại toán ứng dụng. Nếu bạn quen với toán ứng dụng như xác suất thống kê thì nó còn dễ hơn giải tích và đại số.

Nếu chỉ muốn học cách sử dụng thì vào mấy diễn đàn R và Python chúng có cả đống thư viện để giải mấy bài toán tối ưu này.
Python và R dễ học hơn VBA nhiều, và thư viện của chúng dễ dùng hơn Excel nhiều.
 
Nếu điều kiện như bạn nói thì có hàng triệu kết quả??? Mình tính đến tổng của 7 số trở lại mà đã đến 19000 trường hợp. Vậy bản chất của việc tách nhóm để làm gì để có thể có cách khác hợp lý hơn.
Em nói thêm ý này không biết có giải thích thêm được gì để bác có thể giúp được:
khi nhóm lại 1 nhóm mà có số CBM trong khoảng (74-75) thì tách riêng ra ạ. không liên quan đến phần tính toán còn lại ạ.
Em cũng ko am hiểu nhiều về vấ đề toán ứng dụng nên mạnh dạn nói vậy
Cám ơn bác đã quan tâm ạ.
Bài đã được tự động gộp:

Nó chỉ là một loại toán ứng dụng. Nếu bạn quen với toán ứng dụng như xác suất thống kê thì nó còn dễ hơn giải tích và đại số.

Nếu chỉ muốn học cách sử dụng thì vào mấy diễn đàn R và Python chúng có cả đống thư viện để giải mấy bài toán tối ưu này.
Python và R dễ học hơn VBA nhiều, và thư viện của chúng dễ dùng hơn Excel nhiều.

bác ơi , tại cấu trúc câu hỏi của em nó search ra thì toàn đưa đến diễn đàn với những câu hỏi tương tự thôi
không thể đưa em đến với các diễn đàn bác hỏi, nếu được bác cho em xin 1 cái link được không ạ.
 
Lần chỉnh sửa cuối:
Nếu bỏ cái điều kiện liên tiếp thì bài này giống bài toán tối ưu hóa cắt thép. Nếu vẫn muốn nó liên tiếp thì thôi, coi như tôi chưa nói gì.
 
Làm công thức hay VBA vậy anh, công thức thì cho em học hỏi với ạ :)
Mấy dạng này phải dùng thuật toán vét cạn, công thức không làm được đâu bạn. GPE có mấy topic, bạn tìm chuỗi "tối ưu hóa cắt thép" sẽ thấy.
 
Web KT

Bài viết mới nhất

Back
Top Bottom