บทสรุป
สร้างโปรแกรมที่สร้างอาร์เรย์ที่มีความยาวสุ่มด้วยตัวเลขสุ่มจากนั้นใช้ชุดกฎที่เปลี่ยนแปลงอาร์เรย์ หลังจากนำกฎไปใช้แล้วให้พิมพ์ผลรวมของอาร์เรย์ยกเว้นระบุไว้เป็นอย่างอื่น
การตั้งค่าอาร์เรย์
อาร์เรย์จะต้องเป็นระยะเวลาสุ่มระหว่าง5 และ 10รวมกับจำนวนเต็มสุ่มระหว่าง1 และ 20รวม ความยาวของอาเรย์แต่ละอันควรมีความน่าจะเป็นเท่ากันที่จะเกิดขึ้นและแต่ละจำนวนเต็มควรมีความน่าจะเป็นเท่ากันที่จะถูกเลือกต่อองค์ประกอบ
กฎ 7 ข้อ
กฎควรทำหน้าที่เสมือนว่าถูกนำไปใช้ตามลำดับ (เช่น: กฎ 1 ทำหน้าที่ก่อนกฎ 2) และจะใช้เพียงครั้งเดียวเท่านั้น สำหรับการพิสูจน์แอปพลิเคชันกฎอาร์เรย์จะต้องพิมพ์ไปยังคอนโซลหลังจากแต่ละแอปพลิเคชันกฎและหนึ่งครั้งก่อนที่จะใช้กฎใด ๆ
- ถ้าอาร์เรย์มี 7 ให้ลบ 1 จากทุกองค์ประกอบ
- หากมีการใช้กฎ 1 และตอนนี้อาร์เรย์มี 0 ให้เพิ่ม 1 ในแต่ละองค์ประกอบ
- หากอาร์เรย์มี 13 ให้แยก 13 และองค์ประกอบทั้งหมดที่ตามมาออกจากอาร์เรย์
- หากอาร์เรย์มี 2 ให้แยกจำนวนคี่ทั้งหมด
- หากอาร์เรย์มี 20 และองค์ประกอบที่สามเป็นเลขคู่ให้คืน 20 เป็นผลรวมแล้วจะสิ้นสุดลง ถ้ามี 20 และองค์ประกอบที่สามเป็นเลขคี่ให้ส่งคืนความยาวของอาร์เรย์เป็น 20 เท่าของผลรวมนั้นจะสิ้นสุดลง
- หากผลรวมมากกว่า 50 ให้ลบองค์ประกอบสุดท้ายซ้ำ ๆ จนกระทั่งมันน้อยกว่าหรือเท่ากับ 50
- หากอาร์เรย์มี 16 ให้พิมพ์ผลรวมทั้งทศนิยมและเลขฐานสิบหก
ตัวอย่าง
นี่คืออาร์เรย์เริ่มต้น
[20, 2, 5, 7, 14, 8]
สามารถใช้กฎ 1 ได้:
[19, 1, 4, 6, 13, 7]
กฎ 3 ถูกนำไปใช้ถัดไป:
[19, 1, 4, 6]
ไม่มีกฎอื่นใดที่จำเป็นดังนั้นโปรแกรมจะคืนค่า30เป็นผลรวม
หมายเหตุ
- ฉันไม่ได้เป็นนักกอล์ฟรหัสที่มีประสบการณ์ แต่ฉันสามารถพูดได้บันทึกส่วนตัวของฉันอยู่ในหลาม 3 369 ไบต์
- กฎไม่จำเป็นต้องถูกนำไปใช้จริงตามลำดับ แต่ต้องทำราวกับว่าพวกเขาทำ
[3 3 3 3 4 3]
และ[4 4 3 4 4]
แต่ละอันมีโอกาส 50% เป็นไปตามสิ่งที่เขียนภายใต้ "การตั้งค่าอาร์เรย์" ดังนั้นฉันสามารถส่งออก19
ทุกครั้งหรือไม่ (แน่นอนสิ่งที่ฉันคิดว่าจริง ๆ คือคำจำกัดความของคำว่า "สุ่ม" ต้องได้รับการอธิบาย)
If the array contains a 20, and the third element is even/odd
แล้วถ้าอาร์เรย์มีองค์ประกอบน้อยกว่า 3 ในขั้นตอนนี้ล่ะ