SORU
3 Mart 2013, Pazar


Neden bu kod rastgele dizeleri yazdırma "Merhaba Dünya" kullanarak mı?

Aşağıdaki yazdırma deyimi print "Merhaba Dünya". Biri bunu açıklayabilir mi?

System.out.println(randomString(-229985452)   " "   randomString(-147909649));

Ve randomString() bu gibi görünüyor:

public static String randomString(int i)
{
    Random ran = new Random(i);
    StringBuilder sb = new StringBuilder();
    while (true)
    {
        int k = ran.nextInt(27);
        if (k == 0)
            break;

        sb.append((char)('`'   k));
    }

    return sb.toString();
}

CEVAP
3 Mart 2013, Pazar


Diğer bir neden açıklamak cevaplar, ama nasıl:

new Random(-229985452).nextInt(27)

Yukarıda rasgele oluşturur ilk 6 numaraları:

8
5
12
12
15
0

ve new Random(-147909649).nextInt(27) oluşturduğu ilk 6 numaraları:

23
15
18
12
4
0

Karakterin tamsayı gösterimini ` bu numaraları Ekle 96).

8    96 = 104 --> h
5    96 = 101 --> e
12   96 = 108 --> l
12   96 = 108 --> l
15   96 = 111 --> o

23   96 = 119 --> w
15   96 = 111 --> o
18   96 = 114 --> r
12   96 = 108 --> l
4    96 = 100 --> d

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • infiniTuts

    infiniTuts

    18 Ocak 2012
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007