Mathcenter Forum  

Go Back   Mathcenter Forum > คณิตศาสตร์ทั่วไป > ปัญหาคณิตศาสตร์ทั่วไป
สมัครสมาชิก คู่มือการใช้ รายชื่อสมาชิก ปฏิทิน ข้อความวันนี้

ตั้งหัวข้อใหม่ Reply
 
เครื่องมือของหัวข้อ ค้นหาในหัวข้อนี้
  #1  
Old 26 ธันวาคม 2018, 20:21
thenightmare thenightmare ไม่อยู่ในระบบ
สมาชิกใหม่
 
วันที่สมัครสมาชิก: 24 ธันวาคม 2018
ข้อความ: 1
thenightmare is on a distinguished road
Default วิธีนี้เรียกว่าอะไรในเรื่องความน่าจะเป็นครับ

สวัสดีครับ ผมแชมป์ครับยินดีที่ได้รู้จักครับ เพิ่งสมัครครับ พอดีอยากรบกวนพี่พี่ น้องน้อง ในนี้ช่วยแก้ปัญหาให้หน่อยครับ
พอดี ผมทำ 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.มีวิธีอื่นในการหาอีกไหมครับ แนะนำได้นะครับ ผมคิดออกวิธีเดียวครับ

วิธีที่ผมทำคือ
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)

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

26 ธันวาคม 2018 20:24 : ข้อความนี้ถูกแก้ไขแล้ว 1 ครั้ง, ครั้งล่าสุดโดยคุณ thenightmare
เหตุผล: อยากแนะนำตัวว่า เป็นสมาชิกใหม่ครับ
ตอบพร้อมอ้างอิงข้อความนี้
  #2  
Old 04 มกราคม 2019, 14:20
ครูนะ ครูนะ ไม่อยู่ในระบบ
กระบี่ประสานใจ
 
วันที่สมัครสมาชิก: 27 ตุลาคม 2007
ข้อความ: 618
ครูนะ is on a distinguished road
Default

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

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

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

ไม่ต้องวนลูบ แต่ใช้เรียงสับเปลี่ยนให้ครบ 120 แบบ น่าจะแก้ปัญหาตรงนี้ได้ครับ
ตอบพร้อมอ้างอิงข้อความนี้
  #3  
Old 11 กุมภาพันธ์ 2019, 10:21
tngngoapm's Avatar
tngngoapm tngngoapm ไม่อยู่ในระบบ
บัณฑิตฟ้า
 
วันที่สมัครสมาชิก: 13 พฤศจิกายน 2014
ข้อความ: 462
tngngoapm is on a distinguished road
Default

อ้างอิง:
ข้อความเดิมเขียนโดยคุณ thenightmare View Post
สวัสดีครับ ผมแชมป์ครับยินดีที่ได้รู้จักครับ เพิ่งสมัครครับ พอดีอยากรบกวนพี่พี่ น้องน้อง ในนี้ช่วยแก้ปัญหาให้หน่อยครับ
พอดี ผมทำ 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.มีวิธีอื่นในการหาอีกไหมครับ แนะนำได้นะครับ ผมคิดออกวิธีเดียวครับ

วิธีที่ผมทำคือ
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)

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



กฎการส่งข้อความ
คุณ ไม่สามารถ ตั้งหัวข้อใหม่ได้
คุณ ไม่สามารถ ตอบหัวข้อได้
คุณ ไม่สามารถ แนบไฟล์และเอกสารได้
คุณ ไม่สามารถ แก้ไขข้อความของคุณเองได้

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
ทางลัดสู่ห้อง


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


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