เราทุกคนมักจะได้ยินสำนวน "เดินผ่านอาร์เรย์" เพื่อหมายถึง "แมปฟังก์ชั่นผ่านอาร์เรย์ต่อไปนี้" อย่างไรก็ตามฉันต้องการมัน (ตอนนี้!) ดังนั้นฉันต้องการให้คุณวิ่งผ่านอาร์เรย์
ฉันจะวิ่งได้อย่างไร
ลองนึกภาพว่ามีฝูงหมาป่าดุร้ายอยู่ข้างหลังคุณ
การวิ่งผ่านอาเรย์นั้นเหมือนกับการเดินผ่านหนึ่งยกเว้นคุณสามารถข้ามองค์ประกอบ ใช่บางครั้งมันก็ยุ่ง แต่ก็ใช้งานได้ (โดยทั่วไป) "องค์ประกอบใดที่ถูกข้ามไป" คุณอาจถาม ทีนี้นี่เป็นการสุ่ม เรามาเดินผ่านอาร์เรย์กันเถอะ!
- อนุญาต
e
เป็นองค์ประกอบปัจจุบัน - อนุญาตสร้างลอยสุ่ม
random
[0,1)
หากrandom() < 0.5
คุณไปที่องค์ประกอบถัดไปจากนั้นไปที่ขั้นตอนที่ 1 (คุณอาจสร้างตัวเลขด้วยวิธีอื่นตราบใดที่พวกเขายังมีโอกาสเท่ากันในการข้ามและยังคงอยู่เช่นคุณสามารถใช้เลือกองค์ประกอบจาก สมาชิกสองคนตั้งค่าและดำเนินการตามผลลัพธ์) - มิฉะนั้นคุณปฏิบัติหน้าที่ใน
f
e
วัตถุประสงค์
รับ array / list / string อย่างใดอย่างหนึ่งA
และจำนวนK
วิ่งผ่านอาร์เรย์เพิ่มK
ให้สมาชิกแต่ละคนเข้าถึง เอาท์พุท / กลับอาร์เรย์นี้ A
จะมีจำนวนเต็มไม่เป็นลบเท่านั้นและK
จะเป็นจำนวนเต็มไม่ลบเท่านั้น นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ
กรณีทดสอบ (ตัวอย่าง)
K, A => possible K'
[1, 2, 3, 4], 0 => [1, 2, 3, 4]
[1, 2, 3, 4], 1 => [1, 3, 3, 5]
[0, 0, 0, 0], 2 => [2, 0, 0, 2]
x
0 ≤ x < 1
[0,1)
typo? อีก 2 ไป ...