การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

1
Pseudo-quine polyglot ตัวนับการตรวจจับภาษา
Quines สนุก Polyglots ก็สนุกเช่นกัน Polyglot Quines มีอยู่ แต่เราสามารถยกระดับให้สูงขึ้นได้ เขียนไฟล์ที่มีโปรแกรมที่ถูกต้องสำหรับภาษาα, βและγ เมื่อไฟล์ถูกเรียกใช้งาน (อาจเป็นหลังจากรวบรวมไฟล์) เป็นภาษาαหรือβโปรแกรมเอาต์พุตของโปรแกรมจะอยู่ในรูปแบบเดียวกับการส่งที่ถูกต้องในการประกวดครั้งนี้ หากไฟล์ของคุณถูกเรียกใช้งานเป็นโปรแกรมภาษาไฟล์นั้นจะถูกส่งออกไปเป็นตัวเลข ค่าของตัวเลขนี้คือสายการประมวลผลก่อนหน้าของโปรแกรมที่ตีความว่าเป็นเลขฐานสอง คำอธิบายนี้อาจเป็นเรื่องยากที่จะเข้าใจดังนั้นนี่คือตัวอย่าง ให้Α, ΒและΓเป็นฟังก์ชั่นที่ดำเนินการอินพุตเป็นภาษาα, βหรือγ resp โปรแกรมและส่งคืนผลลัพธ์ของโปรแกรมเหล่านี้ ให้xเป็นข้อเสนอที่ถูกต้องในการประกวดนี้ จากนั้นการแสดงออกต่อไปนี้ที่เราดำเนินการxผ่านβภาษาα, β, α, α, βและγในคำสั่งนี้จะบังเกิด 41, 41 ตั้งแต่10 = 101001 2 Γ (Β (Α (Α (Β (Α (Β ( x ))))))) คุณไม่อาจสันนิษฐานได้ว่าการประหารชีวิตที่สุดท้ายในสายโซ่นั้นเป็นการดำเนินการในภาษาβ สำหรับกรณีที่การส่งต้นฉบับของคุณถูกดำเนินการโดยตรงเป็นโปรแกรมภาษามันจะพิมพ์ 0 โปรแกรมของคุณจะทำงานอย่างถูกต้องสำหรับการรวบรวมสูงสุดสิบหกครั้งในห่วงโซ่ นั่นคือจำนวนสูงสุดที่โปรแกรมของคุณอาจพิมพ์ออกมาในตอนท้ายคือ 2 15 …

3
เล่นกอล์ฟทุกตัวละคร ASCII ใน 99
99เป็นภาษาโปรแกรมที่ผมคิดค้นสัปดาห์ก่อนหน้านี้สำหรับความท้าทายของฉันเขียนล่ามสำหรับ 99 (คิดค้นขึ้นมา แต่ไม่จำเป็นต้องนำไปใช้ต้องขอบคุณพวกคุณสักครึ่งโหล)) ข้อมูลจำเพาะของภาษาเต็มรูปแบบอยู่ในความท้าทายนั้น ใน99คุณสามารถพิมพ์อักขระ ASCIIแต่ละรายการไปยัง stdout ได้ แต่เนื่องจากข้อ จำกัด ของภาษาจึงไม่ชัดเจนว่าจะพิมพ์อักขระเฉพาะอย่างรัดกุมที่สุดเท่าที่จะทำได้ สำหรับอักขระ 128 ASCII แต่ละตัวให้เขียนโปรแกรม99โปรแกรมที่ไม่มีอินพุตและเอาต์พุตที่เป็นอักขระตัวเดียว คุณสามารถเขียนคำตอบเหล่านี้ด้วยตนเองหรือเขียนโปรแกรมอื่น (ในภาษาที่คุณชอบ) เพื่อสร้างคำตอบให้คุณ ผลรวมของตัวละครในแต่ละโปรแกรม128 99ของคุณคือคะแนนของคุณ คะแนนต่ำสุดชนะ ขึ้นบรรทัดใหม่นับเป็นหนึ่งอักขระ โปรดจำไว้ว่าใน99ตัวแปรที่มีขนาดเท่ากันเช่น9999อักขระ ASCII ของเอาต์พุต (ตัวแปรขนาดคี่จำนวนเต็มที่ส่งออก) ค่าของพวกเขาจะถูกหารด้วย 9 และจากนั้นนำมา mod 128 ดังนั้นค่าไม่จำเป็นต้องอยู่ในช่วงที่แน่นอนในการแมปกับอักขระ ASCII ยกตัวอย่างเช่นค่าภายใน 297, 1449 และ -855 ตรงทุกตัวละคร!เพราะเมื่อพวกเขาโดยแบ่งเป็น 9 และนำ mod 128 พวกเขาทั้งหมดกลายเป็น 33 !ซึ่งเป็นรหัสอักขระสำหรับ หากคุณต้องการล่ามสำหรับ99ผมขอแนะนำให้แม็คคำตอบหลาม ฉันรู้ว่าฉันกล่าวว่าความท้าทายต่อไปของฉันจะเป็นแบบโต้ตอบได้มากขึ้น แต่ฉันยังคงทำงานกับสิ่งนั้นอยู่

3
การแบ่งเงินดอลลาร์และการเปลี่ยนแปลงที่สมบูรณ์แบบ
ฉันมี $ 15 ในกระเป๋าของฉัน ฉันอยู่ในร้านที่ไม่เปลี่ยนแปลง ในขณะที่เรียกดูฉันพบรายการที่ราคา 10 ดอลลาร์ (รวมภาษี) ฉันสามารถซื้อของชิ้นนั้นได้โดยไม่เสียเงินหรือไม่? ในกรณีนี้คำตอบคือใช่ ไม่ว่าเงิน $ 15 ของฉันจะถูกแบ่งเป็นอย่างไร (หนึ่ง 10 และหนึ่ง 5 หรือสาม 5s หรืออย่างอื่น) ฉันจะได้ $ 10 ที่แน่นอนเสมอ เป็นตัวอย่างที่สองฉันมี $ 0.16 ในกระเป๋าของฉัน ฉันต้องจ่ายเงินเป็นจำนวนเท่าใด? Possible Divisions: 0.01, 0.05, 0.10 0.01, 0.05 x 3 0.01 x 16 Guaranteed Exact Change: 0.01, 0.05, 0.06, 0.10, …
11 code-golf 

6
แก้ปัญหาการเปลี่ยนรูป Burrows-Wheeler
บทนำ ในการท้าทายนี้คุณจะได้รับการแก้ไข Burrows-Wheeler ในแนวทแยง นี่คือภาพรวมทั่วไปของการเปลี่ยนรูป Burrows-Wheeler ในแนวทแยง ในการเข้ารหัสข้อความคุณต้องรับประกันว่าข้อความนั้นยาวแปลก (เช่น 5, 7, 9 ฯลฯ ) จากนั้นคุณสร้างกริดnโดยnที่nความยาวของข้อความอยู่ที่ไหน แถวแรกคือข้อความต้นฉบับ แต่ละแถวหลังจากนั้นคือแถวด้านบน แต่เลื่อนไปทางซ้าย 1 อักขระโดยที่อักขระตัวแรกเลื่อนไปทางด้านหลัง ตัวอย่างเช่น: Hello World ello WorldH llo WorldHe lo WorldHel o WorldHell WorldHello WorldHello orldHello W rldHello Wo ldHello Wor dHello Worl จากนั้นคุณนำตัวอักษรแต่ละตัวไปตามแนวทแยงมุมของ NW ถึง SE และใส่ลงในสตริงใหม่: Hello World H ello …

4
ระบุรูปสามเหลี่ยม
การนับจำนวนสามเหลี่ยมในรูปภาพเป็นงานที่ใช้กันทั่วไปในการทดสอบสมอง คุณจะได้รับรูปภาพที่มีรูปร่างประกอบด้วยสามเหลี่ยม จากนั้นคุณจะต้องค้นหารูปสามเหลี่ยมที่เป็นไปได้ทั้งหมดในภาพ งาน คุณจะได้รับรายการบรรทัดในรูปแบบที่คุณเลือก จากนั้นคุณจะต้องแสดงรายการสามเหลี่ยมที่พบในนั้น อินพุต คุณจะได้รับรายชื่อของเส้นแต่ละเส้นกำหนดโดยพิกัดจำนวนเต็มสี่ตัว (เช่นx1 y1 x2 y2) คุณสามารถเลือกรูปแบบการป้อนข้อมูลตราบใดที่มีการบันทึกไว้อย่างชัดเจน ตัวอย่าง: 0 4 8 1 0 4 9 5 8 1 9 5 2 8 0 4 9 5 2 8 [[0, 4, 8, 1], [0, 4, 9, 5], [8, 1, 9, 5], [2, 8, 0, 4], …

3
แก้ไข 2x Eigensystem
สำหรับผู้ที่มีพื้นหลังพีชคณิตเชิงเส้นเล็ก ๆ ความท้าทายนั้นง่ายเหมือนนี้: กำหนดค่าลักษณะเฉพาะและค่าลักษณะเฉพาะของเมทริกซ์ 2x2 ที่ซับซ้อน คุณอาจข้ามไปข้างหน้ารายละเอียด The Challenge for I / O เป็นต้นสำหรับผู้ที่ต้องการทบทวนระบบ eigens ให้อ่านต่อ พื้นหลัง สมลักษณะของเมทริกซ์ถูกกำหนดโดย det| A - λI | = 0 โดยที่λเป็นพารามิเตอร์ที่ซับซ้อน (สเกลาร์) ฉันเป็นเมทริกซ์เอกลักษณ์และเดช | ... | เป็นปัจจัย ด้านซ้ายมือจะประเมินพหุนามในλซึ่งเป็นพหุนามลักษณะซึ่งเป็นกำลังสองในกรณีของเมทริกซ์ 2x2 การแก้สมการลักษณะนี้เป็นลักษณะเฉพาะของซึ่งเราจะแสดงเป็นλ 1และλ 2 ตอนนี้eigenvectors v ฉันของความพึงพอใจ A vi = λi vi สำหรับแต่ละλ iนี่จะให้ระบบสมการสองอันในสองสิ่งที่ไม่รู้จัก (ส่วนประกอบของv i ) …

3
นำทางข้อความด้วยปุ่มลูกศร
พื้นหลัง โปรแกรมแก้ไขข้อความส่วนใหญ่ (เหมาะสมครึ่งหนึ่ง) ให้คุณสำรวจข้อความโดยใช้ปุ่มลูกศร ขึ้นและลงช่วยให้คุณสามารถนำทางเส้นในขณะที่ซ้ายและขวาย้ายข้ามเส้น แต่ยังล้อมรอบ นอกจากนี้หากบรรทัดสั้นกว่าตำแหน่ง X ของเคอร์เซอร์เคอร์เซอร์จะปรากฏที่ท้ายบรรทัด แต่กลับสู่ตำแหน่ง X เดียวกันหากคุณเลื่อนขึ้นหรือลง บางทีคำอธิบายภาพต่อไปนี้อาจช่วยได้: ตัวอย่างของการเคลื่อนไหว ตัวอย่างข้อความแบบง่ายอาจมีลักษณะเช่นนี้ เคอร์เซอร์จะถูกแทรกระหว่างอักขระสองตัวในข้อความนี้หรือท้ายที่สุด ----- --- ------ let's put the cursor here: X----- --- ------ move down (v): ----- X--- ------ move left (<): -----X --- ------ v ----- ---X ------ v (notice how the X position of …
11 code-golf 

7
โค้ดที่ผู้ใช้ทำคะแนนกอล์ฟ - วาดเพชร [ทดลอง]
ความท้าทายนี้จะทำตัวเหมือนนักกอล์ฟทั่วไป ความแตกต่างเพียงอย่างเดียวคือแทนที่จะให้คะแนนคำตอบตามจำนวนตัวอักษรหรือไบต์ผู้ใช้จะกำหนด น้ำหนักให้กับตัวละครที่แตกต่างกันในความคิดเห็นและโปรแกรมที่มีน้ำหนักสะสมต่ำสุดจะเป็นผู้ชนะ ท้าทาย งานของคุณคือการเขียนโปรแกรมที่ใช้สตริงและพิมพ์รูปสี่เหลี่ยมขนมเปียกปูนที่ตัวอักษรตัวแรกเริ่มตรงกลางและตัวละครที่ตามมาจะใช้พื้นที่ว่างฉากตั้งฉากกับชุดของตัวอักษรที่วางไว้ล่าสุด Spaces ( ) จะใช้สำหรับการขยาย ตัวอย่างเช่นการป้อนข้อมูลCATจะผลิต T TAT TACAT TAT T และ()จะผลิต ) )() ) และ dessertsจะผลิต s sts strts strerts streserts stressserts stressesserts stressedesserts stressed desserts stressedesserts stressesserts stressserts streserts strerts strts sts s และจะผลิต99 รายละเอียด รหัสอาจมีเฉพาะASCII ที่พิมพ์ได้และบรรทัดใหม่ (ดูสาเหตุด้านล่าง) อินพุต / เอาต์พุตควรผ่าน stdin / stdout …

5
มหาราช, ขาว, เหนือ!
เอ๊ะ! คุณรู้ไหมว่าปัญหาของพวกเราชาวแคนาดาคือบางครั้งหลังจากการล่ากวางมูซและซ่อมแซมเขื่อนมาทั้งวันเราลืมทางกลับไปที่กระท่อมของเรา! มันจะไม่ดีถ้าแล็ปท็อปที่มีประโยชน์ของเรา (ซึ่งอยู่ข้างเราเสมอ) มีวิธีที่จะชี้เรากลับบ้านได้ไหม? มันบอกกันมานานแล้วว่าถ้าคุณแสดงเข็มทิศบนคอมพิวเตอร์ของคุณมันจะสว่างที่สุดเมื่อชี้ทิศเหนือ ฉันต้องการที่จะทดสอบสิ่งนี้ แต่ฉันต้องการโปรแกรมขนาดกะทัดรัดที่จะใช้กับฉันในการเดินทางครั้งต่อไปของฉันเพราะฮาร์ดไดรฟ์ของฉันเต็มไปด้วยสูตรน้ำเชื่อมเมเปิ้ลแล้ว (และที่ไม่สามารถไปได้) ดังนั้นงานของคุณคือออกแบบโปรแกรมให้ฉันซึ่งเมื่อเรียกใช้บันทึกหรือแสดงภาพของเข็มทิศต่อไปนี้เพิ่มขึ้น: ตัวอักษรอาจเป็นแบบอักษรอื่น โปรดจำไว้ว่าอย่างน้อยที่สุดจะดีที่สุดนับเป็นจำนวนไบต์ที่น้อยที่สุด! ข้อมูลจำเพาะ สี สีม่วงอ่อน: # 9999FF สีเทา: # E5E5E5 ความยาวและมุม มุมa= 45 ° มุมb= 90 ° ความยาวc= 250 หน่วย ความยาวd= 200 หน่วย ความยาวe= 40 หน่วย ความยาวf= 45 หน่วย ชี้แจง ข้อความอาจเป็นแบบอักษรใด ๆที่เหมาะสมซึ่งเหมาะสมหมายถึงว่ามันสามารถอ่านได้โดยเฉลี่ยมนุษย์มีการศึกษา ข้อความจะต้องอยู่ห่างจากแหลมเล็กน้อย 3 หน่วยที่จุดที่ใกล้ที่สุดห้ามสัมผัสดอกกุหลาบและต้องตั้งตรง หากสายถูกดึงมาจากใจกลางของดอกกุหลาบที่ผ่านจุดสิ้นสุดของเข็มและเกินกว่าที่มันควรจะข้ามผ่านใจกลางของข้อความที่มีความแม่นยำของ +/- 2 หน่วยที่ (ข้อความจะต้องเป็นศูนย์กลางตามแกนa, …

11
การเข้ารหัสแบบไบนารี
นี้อยู่บนพื้นฐานxkcd # สร้างโปรแกรมหรือฟังก์ชั่นที่ตั้งชื่อซึ่งใช้พารามิเตอร์ 2 ตัวซึ่งแต่ละตัวเป็นสตริงหรือรายการหรืออาร์เรย์ของไบต์หรือตัวอักษร พารามิเตอร์ที่สองจะมีเฉพาะอักขระที่ดึงมาจากlrfu(หรือ ASCII ที่เทียบเท่าไบต์) ควรตีความเป็นชุดคำสั่งที่จะดำเนินการในลำดับบิตที่แสดงโดยพารามิเตอร์แรก การประมวลผลที่ดำเนินการจะต้องเทียบเท่ากับสิ่งต่อไปนี้: แปลงพารามิเตอร์แรกเป็นบิตสตริงเดียวที่เกิดขึ้นจากการเชื่อมบิตของอักขระแต่ละตัว (ตีความว่าเป็นหนึ่งใน 7 บิต ASCII, ASCII ที่ขยายเพิ่ม 8 บิตหรือการเข้ารหัส Unicode มาตรฐาน) เช่นถ้าพารามิเตอร์แรกเป็น"AB"เช่นนี้จะเป็นหนึ่งใน10000011000010(7-bit), 0100000101000010(8-bit หรือ UTF-8) 00000000010000010000000001000010, หรือ01000001000000000100001000000000(UTF-16 ในสอง endiannesses) เป็นต้น สำหรับอักขระแต่ละตัวในพารามิเตอร์ที่สองตามลำดับให้ดำเนินการคำสั่งที่สอดคล้องกัน: lหมุน bitstring ที่เหลือหนึ่งอัน เช่นจะกลายเป็น1000001100001000000110000101 rหมุนบิตสตริงขวาหนึ่ง เช่นจะกลายเป็น1000001100001001000001100001 fพลิก (หรือสลับกลับ) แต่ละบิตใน bitstring เช่นจะกลายเป็น1000001100001001111100111101 uฝืน bitstring เช่นจะกลายเป็น1000001100001001000011000001 แปลง bitstring เป็นสตริง ASCII ซึ่งใช้หนึ่งอักขระต่อบิต …

2
จำนวนการหมุนของงูที่สามารถเข้าถึงได้
ความท้าทายนี้ไม่ได้เกี่ยวกับเกมของงู ลองนึกภาพงู 2d nที่เกิดขึ้นจากการวาดเส้นแนวนอนที่มีความยาว งูนี้สามารถหมุนร่างของมันได้ 90 องศา หากเรากำหนดด้านหน้าของงูให้อยู่ทางซ้ายสุดเพื่อเริ่มต้นการหมุนจะย้ายส่วนหลังของงูและส่วนหน้าจะคงอยู่ ด้วยการหมุนวนซ้ำ ๆ มันสามารถสร้างรูปร่างของงูที่แตกต่างกันได้มากมาย กฎระเบียบ ส่วนหนึ่งของร่างกายของงูไม่สามารถทับซ้อนกันได้ จะต้องมีความเป็นไปได้ที่จะเข้าถึงการปฐมนิเทศครั้งสุดท้ายโดยไม่มีส่วนใดส่วนหนึ่งของร่างกายของงูทับซ้อนกัน จุดสองจุดที่สัมผัสถูกนับว่าทับซ้อนกันในปัญหานี้ ฉันถือว่างูและสิ่งที่ตรงกันข้ามเป็นรูปร่างเดียวกัน งาน ขึ้นอยู่กับการหมุนการแปลและกระจกสมมาตรรูปร่างของงูที่แตกต่างกันทั้งหมดที่สามารถทำได้คืออะไร? ตัวอย่างของการหมุนของส่วนของร่างกายของงู ลองนึกภาพn=10และงูอยู่ในทิศทางเริ่มต้นของเส้นตรง ตอนนี้หมุนที่จุด490 องศาทวนเข็มนาฬิกา เราได้รับงูจาก 4ไปที่10(หางของงู) นอนในแนวตั้งและงูจาก0การ4นอนในแนวนอน ตอนนี้งูมีมุมฉากอยู่หนึ่งตัว นี่คือตัวอย่างบางส่วนขอบคุณ Martin Büttner เราเริ่มต้นด้วยงูแนวนอน ตอนนี้เราหมุนจากตำแหน่ง 4 เราจบลงหลังจากการหมุนในทิศทางนี้ ตอนนี้ให้เราพิจารณาการวางแนวของงูตัวอื่น ตอนนี้เราสามารถเห็นการเคลื่อนไหวที่ผิดกฎหมายซึ่งจะมีการทับซ้อนเกิดขึ้นในระหว่างการหมุน คะแนน คะแนนของคุณมากที่สุดnซึ่งรหัสของคุณสามารถแก้ไขปัญหาได้ในเวลาไม่ถึงหนึ่งนาทีในคอมพิวเตอร์ของฉัน เมื่อมีการหมุนเกิดขึ้นมันจะเลื่อนงูไปครึ่งหนึ่งด้วย เราต้องกังวลว่าส่วนใดส่วนหนึ่งที่หมุนอยู่นี้อาจซ้อนทับส่วนหนึ่งของงูระหว่างการหมุน เพื่อความง่ายเราสามารถสมมติว่างูมีความกว้างเป็นศูนย์ คุณสามารถหมุนที่จุดใดจุดหนึ่งในงูได้สูงสุด 90 องศาตามเข็มนาฬิกาของทวนเข็มนาฬิกา สำหรับคุณไม่สามารถพับงูเป็นสองเท่าได้อย่างเต็มที่เนื่องจากจะมีการหมุนสองรอบที่จุดเดียวกันในทิศทางเดียวกัน รูปร่างที่ไม่สามารถทำได้ Tตัวอย่างง่ายๆของรูปร่างที่ไม่สามารถทำให้เป็นทุน รุ่นที่ซับซ้อนมากขึ้นคือ (ขอบคุณ Harald Hanche-Olsen …

4
ซุปเปอร์สแควร์เรน
ขาย Scream ™ฤดูหนาวอยู่และคุณเพียงแค่จับตัวเองเป็นเกมการกระทำที่เรียบง่ายที่รุนแรงซูเปอร์สแควร์ เมื่อเล่นมันคุณมาตระหนักว่าทั้งเกมเพียงอย่างหนักขันหรือคุณเพียงแค่มันไม่ดีที่มัน โดยเฉพาะอย่างยิ่งมีรูปแบบ "ฝน"ที่ดูเหมือนจะให้คุณทุกครั้ง ... ท้อแท้คุณตัดสินใจที่จะให้ความท้าทายที่แตกต่าง: วาดลวดลายฝนในงานศิลปะ ASCII! อินพุต อินพุตเป็นจำนวนเต็มบวกเดียวที่ระบุขนาดของรูปแบบที่nกำหนดผ่าน STDIN หรืออาร์กิวเมนต์ของฟังก์ชัน เอาท์พุต เอาต์พุตเป็นรูปแบบฝนที่ขนาดที่ระบุส่งคืนเป็นสตริงหรือพิมพ์ผ่าน STDOUT นำหน้าหรือตามช่องว่างก่อนหรือหลังภาพทั้งหมดก็โอเค นอกจากนี้รูปภาพไม่จำเป็นต้องลบออกทางด้านซ้ายของหน้าจอ แต่ต้องมองเห็นได้ชัดเจน ที่นี่n = 10: ................... | ----------------- | | ............... | | | ------------- | | | | ........... | | | | | --------- | | | | | | …

1
ทำให้การเดินทางของฉันเย็น!
ท้าทาย เดินไปรอบ ๆ Marks and Spencers ฉันสังเกตเห็นว่าพวกเขามีเครื่องปรับอากาศวางแบบสุ่มรอบร้าน อยากให้เย็นฉันสงสัยว่าอะไรเป็นวิธีที่ง่ายที่สุดในการเดินไปรอบ ๆ ร้านโดยไม่ต้องอยู่ห่างจากเครื่องปรับอากาศนานเกินไป เมื่อได้รับแผนที่คุณต้องหาทางเดินทางรอบ ๆ แผนที่ทั้งหมดโดยรักษาระยะห่างจากเครื่องปรับอากาศให้สั้นที่สุด (แม้ว่าหน่วย AC จะอยู่อีกด้านหนึ่งของกำแพง) แผนที่ แผนที่อาจมีให้ในลักษณะที่คุณชอบและใช้สัญลักษณ์ต่อไปนี้: + is a corner of a wall | is a east/west facing wall - is a north/south facing wall X is an air conditioning unit S is the start and end point …

8
เล่นกอล์ฟที่ธนาคาร
ธนาคารใหม่ของเราต้องการระบบการทำธุรกรรมจ่ายเงิน แต่มีปัญหา มีพื้นที่ว่างเพียงไม่กี่ร้อยไบต์บนเซิร์ฟเวอร์ของเราดังนั้นคุณจะต้องเขียนโค้ดที่มีขนาดกะทัดรัดมาก ฐานข้อมูล โชคดีที่ฐานข้อมูลของเรานั้นง่ายมาก (มันถูกสร้างโดยลูกชายนักเรียนของประธานธนาคารของเรา) และเรามีลูกค้าเพียงไม่กี่คนเท่านั้น ไฟล์Bank.dataคือ: Account Firstname Lastname Balance Date 123 Maree Jones 346.22 2014-12-13 035 Thomas Breakbone 3422.02 2015-01-03 422 Henrietta Throsby-Borashenko 277847.74 2014-11-21 501 Timmy Bongo 7.95 2014-11-04 105 William Greene 893.00 2015-01-06 300 Mary Galoway 1228.73 2014-12-28 203 Samantha Richardson 2055.44 2014-11-01 151 Bruce …
11 code-golf 

7
สตริงย่อยดีเอ็นเอ palindromic reverse ที่ยาวที่สุด
อย่างที่คุณอาจทราบในDNAมีสี่ฐานคือ adenine ( A), cytosine ( C), guanine ( G) และ thymine ( T) โดยปกติAพันธบัตรTและCหุ้นกู้ที่มีGรูป "ขั้นบันได" ของโครงสร้างดีเอ็นเอเกลียวคู่ เรากำหนดส่วนประกอบของฐานในการเป็นฐานมันพันธบัตร - คือส่วนเติมเต็มของAเป็นTส่วนประกอบของการTเป็นAส่วนประกอบของCเป็นGและส่วนประกอบของมีG Cนอกจากนี้เรายังสามารถกำหนดส่วนประกอบของสตริงดีเอ็นเอที่จะเป็นสตริงที่มีฐานแต่ละครบครันเช่นส่วนประกอบของมีGATATCCTATAG เนื่องจากโครงสร้างที่มีการตีเกลียวเป็นสองเท่าของดีเอ็นเอฐานในหนึ่งสาระจึงประกอบกับฐานของอีกสายหนึ่ง อย่างไรก็ตาม DNA มีทิศทางและการถอดรหัส DNA เกิดขึ้นในทิศทางตรงกันข้ามกับสองเส้น ดังนั้นนักชีววิทยาโมเลกุลมักจะสนใจในส่วนเติมกลับของสาย DNA - ค่อนข้างกลับด้านของส่วนเติมเต็มของสายอักขระ ที่จะขยายตัวอย่างก่อนหน้านี้ของเราที่สมบูรณ์กลับGATATCเป็นไปข้างหลังเพื่อให้CTATAG GATATCดังที่คุณอาจสังเกตเห็นในตัวอย่างนี้ส่วนประกอบย้อนกลับมีค่าเท่ากับสตริงเดิม - เราเรียกสตริงดังกล่าวว่าReverse palindrome * เมื่อได้รับสาย DNA คุณสามารถค้นหา substring ที่ยาวที่สุดซึ่งเป็น palindrome แบบย้อนกลับได้หรือไม่? * ฉันใช้คำว่า "reverse palindrome" ซึ่งนำมาจากRosalindเพื่อแยกความแตกต่างจากความหมายปกติของ palindrome …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.