Tags:

อย่างเช่นมีชุดตัวเลข 1 1 1 2 2 3 4 ต้องการจัดกลุ่มให้รวมกันได้ใกล้เคียง 5 ที่สุด (optimize) โดยในแต่ละกลุ่มไม่จำกัดว่ามีตัวเลขกี่ชุด

ผลของโปรแกรมที่ควรจะได้ 2 3 , 1 4 , 1 1 2

ไม่ทราบว่าแบบนี้เขาเรียก algorithm อะไรครับ ถ้าใครมี link ตัวอย่างโปรแกรมภาษาอะไรก็ได้ครับ จะลองไปศึกษาดูครับ

ขอบคุณครับ

Get latest news from Blognone
By: JavaDevil
iPhoneUbuntuIn Love
on 13 November 2012 - 13:58 #505561

ใกล้ 5 ที่สุดมีเงื้อนไขไหมครับว่า +/- ไม่เกินเท่าไหร? หรือต้องเท่ากับ 5

By: pure88
Windows
on 13 November 2012 - 14:13 #505571 Reply to:505561
pure88's picture

ไม่มีครับ ขอให้เท่ากับหรือใกล้เคียง 5 ที่สุด น้อยกว่าได้แต่ห้ามเกิน 5 ครับ
เป้าหมายคือให้ได้จำนวนกลุ่มน้อยที่สุดครับ

By: Diaboros_Sorobaid
Windows PhoneAndroidWindows
on 13 November 2012 - 14:18 #505575
Diaboros_Sorobaid's picture

Genetic Algorithm เลยครับ.

By: deargerous
ContributoriPhoneAndroidWindows
on 13 November 2012 - 19:02 #505718
deargerous's picture

ใช้ Bruce force น่าจะง่ายสุดแต่ถึกที่สุด

By: neizod
ContributorTraineeIn Love
on 22 November 2012 - 18:04 #509957 Reply to:505718
neizod's picture

ถ้าเจอ input ระดับหลักพันตัวจะไม่พูดอย่างนี้....

By: achidad
UbuntuWindows
on 14 November 2012 - 02:22 #505885

http://en.wikipedia.org/wiki/Partition_problem

แบบนี้รึเปล่าครับ

หรือแบบนี้

http://en.wikipedia.org/wiki/Bin_packing_problem

By: pure88
Windows
on 14 November 2012 - 16:23 #506144 Reply to:505885
pure88's picture

ขอบคุณครับ อันนี้ตรงกับที่ลองเขียนเองครับ เลือกเอาอันที่พอดีไปก่อน (First-fit algorithm) ประสิทธิภาพเฉลี่ย 90 - 98% ครับ (ลองกับข้อมูลแบบสุ่ม 100 ชุด) ไม่ได้ดีที่สุด แต่ก็ใช้เวลาคำนวณน้อย และง่ายพอที่จะมีปัญญาเขียนเองได้ ส่วนอื่น ๆ จะลองศึกษาเพิ่มเติมครับ :)

By: pure88
Windows
on 14 November 2012 - 16:24 #506145
pure88's picture

ขอบคุณสำหรับทุกคำตอบครับ