เราไม่เผยแพร่ผลงานที่มีลิขสิทธิ์ในประเทศไทย หากท่านพบเนื้อหาที่ละเมิดลิขสิทธิ์ แจ้งได้ที่เพจ Facebook NovelStore เราจะลบให้โดยเร็ว
ปัญหาการใช้งานเว็บไซต์ ติดต่อได้ที่เพจดังกล่าว
We do not publish or distribute copyrighted works in Thailand. To report infringing content, contact us via our Facebook page and we will remove it promptly. For other issues, use the same channel.

บทที่ 230 นอกเหนือจากภูเขานี้ยังมีภูเขาอื่น! (ฟรี)

บทที่ 230 นอกเหนือจากภูเขานี้ยังมีภูเขาอื่น! (ฟรี)

บทที่ 230 นอกเหนือจากภูเขานี้ยังมีภูเขาอื่น! (ฟรี)


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

เป็นการทดสอบพื้นฐานและความชำนาญของผู้เข้าแข่งขัน

หลี่เหยียนเพิ่งอ่านโจทย์จบและกำลังจะลงมือทำ เมื่อสายตาเหลือบไปเห็นข้อความแจ้งเตือนบนหน้าจอใหญ่:

"ผู้ทำโจทย์ระดับที่หนึ่งเสร็จเป็นอันดับสอง: B-7, โรงเรียนมัธยมซินเป่ย, เติ้งอวี๋ตี้, ใช้เวลา 29:28"

ในขณะที่เขาเหลือบมองไปยังประกาศนั้น ก็มีข้อความที่สามปรากฏขึ้น:

"ผู้ทำโจทย์ระดับที่หนึ่งเสร็จเป็นอันดับสาม: A-11, โรงเรียนมัธยมซินอัน, เจิ้งต้า, ใช้เวลา 29:30"

คนนี้หลี่เหยียนรู้จักว่าเป็นใคร เป็นนักเรียนผู้มีศักยภาพที่น่าจับตามองจากโรงเรียนมัธยมซินอัน ตอนเรียนมัธยมปีที่หนึ่งเขาเคยคว้าอันดับที่สองในการแข่งขันลีกระดับมัธยมปลาย โดยอันดับหนึ่งก็คือเติ้งอวี๋ตี้นั่นเอง

หลี่เหยียนยิ้มพลางพยักหน้าเบาๆ รู้สึกพึงพอใจที่การคาดการณ์ของตนเองถูกต้อง ทว่าก็รู้สึกถึงความกดดันเพิ่มขึ้นเล็กน้อย

ดีทีเดียว นี่แหละคือความรู้สึกของการแข่งขันที่แท้จริง

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

หน้าจอจะแสดงเพียงสามอันดับแรกที่ทำเสร็จเท่านั้น จากสัดส่วนการแสดงผล ดูเหมือนว่าผู้ที่ทำโจทย์เสร็จสามอันดับแรกในแต่ละระดับทั้งสามระดับจะได้รับการแสดงผลพร้อมกันบนหน้าจอ... หากเป็นคนแรกที่ทำเสร็จในทุกระดับ คงได้รับความสนใจอย่างมากแน่นอน

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

มือของเขายังคงทำงานต่อไปโดยไม่หยุดชะงัก โจทย์พื้นฐานมีแนวทางการแก้ปัญหาที่ชัดเจน หากแข่งด้านความเร็ว สิ่งที่ทดสอบก็คือความชำนาญในการเขียนโค้ด

ไม่นานโจทย์ข้อนี้ก็ถูกแก้ไขเสร็จสิ้น หลี่เหยียนกดส่งคำตอบด้วยความมั่นใจและพบกับโจทย์ข้อถัดไป:

จำนวนเฉพาะ คือจำนวนที่มีตัวประกอบเพียงแค่ตัวมันเองและเลข 1 เท่านั้น เช่น 1, 3, 5, 7, 17, 101 และ 10007...

หลี่เหยียนรู้สึกราวกับว่าเขามองเห็นรอยยิ้มมั่นใจของอาจารย์ผู้ออกโจทย์ จากท่อนเริ่มต้นนี้ ดูเหมือนว่าระดับความยากของโจทย์จะเพิ่มขึ้นอีกขั้น

"กำหนดให้มีชุดคำภาษาอังกฤษ แต่ละคำประกอบด้วยตัวอักษร a-z โดยแต่ละตัวอักษรจะมีค่าประจำตัว ตัวอักษร a มีค่าเท่ากับ 1, b มีค่าเท่ากับ 2 ไปเรื่อยๆ ตามลำดับ

หากผลรวมของค่าตัวอักษรในคำหนึ่งๆ เป็นจำนวนเฉพาะ คำนั้นจะเรียกว่า 'คำเฉพาะ' (prime word) จงเขียนโปรแกรมเพื่อตรวจสอบว่าคำที่กำหนดให้เป็นคำเฉพาะหรือไม่

หากผลรวมของค่าตัวอักษรในคำเป็นจำนวนเฉพาะ ให้แสดงผลว่า It is a prime word แต่หากไม่ใช่ให้แสดงผลว่า It is not a prime word"

หลี่เหยียนคิดแนวทางการแก้ปัญหาได้ทันที ความยาวของคำมีจำกัด ค่าของตัวอักษรก็มีจำกัด สามารถคำนวณหาค่าสูงสุดที่เป็นไปได้ จากนั้นคัดกรองจำนวนเฉพาะทั้งหมดในช่วงนั้นเพื่อสร้างเป็นเซ็ต u แล้วใช้สูตรคำนวณหาผลรวมของค่าตัวอักษรในคำ x จากนั้นนำผลลัพธ์มาเทียบกับเซ็ตของจำนวนเฉพาะ ถ้าผลลัพธ์คือ u[x]=1 ก็แสดงผล It is a prime word หากไม่ใช่ก็แสดงผลตรงกันข้าม ปัญหาก็จะได้รับการแก้ไข

ในความเห็นของหลี่เหยียน การใช้สูตรคำนวณในตอนหลังไม่ใช่ความยากที่แท้จริงของโจทย์นี้ ความท้าทายที่แท้จริงอยู่ที่การคัดกรองจำนวนเฉพาะ

ต้องรู้ไว้ว่า คำภาษาอังกฤษที่หมายถึง "โรคฝุ่นปอดที่เกิดจากการสูดดมซิลิเกตหรือเถ้าจากหินควอตซ์" คือ pneumonoultramicyoscpicailicovolcanoconiosis ซึ่งมีตัวอักษรถึง 45 ตัว

และนี่อาจจะยังไม่ใช่คำที่ยาวที่สุด เป็นเพียงคำที่ยาวที่สุดที่หลี่เหยียนรู้จัก สมมติว่าถ้าความยาวเฉลี่ยคือ 13 ตัวอักษร แต่มีคำที่ยาวถึง 50 ตัวอักษร ค่าสูงสุดก็จะอยู่ที่ 650

การคัดกรองจำนวนเฉพาะในช่วงนี้ไม่ง่ายเลย...

แต่ไม่ใช่ ปัญหาไม่ได้อยู่ตรงนี้ ถ้าเราไม่รู้ว่าค่าสูงสุดอยู่ที่เท่าไหร่ สมมติว่าในโลกนี้มีคำที่ประกอบด้วยตัวอักษรถึง 1913 ตัวล่ะ?

ใครจะรู้ว่าศัพท์เฉพาะทางบางคำจะยาวแค่ไหน งั้นต้องคัดกรองจำนวนเฉพาะไปจนถึงสองหมื่นเลยหรือ?

นี่ไม่ใช่ความยากระดับทั่วๆ ไปแล้วนะ

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

เขาเลื่อนเมาส์ลงไปด้านล่างโดยไม่ตั้งใจ:

"อินพุตประกอบด้วยชุดคำภาษาอังกฤษ แต่ละคำประกอบด้วยตัวอักษรแบบสุ่ม แต่ละคำอยู่คนละบรรทัด จำนวนตัวอักษรไม่เกิน 20 ตัว"

เวรเอ๊ย... เขาแทบจะกดเมาส์ทะลุแป้นพิมพ์ โจทย์ดูเหมือนจะจบแล้วทุกประการ แต่ทำไมบรรทัดนี้ถึงซ่อนอยู่!

ไม่เกิน 20 ตัว และกำหนดแบบสุ่ม นั่นหมายความว่าค่าสูงสุดไม่เกิน 520 เพียงแค่คัดกรองจำนวนเฉพาะระหว่าง 1 ถึง 520 ก็พอ

จะคัดกรองอย่างไร? ก็คัดกรองตรงๆ นั่นแหละ

หลี่เหยียนจำจำนวนเฉพาะตั้งแต่ 1 ถึง 300 ได้ทั้งหมด ส่วนที่เหลือก็แค่ตัดจำนวนประกอบที่เห็นได้ชัดออกไป จำนวนที่ต้องคำนวณจริงๆ ก็ไม่ได้มากนัก

บ้าเอ๊ย ถ้ารู้ก่อนจะท่องจำไปถึง 1000 เลย จะได้เข้าใจทันทีโดยไม่ต้องคิดมาก

โจทย์ที่ไม่ได้ยากเกินไปกลับทำให้หลี่เหยียนรู้สึกตึงเครียด เมื่อคัดกรองเซ็ตจำนวนเฉพาะเสร็จ เขาก็รีบสร้างสูตรโดยไม่รอช้า

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

ติ๊งต่อง!

"ผู้ทำโจทย์ระดับที่สองเสร็จเป็นอันดับแรก: B-7, โรงเรียนมัธยมซินเป่ย, เติ้งอวี๋ตี้, ใช้เวลา 34:41"

"ผู้ทำโจทย์ระดับที่สองเสร็จเป็นอันดับสอง: E-12, โรงเรียนมัธยมที่หนึ่งซินเป่ย, หลี่เหยียน, ใช้เวลา 36:54"

อะไรกัน? ทั้งห้องฮือฮาขึ้นมา บางคนเพิ่งจะเริ่มทำโจทย์ระดับที่สอง แต่นี่มีคนสองคนทำเสร็จไปแล้ว?

โรงเรียนมัธยมที่หนึ่งซินเป่ยไม่ใช่โรงเรียนมัธยมต้นหรอกหรือ? นักเรียนมัธยมต้นจะมาแสดง... แต่แล้วพวกเขาก็เห็นชื่อหลี่เหยียนชัดเจน นี่เป็นเรื่องจริงหรือ?

เลขานุการจินที่นั่งอยู่ข้างๆ หญิงสาวคนหนึ่ง ซึ่งก็คือรองประธานสมาคมคอมพิวเตอร์มณฑลหลินเจียง นามว่าจาง แสดงความประหลาดใจ "การสอบสี่ชั่วโมงครึ่ง แค่สองระดับใช้เวลาแค่ชั่วโมงเดียว? นี่มันเกินไปไหม?"

"เกินความคาดหมาย ก็ดีไม่ใช่หรือ?" เลขานุการจินยิ้มตอบ

แต่ในใจเขาก็ไม่ค่อยมั่นใจนัก ถ้าสุดท้ายหลี่เหยียนแค่พยายามเรียกร้องความสนใจ หน้าเขาก็คงแย่แน่ๆ

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

หลี่เหยียนมั่นใจว่าความเร็วในการพิมพ์ของเขาเหนือกว่าเติ้งอวี๋ตี้ ดังนั้นโจทย์พื้นฐานเขาน่าจะทำได้เร็วกว่า

แล้วเติ้งอวี๋ตี้คนนี้ใช้อะไรทำให้โจทย์ข้อที่สองเสร็จเร็วกว่าหลี่เหยียนที่จำจำนวนเฉพาะ 1 ถึง 300 ได้ทั้งหมด?

มีสองความเป็นไปได้ หนึ่งคือเติ้งอวี๋ตี้จำจำนวนเฉพาะตั้งแต่ 1 ถึง 520 ได้ทั้งหมด สองคือเขาเขียนโปรแกรมคัดกรองจำนวนเฉพาะขึ้นมาเอง... และมีประสิทธิภาพมากด้วย

ไม่ว่าจะเป็นความเป็นไปได้ข้อไหน คนคนนี้ก็เป็นคู่แข่งที่น่ากลัวจริงๆ...

แต่ตอนนี้ต้องมุ่งความสนใจไปที่โจทย์ระดับที่สาม ซึ่งเป็นโจทย์ที่ต้องทำงานร่วมกัน โจทย์นี้จะเป็นโจทย์ที่ยากที่สุดในวันนี้อย่างไม่ต้องสงสัย... หรืออาจจะเป็นโจทย์ที่มีปริมาณงานมากที่สุด แต่เนื่องจากเฉินฟานยังทำไม่เสร็จ หลี่เหยียนจึงต้องพิจารณาด้วยตัวเองก่อน:

"กำหนดให้มีส่วนของเส้นตรงจำนวนหนึ่ง เส้นตรงคือแกน X ส่วนของเส้นตรงมีพิกัดเป็น [Li, Ri] จงหาจำนวนส่วนของเส้นตรงน้อยที่สุดที่สามารถครอบคลุมช่วง [0, m] ได้"

หลี่เหยียนขมวดคิ้วเล็กน้อย โจทย์นี้ดูไม่ค่อยชัดเจนนัก

"บรรทัดแรกของอินพุตระบุจำนวนกรณีทดสอบ ตามด้วยบรรทัดว่าง

แต่ละกรณีทดสอบจะเริ่มด้วยจำนวนเต็ม M (M น้อยกว่าหรือเท่ากับ 5000 และมากกว่าหรือเท่ากับ 1) ตามด้วยหลายบรรทัด แต่ละบรรทัดแสดงส่วนของเส้นตรงในรูปแบบ 'Li Ri'..."

"เอาต์พุต: สำหรับแต่ละกรณีทดสอบ บรรทัดแรกของเอาต์พุตคือจำนวนเต็มที่แสดงจำนวนส่วนของเส้นตรงน้อยที่สุดที่ครอบคลุมช่วง [0, m] ตามด้วยหลายบรรทัดที่แสดงส่วนของเส้นตรงที่เลือก โดยแสดงพิกัดของส่วนของเส้นตรงเรียงตามปลายซ้าย หากไม่มีคำตอบ นั่นคือช่วง [0, m] ไม่สามารถถูกครอบคลุมด้วยส่วนของเส้นตรงที่กำหนดให้ ให้แสดงผลเป็น 0..."

โจทย์นี้มีความยากอยู่ หลี่เหยียนอ่านจบแล้วไม่ได้ลงมือทำทันที โจทย์ประเภทนี้ถ้ารีบร้อนแล้วเกิดข้อผิดพลาดในโปรแกรม การแก้ไขจะเสียเวลามากกว่า

จำเป็นต้องมีแนวคิดที่สมบูรณ์และเป็นไปได้ก่อน

หน้าจอใหญ่ก็แสดงผู้ที่ทำโจทย์ระดับที่สองเสร็จเป็นอันดับที่สาม:

"ผู้ทำโจทย์ระดับที่สองเสร็จเป็นอันดับสาม: E-11, โรงเรียนมัธยมที่หนึ่งซินเป่ย, เฉินฟาน, ใช้เวลา 45:02"

45 นาที? เขาไม่ได้ช้าแค่ไม่กี่นาทีหรอกนะ ดูเหมือนว่าเฉินฟานใช้เวลากับการตอบคำถามข้อเขียนค่อนข้างมาก

แต่ก็ไม่เป็นไร "ความเร็ว" ไม่ใช่ความต้องการหลักของการสอบครั้งนี้

"หลี่เหยียน?" เสียงของเฉินฟานดังมาจากหูฟัง

"รับทราบ"

"ทำไมนายทำไวจัง? เติ้งอวี๋ตี้คนนั้นก็บ้าไปแล้ว ทำไมทุกคนทำเร็วขนาดนี้ ไม่จำเป็นเลย!"

จริงอยู่ โจทย์ข้อสุดท้ายแม้จะยาก แต่สามชั่วโมงก็น่าจะเพียงพอ การรักษาความถูกต้องต้องมาก่อน จากนั้นจึงค่อยพัฒนาความสวยงามของวิธีคิด นี่ควรเป็นสิ่งสำคัญอันดับแรก

หลี่เหยียนทำแค่อยากจะอวดเท่านั้นเอง แต่เขาก็ไม่รู้ว่าเติ้งอวี๋ตี้คนนี้เป็นอย่างไร

"แกก็ทำเร็วไม่ใช่หรือ? ติดอันดับสามในระดับที่สองเลยนี่" หลี่เหยียนรู้สึกประหลาดใจ เฉินฟานไม่เคยมีความเร็วเป็นจุดเด่น แต่กลับสามารถคว้าตำแหน่งแสดงผลได้ในสนามแข่งขันที่มีมือฉกาจมากมายจากโรงเรียนมัธยมปลาย

"อ๋อ ฉันจำจำนวนเฉพาะตั้งแต่ 0 ถึง 600 ได้ทั้งหมด ช่วยประหยัดเวลาไปเยอะเลยในโจทย์ที่แล้ว"

ฮะ?

คำวิจารณ์ขอยกไว้ก่อน มาดูโจทย์กันดีกว่า

"ดังออกชื่อเสียงต้องรีบทำตั้งแต่เนิ่นๆ นะ เฉินฟาน"

(จบบท)

จบบทที่ บทที่ 230 นอกเหนือจากภูเขานี้ยังมีภูเขาอื่น! (ฟรี)

คัดลอกลิงก์แล้ว