คุณคือผู้ใช้: สร้างข้อกำหนด


15

เจ้านายของฉัน * ไม่เข้าใจว่าเพราะเหตุใดโปรแกรมเมอร์ของเธอตอบสนองเชิงลบต่อผู้ใช้ที่เปลี่ยนแปลงข้อกำหนดของโปรแกรม ช่วยเธอเข้าใจ! ในทุกคำตอบให้สร้างข้อกำหนดใหม่ จากนั้นเขียนโปรแกรม / ฟังก์ชั่นที่แก้ปัญหาความต้องการนั้นและข้อกำหนดก่อนหน้าทั้งหมดขณะที่อยู่ในภาษาการเขียนโปรแกรมใหม่

ตัวอย่าง

ผู้ใช้ 1 โพสต์คำตอบแรก เขาระบุว่าโปรแกรมจะต้องส่งออก "Hello, World" เขาสร้างโปรแกรมใน Java ที่แสดงผล "Hello, World"

ผู้ใช้ 2 โพสต์คำตอบที่สอง เธอระบุว่าโปรแกรมจะต้องยอมรับอินพุตnและส่งออกค่านายกลำดับที่nจนถึงจำนวนสูงสุดของภาษา เธอสร้างโปรแกรมใน C ++ ที่ยอมรับใส่nและออกผลลัพธ์เป็นn THนายกรัฐมนตรีและเอาท์พุท "Hello, world." เธอไม่สามารถสร้างโปรแกรมใน Java

ผู้ใช้ 3 โพสต์คำตอบที่สาม เขาระบุว่าแหล่งโปรแกรมไม่สามารถมีข้อความ "Hello" พระองค์ทรงสร้างฟังก์ชั่นในหลามที่ยอมรับการป้อนnและออกผลลัพธ์เป็นn THนายกรัฐมนตรีและ "Hello, world." ในขณะที่ไม่ได้ใช้ข้อความ "Hello" ในแหล่งที่มาของเขา เขาไม่สามารถสร้างโปรแกรมใน Java หรือ C ++

รูปแบบคำตอบ

#Answer # - <language name> [version, if pertinent]

Requirement: <rule>.

<code>

[explanations, encoding, TIO link, etc.]

ตอบกฎ

  • คำตอบจะต้องเป็นไปตามรูปแบบข้างต้นหรือคล้ายกัน

  • คำตอบอาจเป็นโปรแกรมหรือฟังก์ชั่น

  • คำตอบจะต้องตอบสนองความต้องการทั้งหมดจนถึงและรวมถึงคำตอบปัจจุบัน

  • ผู้ใช้เดียวกันไม่สามารถโพสต์คำตอบสองคำในหนึ่งแถว

  • หากคำตอบสองคำตอบถูกโพสต์ด้วยหมายเลขเดียวกันคำตอบที่โพสต์ในภายหลังควรถูกลบ

  • อย่าแก้ไขความต้องการของคุณจนกว่าคุณจะทำใจไม่ดีและไม่มีคำตอบอื่นใดโพสต์

  • หากคำตอบของคุณไม่สอดคล้องกับกฎของคุณและกฎอื่น ๆ ทั้งหมดแสดงว่าไม่ถูกต้อง ลองแก้ไขก่อนที่จะมีใครโพสต์คำตอบถัดไป

  • รุ่นเดียวกันของภาษาเดียวกันจะนับเป็นภาษาที่ต่างกันหากโปรแกรมหรือฟังก์ชั่นที่สร้างขึ้นในเวอร์ชันใดเวอร์ชันหนึ่งจะทำงานต่างกันในเวอร์ชันอื่น

  • คำตอบอาจไม่ยอมรับการป้อนข้อมูลใด ๆ ที่ไม่จำเป็นและอาจไม่ส่งออกสิ่งที่ไม่จำเป็นยกเว้นช่องว่างที่จำเป็น อย่างไรก็ตามแม้ว่าเบื้องหลังโปรแกรมจะต้องปฏิบัติตามข้อกำหนด "ที่ซ่อนอยู่" (จากผู้ใช้) แต่ก็อาจทำทุกอย่างที่คุณต้องการโดยเฉพาะอย่างยิ่งหากคุณต้องปฏิบัติตามข้อกำหนดเรื่องเวลาดำเนินการ

กฎความต้องการ

  • ความต้องการจะต้องระบุเพียงหนึ่งความต้องการ ข้อกำหนดนี้อาจมีเงื่อนไขและหากข้อกำหนดนี้ต้องการอินพุตและ / หรือเอาท์พุทอาจรวมอยู่ด้วย

  • ข้อกำหนดอาจไม่ลบหรือปรับเปลี่ยนข้อกำหนดก่อนหน้าหรือขัดแย้งกับข้อกำหนดดังกล่าว แต่อาจขยายได้อีกหนึ่งข้อกำหนด (ระบุว่า)

  • หากต้องการ จำกัด แหล่งที่มา ( ) หรือต้องมีข้อความในแหล่งที่มาของมันอาจจะเป็นเพียงเอาสายเดียว (เช่น0, Hello) หรือต้องใช้ตัวอักษรตัวเดียว

  • ข้อกำหนดไม่สามารถกำหนดแหล่งที่มาให้มีขนาดต่ำกว่า 100 ไบต์ต้องการการเข้ารหัสที่เฉพาะเจาะจงหรือในตัวของมันเองและต้องออกกฎส่วนใหญ่ของภาษาทั่วไป

  • ข้อกำหนดอาจไม่บังคับแหล่งที่มาให้สอดคล้องกับรูปแบบที่แน่นอน (ตัวอย่างเช่นการเริ่มแต่ละบรรทัดด้วยอักขระบางตัวหรือ (@Conor) การแปลงค่าเป็นค่าที่แน่นอน) นอกเหนือจากที่ระบุในแหล่งที่ จำกัด

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

วิธีชนะ (เปลี่ยนเพื่อระงับการโหวต):

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

pseudocode:

for each answer in user.Answers {
   score += 1 + (answer.number / 100)
}

ตัวอย่าง:

แซลลี่มีสามคำตอบ เธอโพสต์คำตอบ 5 คำตอบ 7 และตอบ 20

1.05 + 1.07 + 1.2 = 3.32คะแนนของเธอจะเป็น หากเป็นผลรวมของคำตอบแบบตรงคะแนนของเธอจะเป็น 3 แต่การถ่วงน้ำหนักของความลึกของโซ่ตอบแทนคำตอบที่ยากขึ้น

เริ่ม:

นี่เป็นข้อกำหนดแรกที่หัวหน้าของฉันมอบให้:

ข้อกำหนดที่ 0: โปรแกรมจะต้องส่งออก 0 ก่อนสิ่งอื่นใด

* สมมุติ

รายการข้อกำหนดและภาษา

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

เต็มรูปแบบ ( แต่อาจจะไม่ได้ในปัจจุบัน) ที่ต้องการ: ไม่สามารถมี0, *หรือ]ในรหัสที่มาและไม่สามารถใช้ร่วม-on-ขึ้นบรรทัดใหม่ในตัว เอาท์พุ0ทจากนั้นรับอินพุทเลขจำนวนเต็มที่ไม่เป็นลบnและขึ้นบรรทัดใหม่ตามด้วยnหมายเลขฟิโบน่าชี0 ดัชนี(อาจถูก1ทำดัชนี) ตามด้วยบรรทัดใหม่ตามด้วยอินพุทเดียวกัน n กำลังสองตามด้วยการขึ้นบรรทัดใหม่ตามด้วยnทวีคูณ โดยอินพุตใหม่m, ตามด้วย newline, ตามด้วย10^B, ที่ไหนBคือจำนวนไบต์ในซอร์สโค้ด, ตามด้วย newline, ตามด้วยnth 0-indexed (อาจเป็น1-exexed) Prime number, ตามด้วย newline, ตามด้วยตัวหารสามัญที่ยิ่งใหญ่ที่สุดของ n และ m

0: โปรแกรมจะต้องส่งออก0ก่อนสิ่งอื่นใดภาษา: N / A
1: 0แหล่งที่มาของโปรแกรมไม่สามารถมี ภาษา: 05AB1E
2: โปรแกรมรับอินพุตที่ไม่เป็นลบจำนวนเต็มnและแสดงบรรทัดใหม่ตามด้วยหมายเลข0-indexed n'th Fibonacci (อาจถูก1ทำดัชนี) ภาษา: dc
3: โปรแกรมเอาต์พุตบรรทัดใหม่ตามด้วยอินพุตnกำลังสองเดียวกัน ภาษา: J
4: โปรแกรมส่งเอาต์พุตขึ้นบรรทัดใหม่ตามด้วยnคูณด้วยอินพุตใหม่mคูณด้วยการป้อนข้อมูลใหม่ภาษา: Ohm
5: โปรแกรมไม่สามารถมี*(รหัส ASCII 0x2A) ภาษา: Python 3
6: โปรแกรมส่งเอาต์พุตขึ้นบรรทัดใหม่ตามด้วยโดย10^Bที่Bจำนวนไบต์ในซอร์สโค้ด ภาษา: Mathematica
7: โปรแกรมจะแสดงบรรทัดใหม่ตามด้วยหมายเลขเฉพาะnth 0-indexed (อาจจะเป็น1-exexed) ภาษา: JavaScript (ES6)
8: โปรแกรมไม่ได้ใช้การรวมเข้ากับสายอักขระใหม่ในตัว แต่สามารถใช้การรวมเข้าด้วยกันอื่น ๆ ได้ ภาษา: Jelly
9: โปรแกรมแสดงบรรทัดใหม่ตามด้วยตัวหารสามัญที่ยิ่งใหญ่ที่สุดของ n และ m ภาษา: สกาลา
10: โปรแกรมไม่สามารถมี]ได้ ภาษา: Pyth

คะแนนปัจจุบัน (เรียงตามโพสต์แรก)

Okx : 1.01
R. Kap : 2.09
Conor O'Brien : 1.03
Nick Clifford : 1.04
Eric Rose : 1.05
Greg Martin : 1.06
Erik the Outgolfer : 2.18
math_junkie : 1.09


3
ทำไมต้องยอมรับคำตอบสุดท้าย นั่นทำให้ดูเหมือนว่าคุณจะชนะสำหรับการเพิ่มข้อกำหนดที่ไม่มีใครสามารถทำได้
xnor

5
ตัวอย่างเช่น "แฮช md5 ของโปรแกรมจะต้องเป็น ... "
Conor O'Brien

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

2
@StephenS คนดูเหมือนจะไม่ได้เล่นเพื่อชนะดังนั้นดูเหมือนว่าความกังวลของฉันจะหายไป
xnor

2
สิ่งนี้ควรเรียกว่า 'Scope Creep'
NonlinearFruit

คำตอบ:


2

คำตอบ 10 - Pyth

ต้องการ: ใช้เวลาสองปัจจัยการผลิตn(> = 0) mและ ขาออก 0โดยไม่ต้องใช้ของ0, *หรือ]ที่ใดก็ได้ในรหัสที่มาและไม่มี builtins สำหรับการเข้าร่วมในการขึ้นบรรทัดใหม่ จากนั้นส่งเอาต์พุตขึ้นบรรทัดใหม่ตามด้วยหมายเลข1-indexed n Fibonacci number (อาจถูก0ทำดัชนี) ตามด้วย newline ตามด้วยnsquared ตามด้วย newline ตามด้วยnคูณด้วยmตามด้วย newline ตามด้วยโดย10^Bที่Bเป็นจำนวนไบต์ ในซอร์สโค้ดตามด้วย newline และnth 1-indexed (อาจจะเป็น0-exexed) จำนวนไพรม์และสุดท้ายตามด้วย newline และ Great Common Common หารของ n และ m

JU2KE=H2VQ=+Js>2J=+YK=hHW!P_H=hH;jb[ZeJ^Q2sY^T51HiK

ล่ามออนไลน์


ใช่นี่คือสนามกอล์ฟด้วย :-)
Erik the Outgolfer

นอกจากนี้ก่อนที่จะแสดงความคิดเห็นไม่ฉันไม่สามารถใช้jแทนjbตั้งแต่นั้นฉันจะใช้การเข้าร่วม -line-newlines สร้างขึ้น
Erik the Outgolfer

6

คำตอบ 1 - 05AB1E

สิ่งที่ต้องการ: พิมพ์0... โดยไม่มี a 0ในซอร์สโค้ด

¾

4

คำตอบ 3 - J

echo"+(1-1),(*:,~[:+/@:!&i.-)@".1!:1(3)

ความต้องการ: เอาต์พุต0โดยไม่มี0ในซอร์สโค้ดจากนั้นรับอินพุตจำนวนเต็มแบบไม่ลบnและส่งออกบรรทัดใหม่ตามด้วยหมายเลข Fibonacci ที่ th 0-exexed n'(อาจถูก1ทำดัชนี) ตามด้วยบรรทัดใหม่ตามด้วยอินพุตเดียวกันnกำลังสอง

ลองออนไลน์!


4

คำตอบ 4 - โอห์ม

สิ่งที่ต้องการ: ผลลัพธ์ที่0ไม่มี0ในซอร์สโค้ดจากนั้นรับอินพุตจำนวนเต็มแบบไม่ลบnและเอาต์พุตขึ้นบรรทัดใหม่ตามด้วยnหมายเลข Fibonacci 0 ที่ทำดัชนี(อาจเป็น 1 ดัชนี) ตามด้วยบรรทัดใหม่ตามด้วยอินพุตเดียวกัน n กำลังสอง ตามมาด้วยการขึ้นบรรทัดใหม่ตามด้วยคูณด้วยการป้อนข้อมูลใหม่nm

¼,≡ƒ,²,*,

4

คำตอบ 2 - dc

12298P?sa1 1-sb1sc[lblcdsb+scla1-dsa1 1-<y]dsyxlcp

ข้อกำหนด:เอาต์พุตที่0ไม่มี0ในซอร์สโค้ดจากนั้นรับอินพุตจำนวนเต็มแบบไม่ลบnและเอาต์พุตขึ้นบรรทัดใหม่ตามด้วย0-indexed nหมายเลข Fibonacci ที่ th (อาจถูก1ทำดัชนี)

ลองออนไลน์!


@ R.Kap ไม่มีปัญหา :)
Stephen

2
เมื่อฉันอ่านข้อกำหนดใหม่ด้วยเหตุผลบางอย่างที่ฉันเริ่มหัวเราะ +1
สหาย SparklePony

4

คำตอบ 5 - Python 3

ข้อกำหนด:เอาต์พุต 0 ที่ไม่มี 0 ในซอร์สโค้ดจากนั้นรับอินพุตจำนวนเต็มที่ไม่เป็นลบและส่งเอาต์พุตขึ้นบรรทัดใหม่ตามด้วยหมายเลข Fibonacci 0 ที่จัดทำดัชนี (อาจเป็น 1 ดัชนี) ตามด้วยบรรทัดใหม่ตามด้วยอินพุตเดียวกัน n กำลังสองตามด้วยบรรทัดใหม่ตามด้วย n คูณด้วยอินพุตใหม่ m อย่าใช้ตัวอักษร*รหัส ASCII 0x2A

    def f(n, m):
        print(1-1)
        a = 1-1
        b = 1
        for i in range(n):
            c = a+b
            a = b
            b = c
        print(b)
        print(n.__mul__(n))
        print(n.__mul__(m))

3

คำตอบ 6 - Mathematica

สิ่งที่ต้องการ: ผลลัพธ์ 0 โดยไม่มี 0 หรือ * ในซอร์สโค้ดจากนั้นรับอินพุตจำนวนเต็มที่ไม่เป็นลบและออกบรรทัดใหม่ตามด้วยหมายเลข Fibonacci 0 ที่จัดทำดัชนี (อาจเป็น 1 ดัชนี) ตามด้วยบรรทัดใหม่ตามด้วยบรรทัดใหม่ อินพุตเดียวกัน n กำลังสองตามด้วยการขึ้นบรรทัดใหม่ตามด้วย n คูณด้วยอินพุตใหม่ m ตามด้วยการขึ้นบรรทัดใหม่ตามด้วย 10 ^ B โดยที่ B คือจำนวนไบต์ในซอร์สโค้ด

((e=Echo)[1-1];e@Fibonacci@#;e[#^2];e[1##];2^# 5^#&@59)&

1
ใช่ดังนั้นการแก้ไขที่เร่งด่วนของฉันหลังจากที่ฉันเห็นว่า EricRoe เอาชนะฉันภายในหนึ่งนาที :)
เกร็กมาร์ติน

2

คำตอบ 7 - JavaScript (ES6)

(a,b)=>String.fromCharCode(48)+'\n'+(m=(a)=>a>1?m(a-1)+m(a-2):1)(a)+'\n'+Math.pow(a,2)+'\n'+Math.exp(Math.log(a)+Math.log(b))+'\n'+1E257+'\n'+(T=(u,i=2,l=1-1,m=2)=>l<=u?(p=(o,z=2,s=1-1)=>z<o?p(o,z+1,s+(o%z<1&&z!=o)):s)(i)<1?T(u,i+1,l+1,i):T(u,i+1,l,m):m)(a)

สิ่งที่ต้องการ:ฟังก์ชั่นที่รับสองอินพุตจำนวนเต็มไม่เป็นลบnและตัวเลขใด ๆmและส่งคืนสตริงที่มี0โดยไม่ต้องใช้0ที่ใดก็ได้ในซอร์สโค้ดแล้วขึ้นบรรทัดใหม่ตามด้วยหมายเลข0-indexed nth Fibonacci (อาจเป็น1ทำดัชนี) ตาม โดย newline ตามด้วยnsquared ตามด้วย newline ตามด้วยnคูณด้วยโดยmไม่ใช้*ที่ใดก็ได้ในซอร์สโค้ดตามด้วย newline ตามด้วย10^Bที่Bเป็นจำนวนไบต์ในรหัสแหล่งที่มาและปฏิบัติตามในที่สุดโดย ขึ้นบรรทัดใหม่และหมายเลขเฉพาะnth 0-indexed (อาจถูกทำ1ดัชนีไว้ด้วย)

ตัวอย่างการทดสอบ


คุณสามารถบันทึกจำนวนมากของไบต์โดยการเปลี่ยนไปString.fromCharCode(48) 1-1ไม่ว่ามันจะสำคัญ ;-) (นอกจากนี้ยังมีเลขศูนย์สองตัวต่อมาในซอร์สโค้ดซึ่งคุณสามารถแก้ไขได้ในลักษณะเดียวกัน)
ETHproductions

1

คำตอบที่ 8 - เยลลี่

ฟังก์ชั่นที่ใช้เวลาสองปัจจัยการผลิตเป็นจำนวนเต็มไม่เป็นลบ: ความต้องการnและจำนวนใด ๆmและผลตอบแทนสตริงที่มี0โดยไม่ต้องใช้ของ0ที่ใดก็ได้ในรหัสที่มาแล้วขึ้นบรรทัดใหม่ตามด้วย0-indexed nTH จำนวนฟีโบนักชี (อาจจะ1จัดทำดัชนี) ตาม โดยการขึ้นบรรทัดใหม่ตามด้วยการnยกกำลังสองตามด้วยการขึ้นบรรทัดใหม่ตามด้วยnคูณด้วยmโดยไม่ต้องใช้ของ*ที่ใดก็ได้ในรหัสที่มาตามด้วยการขึ้นบรรทัดใหม่ตาม10^Bที่Bเป็นจำนวนไบต์ในรหัสแหล่งที่มาและปฏิบัติตามในที่สุดโดย ขึ้นบรรทัดใหม่และหมายเลขเฉพาะ - ดัชนี) ไม่ต้องสร้างบิวอินสำหรับการเข้าร่วมในการขึ้นบรรทัดใหม่ แต่การเข้าร่วมบิวอินยังคงได้รับอนุญาตnวัน0-indexed (ก็อาจจะเป็น1

ÆḞṭØDW⁺¤;⁸²¤;×;ȷ25;⁸ÆN¤j⁷

ลองออนไลน์!


ใช่นี่คือกอล์ฟ
Erik the Outgolfer

1

คำตอบที่ 9 - สกาล่า

ความต้องการ : นำสองปัจจัยการผลิตn(> = 0) mและ เอาต์พุต0โดยไม่ใช้0หรือ*ที่ใดก็ได้ในซอร์สโค้ดและไม่มีบิวอินสำหรับการเข้าร่วมในการขึ้นบรรทัดใหม่ จากนั้นส่งเอาต์พุตขึ้นบรรทัดใหม่ตามด้วยหมายเลข1-indexed nth Fibonacci number (อาจถูก0ทำดัชนี) ตามด้วย newline ตามด้วยnsquared ตามด้วย newline ตามด้วยnคูณด้วยmตามด้วย newline ตามด้วยโดย10^Bที่Bเป็นจำนวนไบต์ ในซอร์สโค้ดตามด้วย newline และnth1 -indexed (อาจจะเป็น0-exexed) จำนวนเฉพาะและสุดท้ายตามด้วย newline และ Great Common Common หารของ n และ m

(n:Int,m:Int)=>{
 val z=1-1;val o=println _;var i=1;var j=z
 o(z)
 o((1 to n).foldLeft(z,1)((a,b)=>(a._2,a._1+a._2))._1)
 o(math.pow(n,2))
 o(List.fill(n)(m).sum)
 o(math.pow(9+1,299))
 while(j!=n){i+=1;if((2 to i-1)forall(i%_!=z))j+=1};o(i)
 o((1 to math.min(n,m)).filter(c=>n%c==z&&m%c==z).last)
}

ลองที่นี่

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