ค้นพบเทคโนโลยีทายเลข 4 หลัก!แน่นอนความน่าเชื่อถือ จำนวนความพยายามที่ต้องการ - 5 -6 ในกรณีโชคร้ายอาจต้องใช้เวลา 7
อย่างไรก็ตาม เทคโนโลยีนี้ต้องใช้สติปัญญาที่ดีจากคุณและใช้เวลานานพอสมควรในการเดาตัวเลข (ฉันต้องใช้เวลา 70 ถึง 160 วินาที) หากสิ่งนี้ไม่เหมาะกับคุณ คุณสามารถใช้เทคโนโลยีนี้ได้อย่างปลอดภัย)
หลักการคือสิ่งนี้
สำหรับความพยายาม 4 ครั้งแรกเราเขียนตัวเลขต่อไปนี้:
1234
4567
3480
6043
และดูผลลัพธ์
โดยเฉพาะที่เราสนใจ ผลรวมวัวและวัวทั้งหมดสำหรับความพยายามทั้ง 4 ครั้งนี้
คุณอาจถามว่าเกิดอะไรขึ้น ทำไมตัวเลขเหล่านี้ถึงเจาะจง? จริงๆ แล้ววิธีอื่นๆ เป็นไปได้ แต่ต้องมีเงื่อนไขต่อไปนี้:
ต้องทำซ้ำหนึ่งหลัก สี่ครั้ง (ในกรณีนี้คือ 4 ) และแนะนำให้ยืนในตำแหน่งที่แตกต่างกันทุกจำนวน
หนึ่งหลัก - สามครั้ง (ในกรณีนี้คือ 3 );
สองหลัก - แต่ละหลัก สองครั้ง ( 6 และ 0 );
และหนึ่งหลัก - ไม่มาเลย ( 9 ).
ในกรณีนี้จะมีการทำซ้ำห้าหลักหนึ่งครั้ง - นี่ 1, 2, 5, 7 และ 8 .
คุณสมบัติอื่น: ในจำนวน 6043 ที่เราป้อนในความพยายามครั้งที่ 4 มีอยู่ ทั้งหมดตัวเลขที่ซ้ำกันมากกว่าหนึ่งครั้งในชุดค่าผสมที่กำหนด (นี่คือ 4, 3, 6 และ 0 ) - และ เท่านั้นพวกเขา. สิ่งนี้จะมีบทบาทสำคัญเช่นกัน เหตุใดจึงจำเป็น ฉันจะบอกคุณในภายหลัง
ตอนนี้เรานับผลรวมของวัวและวัวที่ได้รับมีได้ตั้งแต่ 3 ถึง 11 เราต้องการสิ่งนี้เพื่อพิจารณาว่าหมายเลขซ้ำใดที่พบในหมายเลขที่ซ่อนอยู่
ตัวอย่างเช่นหากในที่สุดมันก็กลายเป็น 3 วัวและวัว - เห็นได้ชัดว่าตัวเลขที่ซ่อนอยู่นั้นมีตัวเลขสามตัวที่ซ้ำกันหนึ่งครั้งและตัวเลขที่หายไป ไม่สามารถมีทางเลือกอื่นได้
สำหรับผู้ที่ต้องการประหยัดเวลา นี่คือสูตรโกง:
จำนวน BC/การทำซ้ำ
3 = 1110
4 = 2110 หรือ 1111
5 = 3110/2210/2111
6 = 4110/3210/3111/2211
7 = 4210/4111/3220/3211
8 = 4310/4220/4211/3221
9 = 4320/4311/4221
10 = 4321
11 = 4322หากผลรวมอยู่ระหว่าง 4 ถึง 9 แสดงว่ามีหลายตัวเลือกอย่างที่คุณเห็น
ในกรณีนี้เบอร์มาช่วย 6043 (อันที่พบเฉพาะเลขซ้ำ) มาดูจำนวนวัวและวัวที่เขามีกัน
เช่น ถ้ายอดรวมเป็น 7 และความพยายามครั้งที่สี่มีวัวเพียงตัวเดียวก็ชัดเจน - ไม่เช่นนั้น 4111 ไม่สามารถมีตัวเลือกได้นี่คือตัวอย่าง:
1234 - 1b, 1k
4567 - 1b, 1k
3480 - 0b, 2k
6043 - 1b, 0kเราทดแทนและรับสิ่งต่อไปนี้:
ตัวเลข 4 - มีแน่นอนและเธออยู่ในอันดับที่ 3
ดิจิตอล 3, 6, 9, 0 - ไม่แน่นอน.
เราทดแทนผลลัพธ์สำหรับความพยายามครั้งที่สาม: หมายเลข 8 - มีแน่นอน.
และก็มีตัวเลขตัวหนึ่งด้วย 12 และหนึ่งในตัวเลขนั้น 57 - ทั้งสองยืนอยู่ในตำแหน่งของตน (เนื่องจากในทั้งสองกรณี 4 คือวัว)
ตัวเลือกที่เป็นไปได้: 1847 , 1548 , 8247 .
เรายังไม่สามารถระบุจำนวนได้แม่นยำมากขึ้น แต่โปรดทราบว่าเราได้ลดจำนวนตัวเลือกที่เป็นไปได้ลงแล้ว สาม(ถึงแม้จะมีไม่มากก็น้อยก็ตาม. 4536 โดยมีเงื่อนไขว่าตัวเลขต้องไม่ขึ้นต้นด้วยศูนย์) ความน่าจะเป็นที่เราจะทายถูกในการพยายามครั้งที่ 5 คือ 33% คำถาม - สิ่งที่ต้องป้อนในความพยายามครั้งที่ 5?
ลองดูตัวเลือกต่างๆ
ถ้าเราเข้าไป 1847 , ที่:
หากทายตัวเลข 1548 ผลลัพธ์จะเป็น - วัว 2 ตัว วัว 1 ตัว.
หากทายตัวเลข 8247 ผลลัพธ์จะเป็น - วัว 2 ตัว วัว 1 ตัว.
เอาท์พุท: หมายเลข 1847 คุณไม่ควรเข้าไป เว้นแต่ความสามารถพิเศษของคุณจะบอกคุณว่านี่คือความหมายที่แท้จริง
ถ้าเราเข้าไป 1548 , ที่:
ถ้ามันเป็นเรื่องลึกลับ 1847 ผลลัพธ์จะเป็น - วัว 2 ตัว วัว 1 ตัว.
ถ้ามันเป็นเรื่องลึกลับ 8247 ผลลัพธ์จะเป็น - วัว 1 ตัว วัว 1 ตัว.
ดีขึ้นแล้ว! เราทำความพยายามครั้งที่ห้า ด้วยความน่าจะเป็น 33% - ดูเหมือนว่าจะประสบความสำเร็จ แต่ถ้าไม่เช่นนั้นความพยายามครั้งที่หกจะเป็นครั้งสุดท้ายอย่างแน่นอน -หากหลังจากการตรวจสอบดังกล่าว ยังเหลือหลายตัวเลือก (เช่น ผลรวมทั้งหมด = 8 ผลรวมของหมายเลขที่ 4 = 2 ตัวเลือกคือ 4310 และ 4211) ให้วิเคราะห์เพิ่มเติมตามจำนวนกระทิง และวัวในแต่ละครั้ง
อีกตัวอย่างหนึ่ง:
1234 - 1b, 1k
4567 - 0b, 2k
3480 - 2b, 0k
6043 - 0b, 2kจำนวน = 8. 8 = 4310/4220/4211/3221.
หลังจากตรวจสอบครั้งที่ 4 แล้ว ตัวเลือกที่เป็นไปได้: 4211, 4310 .
มาตรวจสอบกันก่อน 4310 - อาจเป็นเช่นนี้หรือไม่? อาจจะ. ซึ่งหมายความว่าตัวเลข 3 และ 4 - มี 6 และ 0 - เลขที่, 9 - มี. ทุกอย่างลงตัว
ตอนนี้เรามากำหนดสถานที่กันดีกว่า ความพยายามครั้งที่สาม - วัวสองตัวและยกเว้น 3 และ 4 ไม่สามารถมีตัวเลือกได้ STO-o-op!แล้ววัวอยู่ที่ไหนในความพยายามครั้งแรก? ตามที่เธอพูดตัวเลข 1 และ 2 มันเป็นไปไม่ได้ แต่ 3 และ 4 ยุ่งอยู่แล้ว... มันไม่ทำงาน!
วิธี - 3 ยังไม่มี แต่ทางเลือกเดียวที่เหลืออยู่คือ 4211 .
นั่นคือ: 4 ก็มีเช่นกัน 6 หรือ 0 , 9 เลขที่ 3 - ก็ไม่เช่นกัน
สมมุติว่ามี 4 และ 6 แล้วยังมีอีกมาก 8 และยัง 1 หรือ 2 .
ถ้าเราสมมุติว่ามี 4 และ 0 นั่นคือยังคงอยู่ 5/7 หรือ 1/2 .
อีกประเด็นหนึ่ง: ในความพยายามครั้งแรก วัวตัวหนึ่งถูกปล่อยทิ้งไว้โดยไม่ได้ใช้ และนี่คือจำนวนที่แน่นอน 1 เนื่องจากตำแหน่งที่สองเป็นตัวเลข 4 (ตามความพยายามครั้งที่ 3) และตัวเลข 3 ไม่เลย.
ดังนั้นเลขสองตัวแรกของตัวเลข 14 .
ตัวเลือก: 1450, 1470, 1486.
และอีกครั้ง เราเดาว่ามีความน่าจะเป็น 33% ในการลองครั้งที่ห้า และความน่าจะเป็น 67% ในวันที่หกแน่นอนว่าบูลส์มีบทบาทสำคัญในเกมนี้ ในความพยายามครั้งที่สามเราได้วัวสองตัว - และในที่สุดเราก็เซฟได้หนึ่งกระบวนท่า แต่ในความเป็นจริง มันเกิดขึ้นที่ฉันสามารถชนะในการลองครั้งที่ห้า (และถึงแม้จะไม่ต้องเดาในตอนท้าย!!!) ด้วยวัวเพียงตัวเดียว
ตัวอย่างเช่น:1234 - 0b, 2k
4567 - 1b, 0k
3480 - 0b, 3k
6043 - 0b, 3k.จำนวน = 9 . 9 = 4320/4311/4221.
6043 = วัว 3 ตัว
ตัวเลือกยังคงอยู่ 4320 และ 4221 .
ลองทั้งสองตัวเลือกนี้ ตามข้อแรก:
มีตัวเลข 4, 3 และ 9 นอกจากนี้ยังมี 6 หรือ 0 .
หรือ:
กิน 4, 6 และ 0 และอีกหนึ่งหลักที่ไม่ซ้ำกัน - 1, 2, 5, 7 หรือ 8 .
ที่? มาดูวัวกัน และเราพบความคลาดเคลื่อน - ในความพยายามครั้งที่สอง 4567 เรามีวัวเพียงตัวเดียว แต่ตามตัวเลือกนี้มีอยู่ 4 และ 6 . ไม่พอดี.
ดังนั้นเฉพาะตัวเลือกแรกเท่านั้นจึงจะเหมาะสมและอย่างที่เราเพิ่งค้นพบตัวเลข 6 ไม่ นั่นหมายความว่ามี 3, 4, 9 และ 0 .
ทีนี้มาคำนวณตำแหน่งของตัวเลขเหล่านี้กัน 4 - วัวตัวเดียวในความพยายามครั้งที่สอง ซึ่งหมายความว่าเธออยู่ในตำแหน่งที่หนึ่ง
ตัวเลข 3 สามารถอยู่ในตำแหน่งที่ 2 ได้เท่านั้น เนื่องจากใช้ในความพยายามครั้งแรกและครั้งที่สี่ในตำแหน่งที่ 3 และ 4 และไม่มีวัวตัวใดตัวหนึ่งเลย ดังนั้นเราจึงมีสองทางเลือก: 4390 และ 4309 . 4390 - เป็นไปไม่ได้ เนื่องจากในความพยายามครั้งที่สาม เราก็ไม่มีวัวเช่นกัน ทางเลือกเดียวที่เหลืออยู่คือ 4309 ซึ่งเราเข้าในความพยายามครั้งที่ 5 และชนะ!แต่บางครั้งสถานการณ์อาจเกิดขึ้นเมื่อความพยายามสี่ครั้งไม่เพียงพอที่จะลดกระบวนการต่อไปไปสู่การคาดเดาที่โง่เขลา
1234 - 0b, 1k
4567 - 1b, 0k
3480 - 0b, 1k
6043 - 0b, 1k.ทั้งหมด - 4 ทั้งหมด 4 = 2110 หรือ 1111
ในความพยายามครั้งที่ 4 - วัวตัวหนึ่ง ซึ่งหมายความว่าตัวเลือก 1111 ไม่เหมาะกับเรา - เท่านั้น 2110 .
จากนี้เราได้ข้อสรุปดังต่อไปนี้:
9 - มี
นอกจากนี้ยังมี 6 หรือ 0
นอกจากนี้ยังมี 1 หรือ 2 (ขึ้นอยู่กับตัวเลขแรก)
และอีกจำนวนหนึ่ง มันอาจจะเป็นเช่นนั้น 5 หรือ 7 แต่หากมีเลขใดตัวหนึ่งนี้ล่ะก็ 6 ไม่ แต่มีอยู่ 0 - หรือถ้ามี 6 นั่นคือ 8 จำเป็น.
พูดง่ายๆ ก็คือ ตัวเลือกตัวเลขคือ: 1/2 - 6 - 8 - 9 , หรือ 1/2 - 5/7 - 9 - 0.
เรายังไม่สามารถเดาตำแหน่งของตัวเลขได้ - มีวัวไม่เพียงพอ
ยังมีตัวเลือกที่เป็นไปได้มากมาย เราทำความพยายามครั้งที่ห้า เป็นการดีกว่าที่จะเป็นคนแรกที่ตรวจสอบตัวเลือกที่มีตัวเลขที่ทราบแน่ชัดน้อยกว่า ให้มันเป็นตัวเลข 2907 .
มันกลับกลายเป็นว่า: วัว 1 ตัว วัว 1 ตัว
สิ่งนี้หมายความว่าอย่างไร?
1: ตัวเลข 9 และ 0 - เป็นจริงและ 2 และ 7 ควรแทนที่ด้วย 1 และ 5 .
2: ตัวเลือกไม่ถูกต้องและตัวเลขตรงกัน 2 และ 9 และอีกสองอันที่เหลือ - 6 และ 8 .
นั่นคือชุดตัวเลขมีดังนี้: อย่างใดอย่างหนึ่ง 1-5-9-0 , หรือ 2-6-8-9 .
มาดูตัวเลือกแรกกันก่อน เรามีดังต่อไปนี้:
5 สามารถอยู่ในตำแหน่งที่สองเท่านั้น
0 - ไม่อยู่ในตำแหน่งที่สี่ นั่นหมายถึงอยู่ในตำแหน่งที่สาม (เขาไม่สามารถยืนต้นหมายเลขได้) นี่คือวัว;
1 - ไม่อยู่ในตำแหน่งแรก
ทางเลือกเดียวคือ 9501 - เรายังไม่รีบร้อนที่จะแนะนำมัน...
ตอนนี้ตัวเลือกที่สองคือชุด 2-6-8-9 :
6 - อยู่ในตำแหน่งที่สาม
2 - ไม่อยู่ในตำแหน่งที่สอง
ตัวเลือก: 2869, 2968, 8962, 9862
ตัวเลือก 2968 และ 9862 - ไม่เหมาะเนื่องจากในกรณีแรกคุณจะได้วัว 2 ตัวและอย่างที่สอง - ไม่มีเลย
เหลือสามตัวเลือก: 9501, 2869, 8962. มันเป็นเพียงเรื่องของโชคที่นี่ ฉันโชคไม่ดี ฉันเข้า 8962 และได้รับวัว 1 ตัวและมีเพียง 9501 เท่านั้น (((เปิดออก 7 ครั้ง)แน่นอนว่ามันดูยากในครั้งแรก แต่คุณเพียงแค่ต้องฝึกฝนแล้วทุกอย่างจะเรียบร้อย) และสิ่งสำคัญคือ ได้ผล- ในความเป็นจริงฉันเพิ่งเล่นกับคอมพิวเตอร์ 40 ครั้งใน 52.5% ของกรณี (21 จาก 40) ฉันเดาถูกใน 5 ครั้งใน 42.5% (17 จาก 40) ใน 6 และเพียงสองครั้ง (5%) ฉัน โชคไม่ดีและต้องใช้อันที่เจ็ด
แม้ว่าจะมีกรณีพิเศษอยู่ก็ตามด้วยความน่าจะเป็น 1 ใน 1134คอมพิวเตอร์สามารถเดาตัวเลขตัวใดตัวหนึ่งได้ 1234, 4567, 3480, 6043 - วันหนึ่งเขาขอเลข 4576 ซึ่งฉันเดาได้สำเร็จหลังจากพยายามสามครั้ง) หรืออาจกลายเป็นว่าหลังจากเข้าไปแล้วเช่น 3480 คุณจะได้รับ 0 วัว 0 วัวซึ่งทำให้การป้อนตัวเลขแทบไม่มีจุดหมาย 6043 - แต่ความจริงก็คือข้อเท็จจริง - เมื่อใช้กลยุทธ์นี้ความน่าจะเป็นในการเดาหลังจากพยายาม 4 ครั้งคือ 0.09%
ไม่เกิน 5 ครั้ง = ประมาณ 50%
ไม่เกิน 6 ครั้ง = ประมาณ 90%
ไม่เกิน 7 ครั้ง = 100%!
แน่นอนว่าฉันอาจจะผิด แต่ในความคิดของฉัน นี่เป็นกลยุทธ์ที่เหมาะสมที่สุดในการเดาตัวเลขสี่หลักขณะนี้ฉันยังคงคิดกลยุทธ์ในการเดาตัวเลข 5 หลัก 6 หลักและแม้กระทั่ง 9 หลัก ทันทีที่ฉันเข้าใจ ฉันจะแบ่งปันหากแน่นอนว่ามันน่าสนใจโดยสรุป ฉันให้ลิงก์ไปยังโปรแกรมเวอร์ชันของฉันซึ่งฉันเขียนใน 1.5 ชั่วโมงบน Delphi 7 คุณสมบัติพิเศษของมันคือความสามารถในการเดาตัวเลขทั้งตัวเลขสี่หลักและตัวเลขอื่น ๆ รวมถึงความสามารถในการผ่านการแข่งขันชิงแชมป์ , เช่น. ลำดับของรอบที่มีการเดาตัวเลขที่แตกต่างกันโดยจำกัดจำนวนครั้งและเวลา (บันทึกของฉันในการคว้าแชมป์ 8 รอบคือ 58 ครั้งและ 590 วินาทีระดับพลังจิต)
นี่เธอ-
สวัสดี
ย้อนกลับไปในฤดูใบไม้ร่วงปี 2 ขณะที่งานห้องปฏิบัติการเรื่อง "ทฤษฎีออโตมาตะ" ครูคิดงานให้เราได้ทันทีโดยเน้นไปที่ความปรารถนาของเราในการประเมิน ส่วนใหญ่เป็นเกม บางคนเล่นฮอกกี้ บางคนเล่นเทนนิส แต่ฉันมีเกมลอจิกที่ไม่เป็นที่รู้จักมากนัก "วัวและวัว".
จำเป็นต้องใช้พฤติกรรมที่สมเหตุสมผลของคอมพิวเตอร์ในเกมกับบุคคลเป็นอย่างน้อย แต่ฉันไปไกลกว่านั้นและหลังจากนั้นหนึ่งเดือนคอมพิวเตอร์ส่วนใหญ่ก็เอาชนะเพื่อนร่วมชั้นของฉันได้อย่างง่ายดาย และได้รับปืนกลสำหรับวัตถุนั้น คุณจะได้รับโปรแกรมหลังจากคำอธิบายของอัลกอริทึม
ตัวเลขที่เดาได้ 1622 - ถ้าเราถือว่า 6112 แล้วคำตอบจะเป็น: วัว 1 ตัว(หลักที่สี่ “2” อยู่ในตำแหน่ง) วัว 2 ตัว(หกและหนึ่งไม่ได้อยู่ในที่ของพวกเขา)
อัลกอริธึมเล็กๆ น้อยๆ ตัวแรกที่แนะนำตัวเองคือการวนซ้ำชุดต่างๆ "1111", "2222", "3333"...จนกว่าจะได้ชุดที่สมบูรณ์แล้วจึงสร้างการเคลื่อนไหวของชุดนั้น
เช่น ทายเลขเดียวกัน 1622 เราถือว่า "1111"เราได้รับการตอบสนอง "วัว", แล้ว "2222"- เราได้รับคำตอบแล้ว วัว 2 ตัว, "3333"- ว่างเปล่า, "4444"- ว่างเปล่า, "5555"- ว่างเปล่า, "6666" - วัว 1 ตัว.
เราจะไม่ดำเนินการต่อไปเพราะว่า มีวัวอยู่แล้ว 4 ตัวทั้งหมด สิ่งที่เหลืออยู่ก็คือการค้นหาชุดค่าผสมที่ใช่ เราจะทำการเรียงสับเปลี่ยนจนกระทั่งเราได้ตาดัม: "1226", "1262", "1226", "1262", "1622" - ทั้งหมด.
ฉันใช้เวลาส่วนใหญ่นั่งอยู่ในชั้นเรียนและเล่นกับตัวเอง พยายามคิดอัลกอริธึมเจ๋งๆ ของตัวเองขึ้นมา แต่มีเพียงความคิดที่แยกออกมาเท่านั้นที่ฉันไม่สามารถกำหนดกลยุทธ์ที่เป็นหนึ่งเดียวได้ ฉันเริ่มเรียนวรรณคดี ฉันเจอบทความเช่น "เดาใน 7 การเคลื่อนไหว" พวกเขาไม่ได้ดึงดูดฉันเพราะมี มากการแตกแขนงมากมาย แต่หลังจากอ่านหนังสือของศาสตราจารย์คิรอฟของเราแล้ว (แต่ไม่ใช่จากมหาวิทยาลัยของเรา) ซม. Okulov “การเขียนโปรแกรมในอัลกอริทึม”ฉันพบคำอธิบายของอัลกอริธึมที่ค่อนข้างเรียบง่ายและมีประสิทธิภาพ มันใช้สิ่งที่เรียกว่า “วิธีตะแกรง”(ตัวอย่างคงจะทราบกันดี. "ตะแกรงแห่งเอรัสสโตฟีเนส"- ปัญหาคลาสสิกในการหาจำนวนเฉพาะ) เราพิจารณาเซตที่มีจำกัดของจำนวนที่เป็นไปได้ทั้งหมด และการเคลื่อนไหวแต่ละครั้งเราจะกำจัดองค์ประกอบทั้งหมดของเซตที่ไม่สนใจออกไป
เช่น สำหรับตัวเลขที่ซ่อนอยู่ 1234 เราสันนิษฐาน 5678 และได้รับ วัว 0 ตัว และวัว 0 ตัวสิ่งที่ต้องคิด - เราไม่รวมตัวเลขทั้งหมดที่มี 5, 6, 7, 8 - คุณสามารถประเมินได้ทันทีว่าจะถูกหักไปเท่าใด 10000. อย่ากลัวหลายๆอย่าง 10000 องค์ประกอบ สำหรับ 5-6 จะเหลือเพียงไม่กี่การเคลื่อนไหวเท่านั้น
ค่าคอนต์ Pmax=10,000; พิมพ์ Post=string; Var A:อาร์เรย์ของโพสต์; //set B:อาร์เรย์ของบูลีน; // อาร์เรย์ของแฟล็ก 1 หมายถึงเหมาะสม 0 หมายถึงไม่รวม
การเริ่มต้น:
ต:=1;
สำหรับ i:=0 ถึง 9 ทำเพื่อ j:=0 ถึง 9 ทำเพื่อ k:=0 ถึง 9 ทำเพื่อ l:=0 ถึง 9 ทำเพื่อเริ่มต้น a[t]:=inttostr(i)+inttostr(j)+inttostr (k)+inttostr(ล.); // สร้างชุด inc(t); จบ; สำหรับ i:=1 ถึง pmax ทำ b[i]:=true; // โดยค่าเริ่มต้นตัวเลขทั้งหมดจะเหมาะสม
ฟังก์ชั่นที่ใช้การวิเคราะห์องค์ประกอบชุดตามค่าของตัวแปร (bk,kr - วัวและวัว)<>ฟังก์ชั่น pr(a,b:post;bk,kr:integer):boolean; //b คือการเคลื่อนไหวของเรา a เป็นองค์ประกอบของชุดที่ “ทดสอบแล้ว” var i,x:integer; เริ่มต้น x:=0;<>สำหรับ i:=1 ถึง 4 do // ตรวจสอบบูลส์ถ้า a[i]=b[i] แล้ว inc(x);<>ถ้า x bk จากนั้นให้เริ่ม pr:=false; ออก; จบ; x:=0; สวัสดี อัลกอริธึมเล็กๆ น้อยๆ ตัวแรกที่แนะนำตัวเองคือการวนซ้ำชุดต่างๆ "1111", "2222", "3333"...จนกว่าจะได้ชุดที่สมบูรณ์แล้วจึงสร้างการเคลื่อนไหวของชุดนั้น ฉันใช้เวลาส่วนใหญ่นั่งอยู่ในชั้นเรียนและเล่นกับตัวเอง พยายามคิดอัลกอริธึมเจ๋งๆ ของตัวเองขึ้นมา แต่มีเพียงความคิดที่แยกออกมาเท่านั้นที่ฉันไม่สามารถกำหนดกลยุทธ์ที่เป็นหนึ่งเดียวได้ ฉันเริ่มเรียนวรรณคดี ฉันเจอบทความเช่น "เดาใน 7 การเคลื่อนไหว" พวกเขาไม่ได้ดึงดูดฉันเพราะมี มากการแตกแขนงมากมาย แต่หลังจากอ่านหนังสือของศาสตราจารย์คิรอฟของเราแล้ว (แต่ไม่ใช่จากมหาวิทยาลัยของเรา) ซม. Okulov “การเขียนโปรแกรมในอัลกอริทึม”ฉันพบคำอธิบายของอัลกอริธึมที่ค่อนข้างเรียบง่ายและมีประสิทธิภาพ มันใช้สิ่งที่เรียกว่า “วิธีตะแกรง”(ตัวอย่างคงจะทราบกันดี. "ตะแกรงแห่งเอรัสสโตฟีเนส"- ปัญหาคลาสสิกในการหาจำนวนเฉพาะ) เราพิจารณาเซตที่มีจำกัดของจำนวนที่เป็นไปได้ทั้งหมด และการเคลื่อนไหวแต่ละครั้งเราจะกำจัดองค์ประกอบทั้งหมดของเซตที่ไม่สนใจออกไป ค่าคอนต์ Pmax=10,000; พิมพ์ Post=string; Var A:อาร์เรย์ของโพสต์; //set B:อาร์เรย์ของบูลีน; // อาร์เรย์ของแฟล็ก 1 หมายถึงเหมาะสม 0 หมายถึงไม่รวม การเริ่มต้น: ต:=1; สำหรับ i:=0 ถึง 9 ทำเพื่อ j:=0 ถึง 9 ทำเพื่อ k:=0 ถึง 9 ทำเพื่อ l:=0 ถึง 9 ทำเพื่อเริ่มต้น a[t]:=inttostr(i)+inttostr(j)+inttostr (k)+inttostr(ล.); // สร้างชุด inc(t); จบ; สำหรับ i:=1 ถึง pmax ทำ b[i]:=true; // โดยค่าเริ่มต้นตัวเลขทั้งหมดจะเหมาะสม ฟังก์ชั่นที่ใช้การวิเคราะห์องค์ประกอบชุดตามค่าของตัวแปร (bk,kr - วัวและวัว)<>ฟังก์ชั่น pr(a,b:post;bk,kr:integer):boolean; //b คือการเคลื่อนไหวของเรา a เป็นองค์ประกอบของชุดที่ “ทดสอบแล้ว” var i,x:integer; เริ่มต้น x:=0;<>สำหรับ i:=1 ถึง 4 do // ตรวจสอบบูลส์ถ้า a[i]=b[i] แล้ว inc(x);<>ถ้า x bk จากนั้นให้เริ่ม pr:=false; ออก; จบ; x:=0; 0) จากนั้นรวม(x); ถ้า x ดังนั้นหลังจากการเคลื่อนไหวแต่ละครั้งเราจึงเริ่มตะแกรง สำหรับ i:=1 ถึง Pmax ให้ทำ if b[i] และไม่ใช่ pr(a[i],hod,bk,kr) แล้ว b[i]:=false; โดยสรุป เราสามารถพูดได้ว่าอัลกอริทึมนั้นใช้หน่วยความจำมากและจะใช้เวลาคิดนานกว่าเมื่อเทียบกับอัลกอริธึมมาตรฐาน แต่จะง่ายกว่ามากเพียงใดและได้รับการปรับปรุงให้เหมาะสมที่สุด กฎของเกม สองคนกำลังเล่นอยู่ ทุกคนตั้งครรภ์และเขียนตัวเลขลับ 4 หลักที่มีตัวเลขไม่ซ้ำกัน ผู้เล่นที่เริ่มเกมด้วยการจับสลากจะพยายามเดาหมายเลข การลองคือตัวเลข 4 หลักที่มีตัวเลขไม่ซ้ำซึ่งสื่อสารกับคู่ต่อสู้ คู่ต่อสู้รายงานคำตอบว่าทายเลขได้กี่ตัวไม่ตรงกับตำแหน่งในเลขลับ และทายได้กี่ตัวถึงตำแหน่งในเลขลับ ตัวอย่างเช่น: หมายเลขความพยายาม: "2310" ผลลัพธ์: “วัว” สองตัว (ตัวเลขสองตัว: “2” และ “3” - ทายผิดตำแหน่ง) และ “กระทิง” หนึ่งตัว (ทายหมายเลขหนึ่ง “1” ไปจนถึงตำแหน่ง) เกมกระดาน Mastermind ได้รับความนิยมไปทั่วโลก รูปแบบที่พบบ่อยที่สุดคือ: วัวในประเทศ การจำแนกทางวิทยาศาสตร์ ราชอาณาจักร: สัตว์ ประเภท: คอร์ดาตา ... Wikipedia วัวแท้ (Bos) ซึ่งเป็นสกุลของ artiodactyls ดล. ส่วนสูง 180-325 ซม. หาง 70-140 ซม. ที่ไหล่ 62 180 ซม. น้ำหนัก 325 1200 กก. ตัวเมียมีขนาดเล็กกว่าตัวผู้อย่างมาก 5 สายพันธุ์ (บางครั้งจำแนกเป็น 3 สกุล): banteng, กระทิง, kouprey, aurochs (สูญพันธุ์ในศตวรรษที่ 17) และจามรี; วี … พจนานุกรมสารานุกรมชีวภาพ วัวเป็นสัตว์ที่ใหญ่ที่สุดในบรรดาวัว เหล่านี้เป็นสัตว์ที่ทรงพลังและแข็งแกร่ง ลำตัวใหญ่โตอาศัยแขนขาที่แข็งแรง หนัก กว้าง หัวต่ำทั้งตัวผู้และตัวเมียมีเขา หนาและสั้นในบางสายพันธุ์... สารานุกรมชีวภาพ เมื่อฉันเข้าวิทยาลัย เกม “Bulls and Cows” ได้รับความนิยมอย่างมาก บังเอิญในเวลาเดียวกัน ฉันก็อ่านโนเวลลาทางคณิตศาสตร์ของ Alfred Renyi เรื่อง “Diary” – บันทึกจากนักศึกษาเกี่ยวกับทฤษฎีสารสนเทศ” ขอบคุณบทความนี้ที่ฉันได้ทำความคุ้นเคย และฉันก็มีไอเดียว่าจะปรับปรุงการแสดงของฉันใน "Bulls and Cows" ได้อย่างไรโดยอิงจากความรู้ใหม่ ฉันขอเตือนคุณสั้น ๆ ถึงกฎเกณฑ์สองคนกำลังเล่นอยู่ ทุกคนตั้งครรภ์และเขียนตัวเลขลับ 4 หลักด้วยตัวเลขที่ไม่ซ้ำกัน (ตัวเลขแรกสามารถเป็นศูนย์ได้) ผู้เล่นที่เริ่มเกมด้วยการจับสลากจะพยายามเดาหมายเลข การลองคือตัวเลข 4 หลักที่มีตัวเลขไม่ซ้ำซึ่งสื่อสารไปยังคู่ต่อสู้ในรูปแบบของคำถาม ฝ่ายตรงข้ามตอบจำนวนที่เดาได้โดยตำแหน่งในการจับคู่หมายเลขลับและจำนวนที่ทายได้โดยไม่มีการจับคู่ ตัวอย่างเช่น: มีการสร้างหมายเลขลับ 3219; พยายาม (คำถาม) 2310; ผลลัพธ์ (คำตอบ): "วัว" หนึ่งตัว (หมายเลข 1 จากคำถามรวมอยู่ในหมายเลขลับและอยู่ในตำแหน่งนั้น) และ "วัว" สองตัว (หมายเลข 2 และ 3 จากคำถามรวมอยู่ในหมายเลขลับ แต่ไม่ใช่ แทน) คำตอบจะถูกรายงานเป็นตัวเลข 2 หลัก ในตัวอย่างของเรา คำตอบคือ 12 ("วัว" หนึ่งตัว "วัว" สองตัว) ผู้เล่นผลัดกันพยายาม คนแรกที่ได้คำตอบ 40 สำหรับคำถามของตนเป็นผู้ชนะ ดาวน์โหลดบันทึกในรูปแบบหรือรูปแบบตัวอย่างในรูปแบบตัวอย่างในรูปแบบ zip (ภายในมีไฟล์ Excel ขนาด 57MB) ต่อไปนี้เป็นแนวคิดบางส่วนจากทฤษฎีข้อมูลที่ฉันพบว่ามีประโยชน์ในการปรับปรุงประสิทธิภาพในเกม (ดู): เพื่อให้เข้าใจเนื้อหาได้ดีขึ้น การเปิดไฟล์ Excel ก็มีประโยชน์เช่นกัน 1. หมายเลขลับคิดได้ 10*9*8*7 = 5,040 วิธี (เลข 10 หลักตัวใดตัวหนึ่งสามารถขึ้นต้นได้ ส่วนอีก 9 หลักที่เหลือก็เลขตัวที่สองได้ เป็นต้น) เพื่อสร้างอาร์เรย์ของตัวเลขที่ถูกต้อง ฉันใช้อัลกอริธึมง่ายๆ ใน Excel (ดูชีต “Prep1” และ “Prep2”) เนื่องจากตัวเลข 5040 ใดๆ มีความน่าจะเป็นเท่ากันในการคำนวณ ความไม่แน่นอน (H) จึงคำนวณโดยใช้สูตรของฮาร์ตลีย์: H = log 2 N ก่อนที่เกมจะเริ่มต้น ความไม่แน่นอนคือ log 2 5040 = 12.30 บิตของข้อมูล 2. ชัดเจนว่าคำถามแรกอาจเป็นอะไรก็ได้ เช่น 0123 มีคำตอบที่เป็นไปได้ 14 ข้อ (ดูแผ่น "คำถาม 1" ในไฟล์ Excel ด้วย): โดยที่ p คือความน่าจะเป็นของคำตอบ H คือความไม่แน่นอนที่เหลืออยู่หลังจากคำตอบที่สอดคล้องกัน h คือจำนวนข้อมูลที่ได้รับหากทราบคำตอบนี้หรือคำตอบนั้น คำตอบที่เป็นไปได้มากที่สุดคือ 01 ซึ่งหมายความว่าคำถามมีตัวเลขลับเพียงหลักเดียวและอยู่ผิดตำแหน่ง คำตอบ 01 บอกเป็นนัยว่าจำนวนที่ต้องการอาจเป็นหนึ่งในตัวเลข 1440 นั่นคือความไม่แน่นอนที่เหลืออยู่หลังจากคำตอบนี้คือบันทึก 2 1440 = 10.49 บิต และข้อมูลที่ได้จากคำตอบนี้คือ 12.30 – 10.49 = 1.81 บิต คำตอบ 40 ให้ข้อมูล 12.30 บิต และไม่มีความแน่นอนหลังจากนั้น J เนื่องจากความน่าจะเป็นของคำตอบแตกต่างกัน ปริมาณข้อมูลในคำถามจึงถูกกำหนดโดยสูตรของแชนนอน: H(x) = p 1 log 2 (1 /p 1) + p 2 บันทึก 2 (1/p 2) + … + p N บันทึก 2 (1/p N) คำถามแรกนำข้อมูล 2.77 บิต 3. เมื่อเลือกคำถามที่สอง คุณควรได้รับคำแนะนำจากแนวคิดทั้งสามที่ร่างไว้ข้างต้น ในทางปฏิบัตินี่หมายความว่า คำถามจะต้องมีคำตอบ 40. กฎสำหรับการสร้างคำถามที่สองสมมติว่าสำหรับคำถามแรก (0123) เราได้รับคำตอบ 01 สำหรับคำถามที่สอง ลองนำตัวเลขหนึ่งหลักจากคำถามแรกไปวางไว้ที่ใหม่แล้วบวกตัวเลขใหม่สามหลัก ตัวอย่างเช่น 4561 ถ้าคำตอบของคำถามที่ 1 เช่น 11 คุณต้องนำตัวเลขสองตัวจากคำถามแรก ปล่อยไว้หนึ่งตัว วางตัวที่สองในตำแหน่งใหม่ และเพิ่มใหม่สองตัว ตัวเลข; เช่น 0435 นอกจากนี้ยังมีคำตอบที่เป็นไปได้ 14 ข้อสำหรับคำถาม 2 4561 (ดูแผ่น "คำถาม 2"): คำถามที่สองที่เราเลือกให้ผลลัพธ์ 2.86 บิต เรามาดูกันว่าคำถามที่สองอื่นๆ ให้ข้อมูลมากน้อยเพียงใด เพื่อจุดประสงค์เหล่านี้ ฉันได้สร้างไฟล์แยกต่างหาก “Nonoptimal Second question.xlsx” (มัน “มีน้ำหนัก” 58MB ดังนั้นโปรดใช้ความระมัดระวังด้วย :)) คำถามที่สองอาจเป็นตัวเลขที่เป็นไปได้จำนวน 5,040 ตัว (รวมถึงการทำซ้ำคำถามแรกด้วย) จากการวิจัยนี้ ฉันได้รับข้อมูลปริมาณมากจากคำถามที่สองบางข้อ (ฉันขอเตือนคุณว่าการวิเคราะห์เสร็จสิ้นบนสมมติฐานที่ว่าคำถามแรก 0123 ให้คำตอบ 01) ตัวอย่างเช่น คำถาม 2 – 0123 ให้ข้อมูลเป็นศูนย์บิต เนื่องจากมีคำตอบที่เป็นไปได้เพียงคำตอบเดียวคือ 01 และ (สำหรับ N = 1) บันทึก 2 1 = 0 คำถาม 2 0132 ให้ข้อมูล 0.65 บิต คำถาม 2 0148 – 2.53 บิต ของข้อมูล จำนวนข้อมูลสูงสุดนั้นมาจากคำถาม 1,440 วินาทีซึ่งสร้างขึ้นตามกฎที่อธิบายไว้ข้างต้น ฉันโอนผลการวิจัยไปที่ชีต “คำถามเบ็ดเตล็ด2” ของไฟล์ “Bulls-Cows.xlsx” และจากนี้ไปฉันจะพูดถึงเฉพาะไฟล์นี้เท่านั้น ดังที่ได้กล่าวไปแล้วจำนวนข้อมูลสูงสุด - 2,859 - จะได้รับจากคำถามที่ 2 ซึ่งเตรียมดังนี้: คุณต้องใช้ตัวเลขหนึ่งหลักจากคำถามแรกวางไว้ในตำแหน่งใหม่และเพิ่มตัวเลขใหม่สามหลัก: จะเห็นได้ว่าอีก 180 คำถามให้ข้อมูลในปริมาณเกือบเท่ากัน - 2,774 บิต ข้อมูลจำนวนนี้จะได้รับเมื่อตอบคำถาม เช่น คำถาม 1,045 (ดูแผ่นคำถาม “Question2neopt”) แต่คำถามนี้ตอบไม่ได้ 40! นั่นคือคำถามที่จัดทำขึ้นโดยฝ่าฝืนกฎที่กำหนดไว้ ข้อมูลระหว่าง 2.859 และ 2.774 บิตแตกต่างกันมากขนาดไหน!? เมื่อมองแวบแรกมันก็ดูไม่ใหญ่นัก ในทางกลับกัน หากคำตอบที่ไม่น่าพอใจมากที่สุดสำหรับคำถาม 2 คือ 4561 (01) จะมีตัวเลือก 378 ตัวเลือกสำหรับหมายเลขลับ และสำหรับคำตอบที่ไม่น่าพอใจมากที่สุดสำหรับคำถาม 2 คือ 1045 (เช่น 01) จะมี 408 ตัวเลือก . อีก 8%! นี่คือราคาของคำถามที่ไม่เหมาะสม 4. เมื่อเตรียมคำถามที่สาม (และต่อๆ ไป) ฉันจะใช้กฎช่วยจำต่อไปนี้ มีความจำเป็นต้องสร้างตารางรวมของหมายเลขลับที่เป็นไปได้ทั้งหมดที่ตรงกับคำตอบของคำถามก่อนหน้า หลังจากนี้ ให้ตั้งคำถามข้อ 3 โดยใช้ส่วนของตารางนี้ที่มีตัวเลือกเพิ่มเติม (ฉันทำการประเมิน "ด้วยตา") สับสนเล็กน้อย? ลองดูสองตัวอย่าง ตัวอย่างที่ 1 ตัวเลือกแรก: รวมอันหนึ่งไว้แล้วจึงไม่รวม 023 หรือ 456 นั่นคือรวมตัวเลขที่ไม่ได้ใช้ในสองคำถามแรกไว้ด้วย - 789 เราได้ชุดตัวเลขลับ 1789 (การจัดเรียงของพวกเขาคือลำดับใด ๆ ที่ตรงกับคำตอบของคำถามสองข้อแรก) มี 12 ตัวเลือกที่สอดคล้องกับชุดนี้ ตัวเลือกที่สอง: ไม่รวมหน่วย จากนั้นรวมหนึ่งหลักจาก 023 หนึ่งหลักจาก 456 และสองหลักจาก 789 ฉันเขียนดังนี้: จำนวนตัวเลือกโดยประมาณสำหรับการโทรออกคือ 3 (หนึ่งใน 023) * 3 (หนึ่งใน 456) * 3 (สองจาก 789) = 27 และเมื่อคำนึงถึงตำแหน่งของตัวเลขแล้ว ตัวเลือกจะมีมากกว่า 100 อย่างมีนัยสำคัญ สำหรับคำถามที่ 3 เราใช้ตัวเลขหนึ่งตัวจาก 023 หนึ่งใน 456 สองใน 789 เราจัดเรียงตัวเลขเพื่อไม่ให้เกิดความบังเอิญในตำแหน่งของคำถามที่ 1 และคำถามที่ 2 ยิ่งไปกว่านั้น เรายังวางตัวเลขที่พบแล้ว (4 และ 2) ไว้ในตำแหน่งใหม่ทั้งหมด นั่นคือในวันที่ 2 หรือ 4 ตัวอย่างเช่น คำถาม 3 7482 ดีกว่า 2784 เนื่องจากในกรณีแรก 4 และ 2 อยู่ในตำแหน่งที่พวกเขาไม่ได้ครอบครองในคำถาม 1 และคำถาม 2 ในเวลาเดียวกัน ในคำถามที่ 3 2784 หมายเลข 2 แทนที่หมายเลข 4 จากคำถามที่ 2 (ดูแผ่น "คำถามที่ 3") คำตอบของคำถามที่ 3, 4782 มีข้อมูล 2.958 บิต ในขณะที่คำตอบของคำถามที่ 3, 2784 มีข้อมูล "เท่านั้น" 2.955 ตัวอย่างที่ 2คำถามและคำตอบสองข้อแรกมีดังนี้: ตัวเลือกแรก: รวม 13 แล้วไม่รวม 02 หรือ 45 และตัวเลขที่เหลือสองหลักรวมอยู่ด้วย: จำนวนหมายเลขลับในตัวเลือกที่ 1 คือ 48 ตัวเลือกที่สอง: รวมหนึ่งหลักจาก 13 แล้วหนึ่งมาจาก 02 หนึ่งมาจาก 45 และอีกหนึ่งมาจาก 6789: จำนวนตัวเลขลับโดยประมาณในตัวเลือกที่ 2 คือมากกว่า 100 ตัวเลือกที่สาม: ไม่รวม 13 จากนั้นจึงรวมทั้ง 02 และ 45: 0245 จำนวนหมายเลขลับในตัวเลือก 3 คือ 8 5. เมื่อมีหมายเลขลับเหลืออยู่ไม่กี่หมายเลข (ตั้งแต่ 4 ถึง 10...20) ฉันจะค้นหาตัวเลือกที่เป็นไปได้ทั้งหมดให้เสร็จสิ้น เล่นกับอัลกอริธึมตามทฤษฎีสารสนเทศแล้วชนะ! Nurym Kenzhebekov เขียนโปรแกรมที่ให้คุณเล่นกับคอมพิวเตอร์ได้ โปรแกรมทำงานภายใต้ Windows 7, 8, 8.1 พร้อมติดตั้ง Framework 4.5 ฉันชอบเกมนี้มาก แต่อัลกอริทึมยังห่างไกลจากความเหมาะสมอย่างชัดเจน ฉันเล่นสามครั้งและชนะทั้งสามครั้ง ดาวน์โหลดโปรแกรมได้ที่. http://slovesnov.narod.ru/articles/bullcow.pdf- พูดตามตรง ฉันไม่สามารถเชี่ยวชาญมันได้ :) แต่ฉันไม่พบการกล่าวถึงทฤษฎีข้อมูลใดๆ ในนั้นเลย เมื่อพิจารณาดูสั้นๆ...
สำหรับ i:=1 ถึง 4 do // ตรวจสอบวัวถ้า (a[i]
ย้อนกลับไปในฤดูใบไม้ร่วงปี 2 ขณะที่งานห้องปฏิบัติการเรื่อง "ทฤษฎีออโตมาตะ" ครูคิดงานให้เราได้ทันทีโดยเน้นไปที่ความปรารถนาของเราในการประเมิน ส่วนใหญ่เป็นเกม บางคนเล่นฮอกกี้ บางคนเล่นเทนนิส แต่ฉันมีเกมลอจิกที่ไม่เป็นที่รู้จักมากนัก "วัวและวัว".
จำเป็นต้องใช้พฤติกรรมที่สมเหตุสมผลของคอมพิวเตอร์ในเกมกับบุคคลเป็นอย่างน้อย แต่ฉันไปไกลกว่านั้นและหลังจากนั้นหนึ่งเดือนคอมพิวเตอร์ส่วนใหญ่ก็เอาชนะเพื่อนร่วมชั้นของฉันได้อย่างง่ายดาย และได้รับปืนกลสำหรับวัตถุนั้น คุณจะได้รับโปรแกรมหลังจากคำอธิบายของอัลกอริทึมสาระสำคัญของเกม
ผู้เล่นและคอมพิวเตอร์ทายตัวเลขสี่หลักโดยใช้ตัวเลขจาก 0
ถึง 9
- ผู้เล่นพยายามเดาหมายเลขของคู่ต่อสู้โดยส่งตัวเลขที่เป็นไปได้ให้เขา โดยได้รับตัวเลขสองตัวเป็นการตอบกลับ - ตัวเลข "วัว"และหมายเลข "วัว"- ตัวเลขเหล่านี้คืออะไร?
เพื่อความเข้าใจ ฉันจะยกตัวอย่าง: ตัวเลขที่เดาได้ 1622
- ถ้าเราถือว่า 6112
แล้วคำตอบจะเป็น: วัว 1 ตัว(หลักที่สี่ “2” อยู่ในตำแหน่ง) วัว 2 ตัว(หกและหนึ่งไม่ได้อยู่ในที่ของพวกเขา)
เมื่อใช้ข้อมูลเกี่ยวกับ "วัว" ของศัตรู คุณจะต้องเดาจำนวนได้เร็วกว่าเขา เช่น ทายเลขเดียวกัน 1622
เราถือว่า "1111"เราได้รับการตอบสนอง "วัว", แล้ว "2222"- เราได้รับคำตอบแล้ว วัว 2 ตัว, "3333"- ว่างเปล่า, "4444"- ว่างเปล่า, "5555"- ว่างเปล่า, "6666" - วัว 1 ตัว.
เราจะไม่ดำเนินการต่อไปเพราะว่า มีวัวอยู่แล้ว 4 ตัวทั้งหมด สิ่งที่เหลืออยู่ก็คือการค้นหาชุดค่าผสมที่ใช่ เราจะทำการเรียงสับเปลี่ยนจนกระทั่งเราได้ตาดัม: "1226", "1262", "1226", "1262", "1622"
- ทั้งหมด.
แน่นอนว่าอัลกอริทึมนั้นไม่ค่อยดีนัก แต่ก็เข้าใจได้และคุณจะไม่สับสน จำนวนการเคลื่อนไหวสูงสุดสำหรับการเดาคือ 10 (“7890”) + 24 วิธีพีชคณิต 34
- นี่เป็นกรณีที่เลวร้ายที่สุด แน่นอนว่า เป็นไปได้ที่จะเพิ่มประสิทธิภาพการค้นหาและการเรียงสับเปลี่ยนในทุกวิถีทางที่เป็นไปได้ เช่น ค้นหาสลับกันจากปลายทั้งสองข้าง - "1111", "0000", "2222", "9999"...ปรับการสร้างพีชคณิตให้เหมาะสมเมื่อมีตัวเลขเหมือนกัน (ดังตัวอย่างของเรา - เราถามสิ่งเดียวกันหลายครั้ง)
แต่อย่าทำอย่างนั้น ให้กลยุทธ์นี้เป็นระดับความซับซ้อนของคอมพิวเตอร์อย่างง่าย เช่น สำหรับตัวเลขที่ซ่อนอยู่ 1234
เราสันนิษฐาน 5678
และได้รับ วัว 0 ตัว และวัว 0 ตัวสิ่งที่ต้องคิด - เราไม่รวมตัวเลขทั้งหมดที่มี 5, 6, 7, 8
- คุณสามารถประเมินได้ทันทีว่าจะถูกหักไปเท่าใด 10000.
อย่ากลัวหลายๆอย่าง 10000
องค์ประกอบ สำหรับ 5-6
จะเหลือเพียงไม่กี่การเคลื่อนไหวเท่านั้น
เริ่มจากโครงสร้างข้อมูลกันก่อน รหัสปาสคาล:
สำหรับ i:=1 ถึง 4 do // ตรวจสอบวัวถ้า (a[i]b[i]) และ (pos(b[i],a)
เพียงเท่านี้ก็ไม่ใช่เรื่องยากเลย บทความแรกของฉัน ตัดสินอย่างเคร่งครัด
หมายเลขลับ “3219” ถูกสร้างขึ้น
ผู้เล่นพยายามเดาทีละคน ผู้ที่ทายเลขก่อนเป็นผู้ชนะ
มีตัวเลือกมากมายสำหรับการใช้งานเกมด้วยคอมพิวเตอร์ รวมถึงโทรศัพท์มือถือและคอมพิวเตอร์พกพา
ดูว่า "บูลส์และวัว" ในพจนานุกรมอื่น ๆ คืออะไร:
คำตอบ
จำนวนการตอบกลับ
ร
ชม
ชม.
00
360
7,1%
8,49
3,81
01
1440
28,6%
10,49
1,81
02
1260
25,0%
10,30
2,00
03
264
5,2%
8,04
4,25
04
9
0,2%
3,17
9,13
10
480
9,5%
8,91
3,39
11
720
14,3%
9,49
2,81
12
216
4,3%
7,75
4,54
13
8
0,2%
3,00
9,30
20
180
3,6%
7,49
4,81
21
72
1,4%
6,17
6,13
22
6
0,1%
2,58
9,71
30
24
0,5%
4,58
7,71
40
1
0,02%
0,00
12,30
5040
100,0%
12,30
2,77
คำตอบ
จำนวนการตอบกลับ
ร
ชม
ชม.
00
54
3,8%
5,75
4,74
01
378
26,3%
8,56
1,93
02
369
25,6%
8,53
1,96
03
91
6,3%
6,51
3,98
04
6
0,4%
2,58
7,91
10
126
8,8%
6,98
3,51
11
222
15,4%
7,79
2,70
12
83
5,8%
6,38
4,12
13
6
0,4%
2,58
7,91
20
57
4,0%
5,83
4,66
21
31
2,2%
4,95
5,54
22
5
0,3%
2,32
8,17
30
11
0,8%
3,46
7,03
40
1
0,07%
0,00
10,49
1440
100,0%
10,49
2,86
ข้อมูลจากคำถามที่ 2 บิต
จำนวนคำถามดังกล่าว
0,000
1
0,650
6
0,811
8
0,918
9
1,899
24
2,104
72
2,258
144
2,268
72
2,365
216
2,372
48
2,530
180
2,624
360
2,664
720
2,756
360
2,766
480
2,767
720
2,774
180
2,859
1440
ทั้งหมด
5040
คำถามที่ 1
0123
คำตอบ1
01
คำถาม2
4561
คำตอบ2
01
คำถามที่ 1
0123
คำตอบ1
02
คำถาม2
3541
คำตอบ2
02