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
e
geçerli eleman olsun. - Let
random
rastgele bir şamandıra üretmek[0,1)
. Eğer birrandom() < 0.5
sonraki öğ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
f
açık olarak gerçekleştirirsinize
.
Amaç
Herhangi bir dizi / liste / dize A
ve bir sayı K
verildiğinde, K
erişilen her üyeye ekleyerek dizi boyunca ilerleyin . Bu diziyi çıktılar / döndürür. A
yalnızca negatif olmayan tamsayılar içerir ve K
yalnı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]
x
olduğu gibi 0 ≤ x < 1
.
[0,1)
typo? Gitmek için 2 daha ...