Tags:

ชาวนาคนเดิม ได้ความคิดใหม่ จากการที่ก้อนหินชั่งน้ำหนักตาชั่งสมดุลของตนแตกออกเป็น 4 ส่วนนั้น (http://www.blognone.com/node/27749) ทำให้ชาวนาได้คิดค้นตาชั่งสมดุลแบบใหม่ ซึ่งสามารถชั่งได้จำนวนหลากหลายมากขึ้น โดยตาชั่งใหม่ตัวนี้มีถาดรองชั่งข้างละ 2 อันบนแกนสมดุลอันเดียวกัน โดยจุดแขวนถาดไกลจะอยู่ห่างออกไปจากศูนย์กลางสองเท่าจากจุดแขวนถาดใกล้

มีลักษณะดังนี้


(ดูจาก Firefox และ IE)
  ===================================
  =       =       ==       =        =
  =       =       ==       =        =
 ===     ===      ==      ===      ===
                  ==
                  ==

(ดูจาก Chrome)
          ====================================
          =               =                 ==                  =                 =
          =               =                 ==                  =                 =
        ===          ===               ==               ===             ===
                                              ==
                                              ==
                                              ==

(หากการแสดงผลรูปด้านบนมีปัญหา กรุณา copy ส่วนนี้แล้ววางลงใน Notepad ได้ครับ)

เมื่อได้ตาชั่งแบบใหม่นี่แล้ว ก็จำเป็นต้องหาก้อนหินชั่งน้ำหนักชุดใหม่ คำถามคือ ถ้าต้องการให้ชั่งของได้ตั้งแต่ 1, 2, .. , 140 kg ต้องใช้ก้อนหินอย่างน้อยกี่ก้อน และแต่ละก้อนหนักก้อนละเท่าไร (น้ำหนักก้อนหินเป็นจำนวนเต็มนะครับ) ?

(หวังว่าคำถามนี้จะเป็นที่ชื่นชอบ และแปลกใหม่ที่ไม่สามารถหาได้จากที่ไหนๆ ครับ)

.

Get latest news from Blognone
By: eol
Android
on 18 November 2011 - 16:55 #355126
eol's picture

chrome ผมก็ดูอันเดียวกะ FF IE ได้นะครับ =w=! (แต่ที่บอกว่าดูกะ chrome มันเรียงไม่มั่วแหะ win7 ครับ)

By: AMp
In Love
on 18 November 2011 - 17:46 #355136

เวรกำ ผมใช้ Chrome 15.0.874.120m + Win7 ดันดูตราชั่งของ Chrome ไม่ได้(เละ) แต่ FF+IE กลับสวยงาม -*-

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 18 November 2011 - 21:31 #355177
Invisible Force's picture

โอ้ .. ที่แท้เป็นที่ Chrome ผมเอง .. ดันกำหนดค่า option ส่วนของแบบอักษรที่มีความกว้างคงที่ ให้เป็น Tahoma ซี่งไม่ใช่ monospace font

By: neizod
ContributorTraineeIn Love
on 19 November 2011 - 02:49 #355227
neizod's picture
  • ทำไมต้อง 140 kg ด้วยครับ เอาไว้เล่น twitter เหรอ? 55+
  • จะจัดให้อักษรเท่าๆ กันให้ครอบด้วยแท๊ก pre ครับ
  • ถาดตาช่างนี้คำนวณตามหลักโมเมนต์ใช่มั้ยครับ? คือถ้าด้านนึงวาดถาดใกล้อีกด้านวางถาดไกล จะได้ว่าน้ำหนักด้านถาดใกล้คือ x2 ของด้านถาดไกลใช่มั้ยครับ?
By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 19 November 2011 - 11:07 #355261 Reply to:355227
Invisible Force's picture
  • ถาดตาช่างนี้คำนวณตามหลักโมเมนต์ใช่มั้ยครับ? คือถ้าด้านนึงวาดถาดใกล้อีกด้านวางถาดไกล จะได้ว่าน้ำหนักด้านถาด ใกล้คือ x2 ของด้านถาดไกลใช่มั้ยครับ?

    เป็นไปตามหลักของกฎธรรมชาติ (จะเรียกว่ากฎม้ากระดก ก็ได้ครับ ;D )
    คือ น้ำหนักที่วางลงบนถาดไกล จะให้ผลมากกว่าครับ จะให้ผลเป็น 2 เท่าของการวางลงบนถาดใกล้ ครับ

    (แต่ถึงจะเข้าใจสลับกัน แต่เฉพาะในกรณีนี้ก็ยังถือว่าได้คำตอบเหมือนกันครับ เพราะเพียงสลับกลับมาก็ถือว่าถูกต้องได้)

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 19 November 2011 - 11:01 #355262 Reply to:355227
Invisible Force's picture

ใช้ tag Pre อยู่ครับ .. ขอบคุณครับ

By: iStyle
ContributoriPhoneAndroidSymbian
on 19 November 2011 - 03:32 #355229
iStyle's picture

โอ้ เริ่มมีสองเท่าคิดแบบใช้เซนส์ยากละแฮะ สงสัยต้องเขียนสมการ = ='

ปล.บอกตามตรงหลังจากปัญหาเดิม ผมกลับไปคิดเล่นๆ ว่าถ้ามีตาชั่งสามแขนสี่แขนจะมีอะไรดีขึ้นมั้ยนะ และแล้ว..


May the Force Close be with you. || @nuttyi

By: iStyle
ContributoriPhoneAndroidSymbian
on 19 November 2011 - 03:45 #355230
iStyle's picture

ตอนนี้ผมได้ 4 อะครับ แต่คิดว่าน้อยกว่านี้ได้อีก เพราะมันเกิน 140 ไปเยอะเลย = ='


May the Force Close be with you. || @nuttyi

By: neizod
ContributorTraineeIn Love
on 19 November 2011 - 04:21 #355231 Reply to:355230
neizod's picture

ตอนนี้ของผมได้เป็นช่วงๆ (หลินฮุย) ฮะ คือ 1-114 อันนี้ได้ทุกตัว แต่หลังจากนั้นมีช่องว่างบ้างแฮะ

By: Thaina
Windows
on 19 November 2011 - 14:22 #355295

ไปๆมาๆ ผมว่าสูตรมันมีอยู่แค่ว่าต้อง Recursive หาก้อนหินที่หนักน้อยที่สุดที่ต้องมี(เพื่อเอาไปหักจำนวนที่มากที่สุดแล้วหาค่าได้) แล้วไล่ไปหาว่ามันหักได้มากที่สุดคือเท่าไหร่ แล้วเรียกฟังค์ชั่นลึกไปเรื่อยๆ

  • Most Case == 2A + 2B == 140
  • 2ndPossible Most Case == 2A + B
  • IEnumerable FindRecursive(int sum)
    • Need Case == 2A + B == 140 - 4sum - 1;
    • B -> (2A + 2B) - (2A + B) == Most Case - Need Case == 140 - (140 - 4sum - 1);
    • -> B == 4sum + 1
    • yield return B;
    • return FindRecursive(sum + B);
  • List AllResult = Recursive(0);

ตอนนี้ผมได้เป็น 1 5 25 125 ซึ่งน่าจะสามารถใช้คำนวนได้ถึง 1 - 312 (ถ้ามีแค่ 1 5 25 มันจะได้แค่ 1 - 62)

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 20 November 2011 - 00:06 #355401 Reply to:355295
Invisible Force's picture

ผมชอบมากเลย "หาก้อนหินที่หนักน้อยที่สุด แล้วไล่ไปหาว่ามันหักได้มากที่สุด"

ว่าแต่มั่นใจใช่มั๊ยครับว่ามีคำตอบชุดเดียว ?

By: Thaina
Windows
on 20 November 2011 - 01:00 #355405 Reply to:355401

ค่อนข้างมั่นใจครับ เป็นอัลกอริธึมที่ชัวร์สุด

ที่ผมไล่คิดจากหลังมาหน้า เพราะมันติดมาจากโจทย์ที่แล้ว ผมหลงไปช่วงนึงกับความคิดที่ว่า มันมีวิธีชั่งได้ 1 โดยไม่ต้องมีหินที่หนัก 1 (มีหิน 6 กับ 7 ก็ชั่งหา 1 ได้) แล้วก็เสียเวลาไปกับความคิดนี้พักใหญ่ เลยลองกลับด้านดู ว่ามีวิธีชั่ง 39 ได้ยังไงบ้าง

แล้วก็พบว่าเป็นไปไม่ได้ ต้องใช้หินหนัก 1 แน่นอน เลยรู้สึกว่าการจัดสมการรูปนี้จะชัวร์กว่า

By: Virusfowl
ContributorAndroidSymbianWindows
on 19 November 2011 - 20:47 #355354

รอดูเฉลยอย่างเดียว ชอบคำถามพวกนี้ แต่ไม่มีปัญญาคิด 55


@ Virusfowl

I'm not a dev. not yet a user.

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 19 November 2011 - 21:04 #355356
Invisible Force's picture

ผมดีใจมากที่ได้เห็นอัศวินทาง Problem Solving กันหลายท่าน

By: neizod
ContributorTraineeIn Love
on 20 November 2011 - 00:32 #355402
neizod's picture

คิดยังไงก็ใช้ 4 ก้อนแฮะ 2, 10, 50, 250 (เหมือนกับ 1, 5, 25, 125 ของคุณ Thaina นั่นแหละ)

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 20 November 2011 - 00:42 #355403 Reply to:355402
Invisible Force's picture

ท่าน Thaina เค้า solve by programming ครับ, Math prove ของท่าน Neizod ก็ใช่ย่อยครับ

By: neizod
ContributorTraineeIn Love
on 20 November 2011 - 06:30 #355420 Reply to:355403
neizod's picture

น่าเสียดายที่เอาของที่อยากช่างไปไว้ได้แค่ถาดเดียวแฮะ (เพราะพอเอาไปวางอีกถาดจะทำให้เกิดช่องวางของน้ำหนัก) ถ้าสาามารถวางได้ทั้ง 2 ถาดน่าจะมันส์กว่านี้ ;)

ปล.เอา prove ข้อที่แล้วมาฝากฮะ ใครอ่านออกยกมือขึ้น ' ')/

No Description

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 25 November 2011 - 17:40 #357104 Reply to:355420
Invisible Force's picture

"ถ้าสามารถวางได้ทั้ง 2 ถาด [สิ่งของที่ต้องการชั่ง] น่าจะมันส์กว่านี้" .. ขอบคุณครับ ผมเตรียมคำถามเพื่อรองรับกรณีนี้เรียบร้อยแล้ว แต่เกรงว่าท่านอื่นๆ จะเบื่อคำถามแนวนี้กันไปก่อนเสียแล้วครับ

By: neizod
ContributorTraineeIn Love
on 4 December 2011 - 15:02 #360306 Reply to:357104
neizod's picture

ไม่ทันแล้ว ผมเขียนรูปทั่วไปแล้ว รอบหน้าไม่ตอบละ ;P

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 20 November 2011 - 02:57 #355414
Invisible Force's picture

(กว่าโควต้าการตอบผมจะกลับมาได้ เล่นเลยเที่ยงคืนไปเกือบชั่วโมง)

  • ท่าน Thaina เป็นคนแรกที่ตอบถูกนะครับ .. ส่วนของท่านอื่นคงทราบกันอยู่นะครับว่าคำตอบนั้นถูกหรือป่าว
    และกรณีของคุณ Thaina นั้นพิเศษ ต้องขอชื่นชมในเรื่องการเพิ่ม algorithm ที่มากกว่าการ วนลูป brute force ปกติ (แต่จริงๆ ผมก็ไม่รู้ว่าแอบวนลูปเช็คเพื่อความชัวร์ด้วยหรือป่าวนะครับ ;D)

  • จะเห็นว่าแม้บางท่านจะพยายามคิดเพียวๆ แต่ก็ต้องติดปัญหาในการตรวจสอบที่เยอะมากที่ต้องไล่เช็คจาก 1-140 ซึ่งถ้าโจทย์ขยายค่าไปมากกว่านี้ก็จะลำบากเอาได้ ดังนั้นการเขียนโปรแกรมช่วยก็จะลดภาระตรงนี้ไปได้ (อีกอย่างปกติแล้วคนที่เขียนโปรแกรมเค้าก็ต้องลองคิดแบบเพียวๆ ก่อนเหมือนกันนะครับ .. ยกเว้นหมดมุข เลือกใช้วิธีวนลูป brute force)

  • ถ้าถามถึงเฉลย ผมว่าหลายคนคงเห็นความสัมพันธ์ของคำตอบและอาจจะจับแนวทางได้แล้ว
    จะเห็นว่าการแก้ปัญหานี้จะมีความยุ่งยากหนึ่ง คือการเช็คคำตอบ คือ ต้องเช็คว่าทำให้เกิดค่าตั้งแต่ 1 ไปจนถึง 140 ให้ได้ ซึ่งมันค่อนข้างเยอะมาก

"My solution"

แต่ว่าผมจะขอเสนอวิธีการพิสูจน์แบบหนึ่งที่สามารถแก้ความยุ่งยากนี้ไปได้ นั้นคือ แปลงลักษณะการ generate ค่าต่อเนื่อง(และแถมยังเริ่มจากค่า 1 อีกด้วย)ให้เป็นระบบเลขฐานนั้นเอง ซึ่งมันก็สามารถ generate ค่าได้ต่อเนื่องใช่หรือไม่

หินแต่ละก้อนมีความเป็นไปได้ในการกระทำต่อตาชั่งได้ 5 กรณี คือ X => {-2, -1, 0, 1, 2} หรือ X เป็นค่าใดๆ ก็ได้ในเซตนี้ (จะมองว่าเป็น Random X ก็ได้คับ) โดยผมให้ ค่า - คือวางด้านซ้ายของตาชั่ง, ค่า + คือวางด้านขวา, ส่วนค่า 0 คือไม่นำไปวาง , ส่วน 2 ก็คือมีผลเป็น 2 เท่านั้นเอง

สมมุติให้ค่าน้ำหนักหินก้อนที่ 1, 2, 3, 4, ... เป็น A kg, B kg, C kg, D kg, ...

ค่าน้ำหนักบนตาชั่งคือ Absolute of |X(A) + X(B) + X(C) + X(D)| , มองว่า X เป็นค่า random ในเซต {-2, -1, 0, 1, 2} ก็ได้ที่เปลี่ยนแปลงได้ทุกครั้งที่เรียกใช้ซึ่งอาจจะไม่เท่ากันก็ได้

ขอกำหนดให้ Y => {0,1,2,3,4} หรือให้ Y เป็นค่าใดๆ ก็ได้ในเซตนี้ (หรือ Random Y in {0,1,2,3,4} )

ค่าน้ำหนักบนตาชั่ง =

= | XA + XB + XC + XD |

= | (YA + YB + YC + YD) - (2A+2B+2C+2D) |

(2A+2B+2C+2D) เป็นค่าคงที่เสมอ อันนี้ไม่มีผลต่อการทำให้ Generate ค่าต่อเนื่อง
ส่วนที่สำคัญคือชุด (YA + YB + YC + YD) ซึ่งผูกติดกับตัวแปร Random Y ซึ่งสามารถทำให้เกิดการ Generate ค่าต่อเนื่องได้

จะเห็นว่าถ้าชุดนี้ (YA + YB + YC + YD) โดยที่ Random Y มีค่าตั้งแต่ {0,1,2,3,4} ค่า A,B,C,D,.. จะสามารถ Generate ค่าต่อเนื่องได้ ต้องอยู่ในระบบ Base 5 คือ A,B,C,D = 5^0,5^1,5^2,... เท่านั้น ... และจะพบว่าคำตอบมีแค่ชุดเดียวเท่านั้นด้วย

ดังนั้นชุดหินที่ต้องใช้ที่ทำให้ชั่งได้ตั้งแต่ 1 .. 140 ก็คือต้องใช้ 1, 5, 25, 125 ครับ จำนวน 4 ก้อน

.

By: iStyle
ContributoriPhoneAndroidSymbian
on 20 November 2011 - 04:57 #355419 Reply to:355414
iStyle's picture

คำถามคือใช้อย่างน้อยกี่ก้อน และเป็นอะไรบ้าง(เงื่อนไขคือชั่งได้ 1..140)

งั้น 1 4 16 64 ก็เป็นคำตอบอีกชุดนึงรึเปล่า(ได้ 4 ก้อนเท่ากัน)

วิธีคิดผมคือ เริ่มจากโจทย์ที่แล้วว่ามันเป็น 1 3 9 27 เพราะฉะนั้นก็น่าจะเป็นอะไรคล้ายๆ กัน คิด 1 4 16 ได้ 1 5 25 ได้(ได้คือไม่มีช่วงขาด) พอมาเป็น 1 6 36 จะติดตรงที่ว่า (1+6)*2 = 14 และ 36-14 = 22 แปลว่าไม่สามารถสร้างเลข 15..21 ได้ เลยถอยกลับมาตอบที่ 4 ก้อนและมีคำตอบสองชุด...ประมาณนั้น


May the Force Close be with you. || @nuttyi

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 20 November 2011 - 10:44 #355427 Reply to:355419
Invisible Force's picture
  • ฐาน 6 ใช้ไม่ได้ครับ .. เพราะว่าค่าที่เป็นไปได้มีแค่นี้ {-2,-1,0,1,2} ซึ่งไม่พอสร้างฐาน 6
    และมันมีอยู่นิดหนึ่งคือ |VarieSet-ConstSet| จะต้อง generate ค่าให้เริ่มจาก 0,1,2,.. ได้

  • เดี๋ยวผมขอเช็คระบบฐานเลขคู่ก่อนนะครับ เช่น ฐาน 4 เป็นต้น

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 20 November 2011 - 11:02 #355431 Reply to:355419
Invisible Force's picture
  • เอ้อ .. ฐาน 4 ได้จริงๆ ด้วยครับ .. เยี่ยมจริงๆ ครับคุณ iStyle (น่าจะเพิ่ม "หล่อระเบิด" ข้างหน้าด้วยนะครับ)

  • เซต {-2, -1, 0, 1, 2} จะตัดให้ใช้เฉพาะ { -1, 0, 1, 2} เท่านั้นซึ่ง จะสามารถ Transform เข้าระบบฐาน 4 ได้ แต่ว่า |VerieSet-ConstSet| จะไม่สมมาตร แต่ก็สามารถ Generate ค่าต่อเนื่องออกมาได้ ซึ่งตรงนี้ผมมองข้ามไปจริงๆ

หุหุหุ เซตแบบนี้ { -1, 0, 1, 2} มันคือ "ตาชั่งสมดุลบนแกนไม่สมดุล" นะครับ .. โอ้วได้ New Idea เลย ... ขอบคุณมากครับ ท่าน iStyle

By: Thaina
Windows
on 20 November 2011 - 11:51 #355434 Reply to:355419

โอ้ แปลว่ามันน่าจะมีวิธี Solve ด้วย Algorithm อีกชั้นสินะครับ

ส่วนตัวผมชอบ 1 4 16 64 มากกว่านะ เพราะมันรวมแล้วใช้หินที่เบากว่า น่าสนใจๆ

By: hisoft
ContributorWindows PhoneWindows
on 11 June 2014 - 20:57 #712316 Reply to:355434
hisoft's picture

ถ้าเอาน้ำหนักรวมหินน้อยสุดโดยยังใช้สามถาดอยู่ เหมือนว่า 1 4 16 49 จะได้ด้วยนะครับ (น้ำหนักรวม 70 = ครึ่งนึงของน้ำหนักที่ต้องการให้ชั่งได้)

ใช้เลขอนุกรม *4 กับถาดสามถาดนี่แหละครับ แต่เมื่อผลรวมเกินครึ่งนึงของน้ำหนักที่ต้องการชั่งแล้ว (1+4+16+49 > 140/2) ก็หักน้ำหนักก้อนสุดท้ายออกให้เหลือผลรวมเท่ากับครึ่งนึงของน้ำหนักมากที่สุดที่ต้องการชั่ง

ปัญหาน่าจะอยู่ตรงที่เวลาช่วงระหว่างไม่ใช้ก้อนหนักสุด กับตอนเริ่มวางก้อนหนักสุด ที่ถาดใกล้ แล้วก็ช่วงที่ย้ายก้อนหนักสุดจากถาดใกล้ไปถาดไกล ถ้าตรงนี้ต่อกันได้ก็น่าจะโอเคครับ ผมลองคิดคร่าวๆ ของ 140 นี่ได้ครับ (คร่าวจริงๆ อาจจะพลาดได้) แต่ถ้าเป็นน้ำหนักอื่นนี่ไม่แน่ใจเหมือนกัน

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 21 November 2011 - 00:27 #355521 Reply to:355419
Invisible Force's picture

ผมจะแสดงการพิสูจน์ว่าสามารถแปลงลงระบบฐาน 4 ได้

ซึ่งจะใช้ถาดไม่ครบ โดยจะใช้ถาดแค่ _ _ | _ เท่านั้น (ไม่ต้องใช้ถาดไกลด้านขวา) โดยจะใช้ก้อนหิน 64,16,4,1 ตามที่ท่าน (หล่อระเบิด iStyle) เสนอคำตอบไว้

#Concept analysis

Y=Random value in {2, 1, 0, -1}

YD+YC+YB+YA + (D+C+B+A) - (D+C+B+A)
= Base4 - (1D+1C+1B+1A)
= Base4 - (64+16+4+1)
= Base4 - 85


#ScaleVisual Prove

Give: {D,C,B,A} = {64,16,4,1} , and z (in Base4_Y) = -1

Base10  Base4   Base4_Y     ScaleVisual ScaleValue

85      1111    0000        _   _   | _     0
86      1112    0001        _   A   | _     1
87      1113    0002        A   _   | _     2
88      1120    001z        _   B   | A     3
89      1121    0010        _   B   | _     4
90      1122    0011        _   BA  | _     5
91      1123    0012        A   B   | _     6
92      1130    002z        B   _   | A     7
93      1131    0020        B   _   | _     8
94      1132    0021        B   A   | _     9
95      1133    0022        BA  _   | _     10
96      1200    01zz        _   C   | BA    11
97      1201    01z0        _   C   | B     12
98      1202    01z1        _   CA  | B     13
99      1203    01z2        A   C   | B     14
100     1210    010z        _   C   | A     15
101     1211    0100        _   C   | _     16
102     1212    0101        _   CA  | _     17
103     1213    0102        A   C   | _     18
104     1220    011z        _   CB  | A     19
105     1221    0110        _   CB  | _     20
106     1222    0111        _   CBA | _     21
...

221     3131    2020        DB  _   | _     136
222     3132    2021        DB  A   | _     137
223     3133    2022        DBA _   | _     138
224     3200    21zz        D   C   | BA    139
225     3201    21z0        D   C   | B     140



By: lew
FounderJusci's WriterMEconomicsAndroid
on 21 November 2011 - 10:44 #355558 Reply to:355414
lew's picture

ผมเพิ่มสิทธิ contributor ให้แล้วนะครับ


lewcpe.com, @wasonliw

By: Invisible Force
ContributoriPhoneAndroidUbuntu
on 21 November 2011 - 11:23 #355581 Reply to:355558
Invisible Force's picture

ขอบพระคุณคร้าาาบ .. (:D)

By: 077023
ContributoriPhoneAndroidWindows
on 21 November 2011 - 11:15 #355576
077023's picture

อ่านนตามแล้วสุดยอดมากครับ


もういい