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

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


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

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

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

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

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

.

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

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

  • ทำไมต้อง 140 kg ด้วยครับ เอาไว้เล่น twitter เหรอ? 55+
  • จะจัดให้อักษรเท่าๆ กันให้ครอบด้วยแท๊ก pre ครับ
  • ถาดตาช่างนี้คำนวณตามหลักโมเมนต์ใช่มั้ยครับ? คือถ้าด้านนึงวาดถาดใกล้อีกด้านวางถาดไกล จะได้ว่าน้ำหนักด้านถาดใกล้คือ x2 ของด้านถาดไกลใช่มั้ยครับ?
  • ถาดตาช่างนี้คำนวณตามหลักโมเมนต์ใช่มั้ยครับ? คือถ้าด้านนึงวาดถาดใกล้อีกด้านวางถาดไกล จะได้ว่าน้ำหนักด้านถาด ใกล้คือ x2 ของด้านถาดไกลใช่มั้ยครับ?

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

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

iStyle Sat, 19/11/2011 - 03:32

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

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

Thaina Sat, 19/11/2011 - 14:22

ไปๆมาๆ ผมว่าสูตรมันมีอยู่แค่ว่าต้อง 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)

Invisible Force Sun, 20/11/2011 - 00:06

In reply to by Thaina

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

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

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

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

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

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

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

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

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

  • ท่าน 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 ก้อน

.

คำถามคือใช้อย่างน้อยกี่ก้อน และเป็นอะไรบ้าง(เงื่อนไขคือชั่งได้ 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 ก้อนและมีคำตอบสองชุด...ประมาณนั้น

  • ฐาน 6 ใช้ไม่ได้ครับ .. เพราะว่าค่าที่เป็นไปได้มีแค่นี้ {-2,-1,0,1,2} ซึ่งไม่พอสร้างฐาน 6
    และมันมีอยู่นิดหนึ่งคือ |VarieSet-ConstSet| จะต้อง generate ค่าให้เริ่มจาก 0,1,2,.. ได้

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

  • เอ้อ .. ฐาน 4 ได้จริงๆ ด้วยครับ .. เยี่ยมจริงๆ ครับคุณ iStyle (น่าจะเพิ่ม "หล่อระเบิด" ข้างหน้าด้วยนะครับ)

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

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

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

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

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

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

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

ผมจะแสดงการพิสูจน์ว่าสามารถแปลงลงระบบฐาน 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