ตัวเลขที่จดจำได้ง่าย แต่ในทางทฤษฎีไม่สามารถทำได้ง่าย
ความท้าทายของคุณคือการสร้างโปรแกรม / ฟังก์ชั่นในภาษาใด ๆ ที่สร้างตัวเลขสุ่มอย่างสม่ำเสมอซึ่งตรงกับเกณฑ์เหล่านี้:
ความยาวคือ5 หลัก
มีตัวเลขสองหลักที่ซ้ำกันแยกกันอยู่สองคู่
หนึ่งชุดของตัวเลขที่ซ้ำกันอยู่ที่จุดเริ่มต้นหรือจุดสิ้นสุดและตัวเลขจะอยู่ติดกัน
เลขคี่นั้นล้อมรอบด้วยตัวเลขอีกคู่หนึ่ง
ตัวเลขสองหลักคู่และหมายเลขอื่น ๆ ควรไม่ซ้ำกัน
โปรแกรมของคุณอาจสนับสนุนหมายเลขที่มีเลขศูนย์นำหน้าหรือไม่ขึ้นอยู่กับดุลยพินิจของคุณ หากสนับสนุนเลขศูนย์นำหน้าจะต้องรวมอยู่ในผลลัพธ์: 06088 ไม่ใช่ 6088 หากไม่สนับสนุนเลขศูนย์นำหน้าตัวเลขเช่น 06088 จะไม่ถูกสร้างขึ้นเลย
กรณีทดสอบ
เอาท์พุทที่ยอมรับ:
55373 55494 67611 61633 09033 99757 95944 22808 65622 22161
เอาต์พุตที่ไม่ยอมรับ:
55555 77787 85855 12345 99233 12131 ABCDE 5033
กรณีทดสอบที่ยอมรับได้มากขึ้นสามารถดูได้ที่ลิงค์ pastebinนี้
สิ่งเหล่านี้สร้างขึ้นด้วยโปรแกรมไพ ธ อนนี้:
นำเข้าแบบสุ่ม สำหรับฉันอยู่ในช่วง (100): ถ้า random.randint (0,100)> = 50: # ใส่คู่ที่จุดเริ่มต้นหากเป็นจริง temp = [] #working array temp.append (random.randint (0,9)) #append เลขสุ่ม temp.append (temp [0]) # ผนวกตัวเลขเดิมอีกครั้ง x = random.randint (0,9) ในขณะที่ x == temp [0]: x = random.randint (0,9) temp.append (x) # ผนวกตัวเลขที่ไม่ซ้ำอื่น ๆ y = random.randint (0,9) ในขณะที่ y == temp [0] หรือ y == temp [2]: y = random.randint (0,9) temp.append (y) # ผนวกตัวเลขที่ไม่ซ้ำกันอื่น ๆ และตัวเลขที่ไม่ซ้ำกันก่อนหน้านี้ temp.append (x) อื่น: #Put แตะคู่ที่สิ้นสุด temp = [] #working array temp.append (random.randint (0,9)) #append เลขสุ่ม # ในขณะที่ไม่ซ้ำกันลองอีกครั้ง x = random.randint (0,9) ในขณะที่ x == temp [0]: x = random.randint (0,9) temp.append (x) # ผนวกตัวเลขที่ไม่ซ้ำอื่น ๆ temp.append (temp [0]) # ผนวกตัวเลข 0th เดิมอีกครั้ง y = random.randint (0,9) ในขณะที่ y == temp [0] หรือ y == temp [1]: y = random.randint (0,9) temp.append (y) # ผนวกตัวเลขที่ไม่ซ้ำกันอีกสองครั้ง temp.append (y) tempstr = "" สำหรับฉันในอุณหภูมิ: tempstr + = str (i) พิมพ์ชั่วคราว
นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!
random
ไม่ได้หมายความอย่างสม่ำเสมอดังนั้น