Hepimiz sık sık "dizi üzerinden yürümek" deyimi "fonksiyonu aşağıdaki dizi üzerinden eşlemek" demek duyuyoruz. Ancak, ben (şimdi!) Yapılması gerekir, bu yüzden dizi üzerinden çalıştırmak istiyorum .
Nasıl koşarım?
Arkanda vahşi bir kurt sürüsü olduğunu hayal et
Bir dizi boyunca koşmak, bir öğe üzerinde yürümek gibidir, ancak öğeleri atlayabilirsiniz. Evet, bazen dağınık, ama (genellikle) işe yarıyor. “Hangi elemanlar atlanıyor?” Diye sorabilirsiniz. Bu rastgele yapılır. Dizide koşarak yürüyelim!
- Izin vermek
egeçerli eleman olsun. - Let
randomrastgele bir şamandıra üretmek[0,1). Eğer birrandom() < 0.5sonraki öğeye giderseniz ve sonra 1. adıma gidersiniz. (Başka bir yolla bir sayı üretebilirsiniz, ancak (ideal olarak) eşit atlama ve kalma şansı olduğu sürece. Örneğin, bir iki üyeli eylemi sonuca göre ayarlar ve gerçekleştirir.) - Aksi takdirde, işlevi
façık olarak gerçekleştirirsinize.
Amaç
Herhangi bir dizi / liste / dize Ave bir sayı Kverildiğinde, Kerişilen her üyeye ekleyerek dizi boyunca ilerleyin . Bu diziyi çıktılar / döndürür. Ayalnızca negatif olmayan tamsayılar içerir ve Kyalnızca negatif olmayan bir tamsayı olur. Bu bir kod golfü , bu yüzden bayttaki en kısa program kazanıyor.
Test senaryoları (örnekler)
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]
xolduğu gibi 0 ≤ x < 1.

[0,1)typo? Gitmek için 2 daha ...