คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

12
จำนวนที่ต้องการ
งาน รับ 2 จำนวนเต็มบวกnและkที่ไหนn > kส่งออกจำนวน surjections จากชุดของnองค์ประกอบที่แตกต่างเพื่อชุดของkองค์ประกอบที่แตกต่าง คำนิยาม ฟังก์ชั่น f: S → T ถูกเรียกว่า surjection ถ้าทุกๆt∈Tมีs∈Sซึ่ง f (s) = t ตัวอย่าง เมื่อใดn=3และk=2ผลลัพธ์คือ6เนื่องจากมี6surjections จาก{1,2,3}ถึง{1,2}: 1↦1, 2↦1, 3↦2 1↦1, 2↦2, 3↦1 1↦1, 2↦2, 3↦2 1↦2, 2↦1, 3↦1 1↦2, 2↦1, 3↦2 1↦2, 2↦2, 3↦1 Testcases n k output 5 3 150 8 …

12
ตั้งโปรแกรมโปรแกรมเรียกเลขหมายอัตโนมัติของฉัน
ย้อนกลับไปในวันนั้นผู้เรียกเลขหมายอัตโนมัติโทรศัพท์ใช้บัตร punched กับหนึ่งคอลัมน์สำหรับแต่ละหลักของหมายเลขที่จะโทรออก คอลัมน์มีเจ็ดแถว สามแถวแรกแสดงหมายเลข (1,2,3), (4,5,6) และ (7,8,9) ตามลำดับ สามแถวสุดท้ายหมุนการจัดเรียงนี้ 90 °: (1,4,7), (2,5,8) และ (3,6,9) แถวกลางใช้สำหรับ 0 หลักใด ๆ ที่ 1-9 จะมีการเจาะสองรู - หนึ่งในสามแถวแรกและหนึ่งในสามแถวด้านล่าง ศูนย์จะมีการเจาะแถวกลางเท่านั้น ลองจินตนาการถึงคอลัมน์ที่ถูกเจาะสำหรับหมายเลข 6 ( .ไม่ได้xถูกเจาะ, ถูกกด, คำแนะนำทางด้านซ้ายเป็นเพียงเพื่อแสดงการเข้ารหัส): 123 . 456 x 789 . 0 . 147 . 258 . 369 x เรามองหาแถวที่มีหมายเลขที่เราพยายามโทรออก สำหรับ 6 …

2
ค้นหาว่านี่เป็นโปรแกรม Stack Cats ที่ถูกต้องหรือไม่ในสไตล์ Stack Cats!
พื้นหลัง Stack Catsเป็นภาษาลึกลับที่สามารถย้อนกลับได้โดย Martin Ender แต่ละคำสั่งใน Stack Cats เป็นทั้งการผกผันของตัวเอง (แสดงเป็นตัวอักษรสมมาตรเช่น-_:T|) หรือมีคำสั่งผกผันของมัน (แสดงเป็นภาพสะท้อนในกระจกเช่น() {} [] <>) Stack Cats มีความต้องการด้านไวยากรณ์ที่แข็งแกร่งซึ่งโปรแกรมทั้งหมดควรเป็นภาพสะท้อนของตัวมันเอง โปรดทราบว่านี้หมายถึงการที่ถูกต้องโปรแกรมใด ๆ Stack แมวเป็นแอมบิแกรมภาพกระจกสะท้อนธรรมชาติ นี่คือชุดคำสั่งทั้งหมดของ Stack Cats: Self-สมมาตร: !*+-:=ITX^_| คู่สมมาตร: () {} [] <> \/ อักขระอื่น ๆ ไม่ถูกต้อง อินพุตใด ๆ ที่มีอักขระที่ไม่ได้อยู่ในชุดอักขระด้านบนควรเอาต์พุตเท็จ ภาษามีข้อ จำกัด เพิ่มเติมที่()และ{}คู่ต้องสมดุลเสมอ แต่เพื่อความเรียบง่ายคุณไม่จำเป็นต้องตรวจสอบเงื่อนไขนี้ ต่อไปนี้เป็นตัวอย่างของโปรแกรมStack Cats ที่ถูกต้อง (อีกครั้งโปรดทราบว่าคุณไม่ได้ตรวจสอบการล้อเลียนที่สมดุล): {[+]==[+]} [)>^<(] ({T)}|{(T}) …

13
ใช้อัลกอริธึมของยีนแบบไขว้
งานของคุณคือการยอมรับการป้อนข้อมูลลำดับของยีนที่สองและลำดับของ "ข้ามจุด" และส่งกลับลำดับของยีนที่เป็นผลมาจากการข้ามครอสที่ระบุ สิ่งที่ผมหมายถึงนี้คือว่าคุณมีลำดับ[A, A, A, A, A, A, A]และ[Z, Z, Z, Z, Z, Z, Z]และข้ามจุดและ2 5ลำดับผลลัพธ์จะเป็น[A, A, Z, Z, Z, A, A]เพราะ: ข้ามที่นี่: VV ดัชนี: 0 1 2 3 4 5 6 ยีน 1: AAAAAAA ยีน 2: ZZZZZZZ ผลลัพธ์: AAZZZAA ^ ^ โปรดทราบว่าในขณะที่ฉันกำลังใช้ตัวอักษรที่นี่เพื่อความชัดเจนความท้าทายที่แท้จริงใช้ตัวเลขสำหรับยีน ผลลัพธ์คือลำดับแรกจนกระทั่งพบจุดข้ามจากนั้นผลลัพธ์จะเริ่มจากลำดับที่สองจนกระทั่งพบจุดข้ามอีกจุดจากนั้นผลลัพธ์จะเริ่มจากลำดับแรกจนกระทั่งพบจุดตัดเหนือ ... การป้อนข้อมูล: การป้อนข้อมูลอาจเป็นรูปแบบที่เหมาะสม ทั้งสองลำดับสามารถเป็นคู่โดยมีคะแนนเป็นอาร์กิวเมนต์ที่สองทั้งสามสามารถแยกอาร์กิวเมนต์อาร์กิวเมนต์แฝดของ(genes 1, …

19
อ่านสีในแบบของฉัน
ระบบที่ต่างกันมีวิธีการอธิบายสีที่ต่างกันแม้ว่าทุกคนกำลังพูดในพื้นที่ RGBA นักพัฒนา front-end ที่มีความคุ้นเคยกับ CSS #RRGGBBAAอาจจะชอบ แต่นักพัฒนา Android #AARRGGBBอาจต้องการ เมื่อจัดการรูปแบบไฟล์ AAS #AABBGGRRจำเป็นต้องมี มันสับสนเกินไป บางทีเราต้องการโปรแกรมที่สามารถแปลงระหว่างรูปแบบสีต่างๆ การป้อนข้อมูล: อินพุตประกอบด้วย 3 ส่วน: สีที่ต้องการแปลง (เช่น#1459AC0F) สตริงที่ขึ้นต้นด้วยเครื่องหมายคม#ตามด้วยเลขฐานสิบหก 8 หลัก รูปแบบของสีที่กำหนด (เช่น#RRGGBBAA) สตริงที่เริ่มต้นด้วย#ผู้ติดตาม 8 ตัวอักษรซึ่งตกอยู่ใน 4 กลุ่มที่แตกต่างกันและแต่ละกลุ่มเป็นหนึ่งRR/ GG/ /BBAA รูปแบบที่จะแปลงเป็น เอาท์พุท: เอาท์พุทสีในรูปแบบที่แปลงแล้ว กรณีทดสอบ: Color, OriginalFormat, TargetFormat -> Result #12345678, #RRGGBBAA, #AARRGGBB -> #78123456 #1A2B3C4D, #RRGGBBAA, #AABBGGRR …

15
ความเท่าเทียมกันของสกรรมกริยา
ความท้าทาย โปรแกรมของคุณควรมี 3 อินพุต: จำนวนเต็มบวกซึ่งเป็นจำนวนตัวแปร ชุดของคู่ที่ไม่เรียงลำดับของจำนวนเต็มที่ไม่ใช่ค่าลบซึ่งแต่ละคู่แสดงถึงความเท่าเทียมกันระหว่างตัวแปรและ จำนวนเต็มบวกซึ่งแสดงถึงตัวแปรเริ่มต้น มันควรจะส่งคืนชุดของจำนวนเต็มที่ไม่ใช่ค่าลบซึ่งเป็นตัวแทนของตัวแปรทั้งหมดซึ่งสามารถแสดงให้เห็นว่าเป็นแบบเปลี่ยนผ่านได้เท่ากับตัวแปรเริ่มต้น (รวมถึงตัวแปรเริ่มต้นเอง) ในคำอื่น ๆ ปัจจัยการผลิตที่กำหนดN, EและSกลับชุดQดังกล่าวว่า: S ∈ Q. ถ้าZ ∈ Qและแล้ว(Y = Z) ∈ EY ∈ Q ถ้าZ ∈ Qและแล้ว(Z = Y) ∈ EY ∈ Q สิ่งนี้สามารถแสดงเป็นปัญหากราฟทฤษฎี : รับกราฟไม่มีทิศทางและจุดสุดยอดในกราฟรายชื่อจุดในขององค์ประกอบที่เกี่ยวโยงกัน ข้อมูลจำเพาะ คุณสามารถเลือกที่จะใช้การจัดทำดัชนีแบบอิง 0 หรือ 1 อินพุตแรกนับจำนวนตัวแปรที่มีอยู่โดยที่ตัวแปรถูกกำหนดเป็นตัวเลข อีกทางหนึ่งคุณไม่สามารถรับอินพุตนี้ซึ่งในกรณีนี้จะถือว่าเท่ากับดัชนีตัวแปรสูงสุดที่มีอยู่หรือมากกว่าหนึ่งนี้ขึ้นอยู่กับรูปแบบการจัดทำดัชนีของคุณ คุณสามารถสันนิษฐานได้ว่าอินพุตมีรูปแบบที่ดี: คุณจะไม่ได้รับตัวแปรนอกช่วงที่ระบุโดยอินพุตแรก ตัวอย่างเช่น3, [1 = 2, …

24
ตัวสร้าง ID ที่ไม่มีคู่ที่ต่อเนื่องกันที่ตรงกัน
รับ 2 อินพุต (m = รหัสเริ่มต้นขั้นต่ำ , n = จำนวนรหัส ), สร้างรายการลำดับของรหัสเริ่มต้นที่> = m, ประกอบด้วยตัวเลข 0-9 โดยไม่มีตัวเลขต่อเนื่อง 2 หมายเลขเช่น 1232 คือ ตกลง 1233 ไม่ใช่ (มี 2 '3 อยู่ติดกัน) ตัวอย่าง สำหรับ m = 985, n = 6, ด้านล่างแสดงรหัสที่จะสร้าง / ข้าม ... 985 - ok, 1st 986 - ok, 2nd 987 - …

11
ต้องการเห็น Magic Card Trick ไหม?
เคล็ดลับการ์ดเวทย์มนตร์แรกที่ฉันได้เรียนรู้ตอนเป็นเด็กคือ: มีไพ่ 1 สำรับที่ลวดลายด้านหลังไม่สมมาตรในแนวตั้ง จัดระเบียบการ์ดทั้งหมดให้หันไปทางเดียว ขอให้คน ๆ หนึ่ง "หยิบการ์ดการ์ดใด ๆ จดจำและส่งคืนให้คุณ" ดำเนินการต่อเพื่อใส่ลงในสำรับ (ในทิศทางที่ผิด) สุ่มเล่นอย่างแรงโดยให้ภาพลวงตาว่าคุณจะไม่ทราบว่าการ์ดของพวกเขาอยู่ที่ไหน ผลิตบัตรของพวกเขาเพื่อความประหลาดใจของพวกเขา เห็นได้ชัดว่าเคล็ดลับนี้ขาดความเป็นธรรมชาติเล็กน้อยในตอนนี้ต่อวันอย่างไรก็ตามมันเป็นเรื่องที่ท้าทาย เขียนโปรแกรมซึ่งเมื่อไม่มีการป้อนข้อมูลจะส่งสำรับไพ่แบบสุ่มที่มีการสับไพ่หนึ่งใบเลือกโดยสุ่มและสลับกลับ อย่างไรก็ตามเมื่ออินพุทเป็นสำรับไพ่ที่มีการ์ดหนึ่งใบกลับด้านคุณจะต้องส่งออกการ์ดที่กลับด้าน (ตามลำดับที่ถูกต้อง) สำรับไพ่ สำรับไพ่ถูกกำหนดให้เป็น: [2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, 2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD, 2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, 2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC] การ์ดถูกกำหนดให้เป็นหมายเลขแล้วตามด้วยตัวอักษรตัวแรกของชุดสูท ด้านหลังของการ์ดเป็นสิ่งที่ตรงกันข้ามอย่างแท้จริงตัวอักษรตัวแรกของชุดตามด้วยหมายเลข การ์ดจับรางวัล ตัวอย่างถ้าบัตรที่เราเลือกสุ่มกลับเป็น4 of Clubs (4C)เราก็จะจบลงด้วย (โดยไม่มีการสับชัด): [2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, 2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD, 2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, 2C,3C,C4,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC] The Shuffling จากนั้นหลังจากการสับ: [2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D] นี่เป็นเอาต์พุตที่ถูกต้องที่ให้อินพุตว่าง อินพุตเด็ค แต่ตรงกันข้ามเมื่อโปรแกรมของเราได้รับการส่งออกดังกล่าวข้างต้นเป็น input 4Cก็ควรเอาท์พุท กล่าวคือสำหรับการป้อนข้อมูลของ: [2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D] คุณวนซ้ำจนกว่าคุณจะพบการ์ดที่กลับด้านแล้วคืนกลับสู่สถานะปกติ ดังนั้นที่นี่เราจะพบC4ว่ารู้ว่า …

10
หมายเลขคอมโพสิตเดิม
นิยามลำดับ สร้างลำดับของจำนวนเต็มบวกa(n)ดังนี้ a(0) = 4 ระยะแต่ละa(n)อื่น ๆ กว่าครั้งแรกเป็นจำนวนน้อยที่สุดที่ตอบสนองความต่อไปนี้: ก) a(n)เป็นจำนวนคอมโพสิต ข) a(n) > a(n-1)และ ค) เป็นจำนวนคอมโพสิตสำหรับแต่ละa(n) + a(k) + 10 <= k < n a(0) = 4ดังนั้นเราจึงเริ่มต้นด้วย รายการต่อไปจะต้องเป็นa(1) 9ไม่สามารถเป็นได้5หรือ7เนื่องจากไม่มีคอมโพสิตและไม่สามารถเป็น6หรือ8เพราะ6+4+1=11ไม่ได้ประกอบและ8+4+1=13ไม่ได้ประกอบ สุดท้ายซึ่งเป็นคอมโพสิตดังนั้น9+4+1=14a(1) = 9 รายการต่อไปa(2)จะต้องเป็น10เพราะมันเป็นจำนวนที่เล็กที่สุดที่มีขนาดใหญ่กว่าและ9มีทั้งคอมโพสิต10+9+1=2010+4+1=15 สำหรับรายการถัดไป11และ13ทั้งคู่ก็ออกเพราะพวกเขาไม่ได้ประกอบ 12ออกเนื่องจาก12+4+1=17ไม่ประกอบ 14ออกเนื่องจาก14+4+1=19ไม่ประกอบ ดังนั้น15เป็นระยะต่อไปของลำดับเนื่องจาก15เป็นคอมโพสิตและ15+4+1=20, 15+9+1=25และทุกคนในแต่ละคอมโพสิตดังนั้น15+10+1=26a(3) = 15 นี่คือ 30 คำแรกในลำดับนี้: 4, 9, 10, 15, 16, 22, 28, …

8
จำลองเซลล์ประสาทจำลอง
Izhikevich เซลล์ประสาทจะง่ายยังรูปแบบค่อนข้างมีประสิทธิภาพของเซลล์ประสาทชีววิทยาที่ออกแบบมาสำหรับการใช้งานในแบบจำลองเวลาก้าวต่อเนื่อง ในการแข่งขันกอล์ฟนี้คุณจะต้องใช้โมเดลนี้ พารามิเตอร์ โมเดลนี้มีเพียง 7 ตัวแปรที่จัดเป็นสมการเชิงอนุพันธ์ 2 แบบเมื่อเทียบกับพารามิเตอร์หลายสิบตัวของแบบจำลองทางกายภาพที่แม่นยำ vและuเป็นตัวแปรสถานะสองอย่างของเซลล์ประสาท นี่vคือตัวแปร "เร็ว" ที่แสดงถึงศักยภาพของเซลล์เมื่อเวลาผ่านไปและuเป็นตัวแปร "ช้า" ที่แสดงถึงคุณสมบัติของเมมเบรนบางอย่าง vตัวแปรหนึ่งที่สำคัญที่สุดเช่นนี้เป็นผลลัพธ์ของการจำลอง a, b, cและdได้รับการแก้ไขค่าคงที่อธิบายคุณสมบัติของเซลล์ประสาท เซลล์ประสาทประเภทต่าง ๆ มีค่าคงที่ต่างกันขึ้นอยู่กับพฤติกรรมที่ต้องการ ยวดcเป็นศักยภาพการรีเซ็ตซึ่งเป็นศักยภาพเยื่อหุ้มเซลล์กลับไปหลังจาก spiking Iแสดงถึงกระแสไฟฟ้าที่ป้อนเข้าสู่เซลล์ประสาท ในการจำลองเครือข่ายสิ่งนี้จะเปลี่ยนแปลงตลอดเวลา แต่สำหรับวัตถุประสงค์ของเราเราจะถือว่าIเป็นค่าคงที่ที่แน่นอน นางแบบ รุ่นนี้มีรหัสเทียมที่ง่ายมาก อันดับแรกเรารับค่าคงที่abcdและใช้เพื่อเริ่มต้นvและu: v = c u = b * c ต่อไปเราวนซ้ำรหัสจำลองหลาย ๆ ครั้งตามที่ต้องการ การวนซ้ำแต่ละครั้งแสดงเวลา 1 มิลลิวินาที for 1..t: if v >= 30: …

6
Panfix ไปยังวงเล็บที่ใส่ไว้
Quylthulgเป็นภาษาโดย Chris Pressey ที่พยายามแก้ไขปัญหาสัญกรณ์ของ infix โดยใช้สิ่งที่เรียกว่าpanfix : เช่น postfix Panfix ไม่ต้องการการปรับใช้ Arcane contrivances เช่นวงเล็บเพื่อแทนที่การมาก่อนของโอเปอเรเตอร์ ในเวลาเดียวกัน panfix อนุญาตให้ระบุเงื่อนไขในลำดับและลักษณะเดียวกับมัดซึ่งเป็นสัญกรณ์ธรรมชาติและใช้งานง่ายสำหรับผู้ที่คุ้นเคย คุณจะได้รับความสะดวกสบายของสัญกรณ์มัดพร้อมกับความไม่น่าสงสัยของคำนำหน้าหรือ postfix? ใช้แน่นอนทั้งสาม! =y=+*3*x*+1+= เป็นทางการมากขึ้นปล่อยให้+เป็นโอเปอเรเตอร์aและbเป็นนิพจน์ จากนั้น(a+b)เป็นนิพจน์มัดที่ถูกต้อง (วงเล็บ) การแสดง Panfix ของนิพจน์นั้นคือ+a+b+ที่ juxtaposition แสดงถึงการต่อกัน เป้าหมายของคุณคือการใช้สตริง panfix และแปลงเป็นมัดมัดเต็ม: (y=((3*x)+1)) เพื่อความง่ายเราจะทำการเปลี่ยนแปลงดังต่อไปนี้: ตัวดำเนินการสามารถประกอบด้วยอักขระที่ไม่ซ้ำกันสองตัวเท่านั้น (คุณสามารถเลือกได้ แต่ที่นี่ฉันจะใช้*และ+) มีเพียงตัวอักษรเดียวซึ่งประกอบด้วยตัวละครอื่นที่แตกต่างกัน (คุณสามารถเลือกใด ๆ แต่ที่นี่ฉันจะใช้_) อินพุตจะเป็นนิพจน์ Panfix ที่มีรูปแบบที่ดี สำหรับความซับซ้อนเราจะทำการเปลี่ยนแปลงดังต่อไปนี้: ผู้ประกอบการสามารถประกอบด้วยจำนวนอักขระที่เป็นบวกใด ๆไม่ใช่เพียงหนึ่งตัวอักษร สิ่งนี้ทำให้ความท้าทายมีความยุ่งยากมากขึ้นเนื่องจากคุณไม่สามารถระบุได้ว่าสตริงย่อยของตัวดำเนินการที่กำหนดจะถูกแบ่งพาร์ติชันโดยไม่ได้ดูสตริงที่เหลือหรือไม่ นี่คือการดำเนินการอ้างอิงสำหรับความท้าทายที่ได้รับความอนุเคราะห์จาก @ …

2
Gerrymandering พร้อมประตูลอจิก
ฟังก์ชันส่วนใหญ่เป็นฟังก์ชั่นบูลีนซึ่งรับอินพุตบูลีนสามรายการและส่งคืนค่าที่พบบ่อยที่สุด เช่นถ้าmaj(x,y,z)เป็นฟังก์ชันส่วนใหญ่และTหมายถึงความจริงและFหมายถึงเท็จแล้ว: maj(T,T,T) = T maj(T,T,F) = T maj(T,F,F) = F maj(F,F,F) = F คำถามนี้เกี่ยวข้องกับการเขียนฟังก์ชันบูลีนเป็นองค์ประกอบของฟังก์ชันส่วนใหญ่ ตัวอย่างขององค์ประกอบ 5 Ary (x1,x2,x3,x4,x5) => maj(x1,x2,maj(x3,x4,x5))ของฟังก์ชั่นส่วนใหญ่เป็น ฟังก์ชันนี้ส่งคืนเอาต์พุตต่อไปนี้บนเวกเตอร์อินพุตตัวอย่างเหล่านี้: (T,T,F,F,F) => maj(T,T,maj(F,F,F)) = maj(T,T,F) = T (T,F,T,T,F) => maj(T,F,maj(T,T,F)) = maj(T,F,T) = T (T,F,T,F,F) => maj(T,F,maj(T,F,F)) = maj(T,F,F) = F (F,F,F,T,T) => maj(F,F,maj(F,T,T)) = maj(F,F,T) = F …

30
สี่เหลี่ยมที่สมบูรณ์แบบไร้พรมแดน
ได้รับn=m^2กลับรายการของจำนวนเต็มที่ไม่ชายแดนตารางของจำนวนเต็มจากm x m1 to n ตัวอย่าง n = 1 (m = 1) ตาราง: [1] กลับ: [] n = 4 (m = 2) ตาราง: [1,2] [3,4] กลับ: [] n = 9 (m = 3) ตาราง: [1,2,3] [4,5,6] [7,8,9] กลับ: [5] n = 16 (m = 4) ตาราง: [ 1, 2, 3, …
16 code-golf  matrix 

5
แฟ็กทอเรียล
วันนี้ในชั้นเรียนสถิติของฉันฉันพบว่าแฟคทอเรียลบางตัวสามารถทำให้ง่ายขึ้นเมื่อคูณเข้าด้วยกัน! ตัวอย่างเช่น:5! * 3! = 5! *3*2 = 5! *6 = 6! งานของคุณ: รับสตริงที่มีเฉพาะตัวเลขอารบิกและเครื่องหมายอัศเจรีย์ทำให้แฟคทอเรียลของฉันเป็นสตริงที่สั้นที่สุดเท่าที่เป็นไปได้ในจำนวนไบต์น้อยที่สุดสำหรับภาษาของคุณสไตล์การเขียนโค้ด อินพุต สตริงที่มีเฉพาะตัวเลขอารบิกและเครื่องหมายอัศเจรีย์ แฟกทอเรียลสำหรับอินพุตจะไม่ใหญ่กว่า 200! แฟคทอเรียลจะไม่มีแฟคทอเรียลมากกว่าหนึ่งรายการต่อหมายเลข อินพุตอาจถูกใช้เป็นรายการของจำนวนเต็ม เอาท์พุต สตริงที่สั้นลงซึ่งอาจมีค่าเทียบเท่ากับอินพุต คำสั่งซื้อนั้นไม่สำคัญ สัญลักษณ์แฟคทอเรียลเป็นสิ่งที่จำเป็น แต่คุณไม่จำเป็นต้องใช้สัญลักษณ์แฟคทอเรียลมากกว่าหนึ่งรายการต่อหมายเลข กรณีทดสอบ In: 3!2!2! Out: 4! In 2!3!2!0! Out: 4! In: 7!2!2!7!2!2!2!2! Out: 8!8! In: 23!3!2!2! Out: 24! Also: 4!! In: 23!3!2!2!2! Out: 24!2! In: 127!2!2!2!2!2!2!2! …

4
Tuple เพิ่มเติมใน pointfree
เป็นวิธีที่สั้นที่สุดที่เราสามารถแสดงฟังก์ชั่นอะไร f(a,b)(c,d)=(a+c,b+d) ในสัญกรณ์ฟรี pointfree.ioให้เรา uncurry (flip flip snd . (ap .) . flip flip fst . ((.) .) . (. (+)) . flip . (((.) . (,)) .) . (+)) ซึ่งสามารถทำงานให้สั้นลงได้ uncurry$(`flip`snd).((<*>).).(`flip`fst).((.).).(.(+)).flip.(((.).(,)).).(+) สำหรับ 76 ไบต์ แต่ตอนนี้ยังดูเหมือนว่ามันยาวและซับซ้อนสำหรับการดังกล่าวเป็นงานที่ง่าย มีวิธีใดบ้างที่เราสามารถแสดงการเพิ่มขึ้นของจำนวนคู่ในฐานะฟังก์ชั่นไร้จุดที่สั้นกว่าได้หรือไม่? เพื่อให้ชัดเจนโดยสิ่งที่ฉันหมายถึงโดยไม่มีจุดการประกาศจุดของฟังก์ชั่นที่เกี่ยวข้องกับการมีฟังก์ชั่นที่มีอยู่และผู้ประกอบการและใช้พวกเขากับแต่ละอื่น ๆ ในลักษณะที่ฟังก์ชั่นที่ต้องการจะถูกสร้างขึ้น backticks วงเล็บและคุณค่าที่แท้จริง ( [], 0, [1..3]ฯลฯ ) จะได้รับอนุญาต แต่คำหลักเช่นwhereและletจะไม่ หมายความว่า: …

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