Mathcenter Forum

Mathcenter Forum (https://www.mathcenter.net/forum/index.php)
-   ปัญหาคณิตศาสตร์ทั่วไป (https://www.mathcenter.net/forum/forumdisplay.php?f=1)
-   -   วิธีนี้เรียกว่าอะไรในเรื่องความน่าจะเป็นครับ (https://www.mathcenter.net/forum/showthread.php?t=24285)

thenightmare 26 ธันวาคม 2018 20:21

วิธีนี้เรียกว่าอะไรในเรื่องความน่าจะเป็นครับ
 
สวัสดีครับ ผมแชมป์ครับยินดีที่ได้รู้จักครับ เพิ่งสมัครครับ พอดีอยากรบกวนพี่พี่ น้องน้อง ในนี้ช่วยแก้ปัญหาให้หน่อยครับ
พอดี ผมทำ project เกี่ยวกับ programming ครับ แล้วต้องเขียน paper จึงมีเรื่องมาขอความช่วยเหลือครับ

โจทย์ คือ มีตัวเลข set หนึ่งเช่น (19,4,16,4,21) เลขนี้จะเป็น input จาก user ครับ กี่จำนวนก็ได้ แล้ว ซ้ำได้
แล้วหารูปแบบทั้งหมดที่บวกกันแล้วไม่เกินตัวเลขมากสุดในตัวอย่างคือ 21
ตัวอย่างผลลัพธ์
1. 19 < 21 จะได้ (19)
2. 4+4 < 21 จะได้ (4,4)
3. 4+16 < 21 จะได้ (4,16)
คำตอบก็คือ มี 3 sets ตามด้านบนแล้วโชว์ set ผลลัพธ์

ผมเขียนโปรแกรมเสร็จแล้วครับ แต่ปัญหาคือ
1. อยากให้ช่วยเช็คหน่อยครับว่าผลลัพธ์ออกมาครบหมด (ตอนนี้ผมเช็คเองเหมือนจะครบหมดครับ แต่ยังไม่แน่ใจว่ามีกรณีที่ไม่ครอบคลุมหรือไม่)
2.ถ้าวิธีนี้ใช้ได้ ผมอยากรู้ว่าวิธีประมาณนี้เรียกว่า อะไร ในเรื่องความน่าจะเป็นครับ ผมอยากอ่านเพิ่มเติมเพื่อไปเขียน paper ครับ
3. แล้ววิธีนี้เขียนเป็น สมการได้ไหมครับ
4.มีวิธีอื่นในการหาอีกไหมครับ แนะนำได้นะครับ ผมคิดออกวิธีเดียวครับ :wacko:

วิธีที่ผมทำคือ
1.หาตัวที่มากที่สุดออกมา (21)
2.เรียงข้อมูลใหม่ใน set ที่เหลือ (4,4,16,19)
3.บวกไปเรื่อยเรื่อยจากตัวแรกครับ 4+4+skip +skip แต่ถ้าเกิน 21 ให้ข้ามแล้วบวกตัวถัดไปจนหมดครับ
4.จะได้ (4,4) เพราะบวกต่อจะเกิน
5.แล้ววนลูปเพื่อสลับตำแหน่งครับจะได้set (4,16,19,4) แล้วทำขอสามซ้ำครับ 4+16+19+....
6.จะได้ (4,16)
7.วนแบบนี้ไปเรื่อยเรื่อยครับ จนทำให้ทุกตัวเป็นตัวเริ่มต้นของ set ครับ
8. set (16,19,4,4) ก็จะได้ 16+ skip + 4 + skip (16,4)
9. set (19,4,4,16) ก็จะได้ 19 + skip + skip + skip (19)
10. เรียงข้อมูลใน set เอาเฉพาะ set ที่ไม่ซ้ำครับ (4,4),(4,16),(16,4),(19)
11. ก็จะได้คำตอบ เป็น 3 sets : (4,4),(4,16),(19)

ขอบคุณล่วงหน้านะครับ ผมไม่ค่อยเก่งเลข

ครูนะ 04 มกราคม 2019 14:20

วิธีนี้ ในกรณีต้องการเลข 3 ตัวด้วย จะตกเลข 2 ตัว ในบางกรณ๊ไปครับ ทำให้นับไม่ครบ

เช่น (1, 3, 4, 16, 19, 21)

พอหมุนมาถึง (16, 19, 1, 3, 4) จะนับ (16, 1, 3) จะขาด (16, 1) และ (16, 3)

ไม่ต้องวนลูบ แต่ใช้เรียงสับเปลี่ยนให้ครบ 120 แบบ น่าจะแก้ปัญหาตรงนี้ได้ครับ

tngngoapm 11 กุมภาพันธ์ 2019 10:21

อ้างอิง:

ข้อความเดิมเขียนโดยคุณ thenightmare (ข้อความที่ 186515)
สวัสดีครับ ผมแชมป์ครับยินดีที่ได้รู้จักครับ เพิ่งสมัครครับ พอดีอยากรบกวนพี่พี่ น้องน้อง ในนี้ช่วยแก้ปัญหาให้หน่อยครับ
พอดี ผมทำ project เกี่ยวกับ programming ครับ แล้วต้องเขียน paper จึงมีเรื่องมาขอความช่วยเหลือครับ

โจทย์ คือ มีตัวเลข set หนึ่งเช่น (19,4,16,4,21) เลขนี้จะเป็น input จาก user ครับ กี่จำนวนก็ได้ แล้ว ซ้ำได้
แล้วหารูปแบบทั้งหมดที่บวกกันแล้วไม่เกินตัวเลขมากสุดในตัวอย่างคือ 21
ตัวอย่างผลลัพธ์
1. 19 < 21 จะได้ (19)
2. 4+4 < 21 จะได้ (4,4)
3. 4+16 < 21 จะได้ (4,16)
คำตอบก็คือ มี 3 sets ตามด้านบนแล้วโชว์ set ผลลัพธ์

ผมเขียนโปรแกรมเสร็จแล้วครับ แต่ปัญหาคือ
1. อยากให้ช่วยเช็คหน่อยครับว่าผลลัพธ์ออกมาครบหมด (ตอนนี้ผมเช็คเองเหมือนจะครบหมดครับ แต่ยังไม่แน่ใจว่ามีกรณีที่ไม่ครอบคลุมหรือไม่)
2.ถ้าวิธีนี้ใช้ได้ ผมอยากรู้ว่าวิธีประมาณนี้เรียกว่า อะไร ในเรื่องความน่าจะเป็นครับ ผมอยากอ่านเพิ่มเติมเพื่อไปเขียน paper ครับ
3. แล้ววิธีนี้เขียนเป็น สมการได้ไหมครับ
4.มีวิธีอื่นในการหาอีกไหมครับ แนะนำได้นะครับ ผมคิดออกวิธีเดียวครับ :wacko:

วิธีที่ผมทำคือ
1.หาตัวที่มากที่สุดออกมา (21)
2.เรียงข้อมูลใหม่ใน set ที่เหลือ (4,4,16,19)
3.บวกไปเรื่อยเรื่อยจากตัวแรกครับ 4+4+skip +skip แต่ถ้าเกิน 21 ให้ข้ามแล้วบวกตัวถัดไปจนหมดครับ
4.จะได้ (4,4) เพราะบวกต่อจะเกิน
5.แล้ววนลูปเพื่อสลับตำแหน่งครับจะได้set (4,16,19,4) แล้วทำขอสามซ้ำครับ 4+16+19+....
6.จะได้ (4,16)
7.วนแบบนี้ไปเรื่อยเรื่อยครับ จนทำให้ทุกตัวเป็นตัวเริ่มต้นของ set ครับ
8ฃ. set (16,19,4,4) ก็จะได้ 16+ skip + 4 + skip (16,4)
9. set (19,4,4,16) ก็จะได้ 19 + skip + skip + skip (19)
10. เรียงข้อมูลใน set เอาเฉพาะ set ที่ไม่ซ้ำครับ (4,4),(4,16),(16,4),(19)
11. ก็จะได้คำตอบ เป็น 3 sets : (4,4),(4,16),(19)

ขอบคุณล่วงหน้านะครับ ผมไม่ค่อยเก่งเลข

ระเบียบวิธีที่เขียนมานี้น่าจะเรียกได้ว่าเป็น"อัลกอลิทึม"
ซึ่งในคณิตศาสตร์ก็มีทฤษฎีความน่าจะเป็นเช่นการเรียงสับเปลี่ยน,แฟคทอเรียลฯลฯเป็นต้นรองรับอยู่
สำหรับคำตอบนั้นสามารถใช้คณิตศาสตร์หาผลลัพธ์ได้
แต่สำหรับข้อมูลเข้าจำนวนมากๆคณิตศาสตร์ไม่สามารถรองรับได้ควรใช้อัลกอริทึมมาบริหารจัดการข้อมูล
เช่นการแบ่งกลุ่ม,การจัดเรียงข้อมูลฯลฯเป็นต้น อย่างเป็นระบบแล้วค่อยใข้ทฤษฎีความน่าจะเป็นหาคำตอบครับ:dry:


เวลาที่แสดงทั้งหมด เป็นเวลาที่ประเทศไทย (GMT +7) ขณะนี้เป็นเวลา 03:50

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Modified by Jetsada Karnpracha