Nasıl rasgele PHP kodu zaman% 33 yürütebilirsiniz?

6 Cevap php

Ben bunu yazmak için nasıl bu kadar emin değilim: Ben 0-2 rastgele bir sayı üretmek istiyorsanız, o zaman belirli bir kod zaman sadece 33% yürütür bir if deyimi yazabilirsiniz.

Bu benim yapmaya çalıştığım budur:

if (rand(0, 3)=="2") { echo "Success" };

6 Cevap

İki argümanlar minimum ve maksimum rastgele değerleri temsil eder. Eğer 1-in-3 şans istiyorsanız, sadece 3 olanakları izin vermelidir. Maksimum 3, minimum 0 ila gidiyor oldukça istediğini yapmayacağım 4 olası değerler (0,1,2,3), öylesine verir. Ayrıca, mt_rand() is a better function to use than rand().

Yani olurdu:

if (mt_rand(1, 3) == 2)
    echo "Success";

PHP'nin rand() sınırları dahil, bu yüzden isterdim if(rand(0,2) == 2).

which executes specific code only 33% of the time.

Sadece rastgele kullanarak sadece kodunu zaman 1/3 çalıştırmaya karşı yürütme bir 33% chance vereceğini işaret etmek istiyorum.

Sizin kod zaman% 25 yürütecek. {0 1 2 3 4} sayı kümesidir. Yapmak istediğiniz

if(rand(1,3)==2)...

Ile değiştirin

if (rand(0, 2)==2) { echo "Success"; }

Ben bu geç bir cevap olduğunu biliyorum, ama ben yapardım

if(!rand(0,2))
 {
   //do stuff
 }

Her fraksiyon için 1/x istenen yerine 0,2 ile 0,x-1