Şimdi Ara

Array içinde farklı randomlar atmak//Soru güncel//

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
842
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • örneğin şu şekilde bir seri oluşturdum
    char[] harfler=new char[5];

    sonra random olarak 5 harfi bu diziye yerleştirmem lazım

    for (int i = 0; i < harfler.Length; i++)
    harfler=(char)rnd.Next(65,91);

    Ancak harfler farklı olmalı,Bunu nasıl yapabilirim?

    örneğin [A C Z F C] olamaz



    < Bu mesaj bu kişi tarafından değiştirildi jahrekimla -- 24 Kasım 2016; 23:16:47 >



  • Yapay Zekanın Yanıtı

    Array İçerisinde Farklı Randomlar Atama

    Bir diziye rastgele sayılar atamak, çeşitli programlama uygulamalarında kullanılan yaygın bir görevdir. JavaScript'te bir diziye rastgele sayılar atamak için Math.random() fonksiyonu kullanılabilir.

    Math.random() Fonksiyonu

    Math.random() fonksiyonu, 0 ile 1 arasında rastgele bir ondalık sayı döndürür. Bu sayı, daha kullanışlı aralıklar oluşturmak için ölçeklenebilir veya dönüştürülebilir.

    Diziye Rastgele Sayılar Atama

    Bir diziye rastgele sayılar atamak için aşağıdaki adımlar izlenebilir:

    1. Oluşturmak istediğiniz rastgele sayıların sayısını belirleyin.
    2. Bir dizi oluşturun.
    3. Bir döngü kullanarak dizinin her bir öğesine Math.random() fonksiyonunu uygulayın.
    4. İsteğe bağlı olarak, rastgele sayıları belirli bir aralıkta ölçekleyin veya dönüştürün.

    Örnek Kod

    Aşağıdaki JavaScript kodu, 10 öğeli bir diziye 1 ile 10 arasında rastgele sayılar atar:

    ```javascript const array = [];

    for (let i = 0; i < 10; i++) { array.push(Math.random() * 10 + 1); }

    console.log(array); // [2.752562843461453, 7.394644471066735, ...] ```

    Sonuç

    Math.random() fonksiyonunu kullanarak bir JavaScript dizisine rastgele sayılar atamak kolay bir işlemdir. Bu teknik, simülasyonlar oluşturmak, oyun geliştirmek ve çeşitli diğer uygulamalar için kullanılabilir.

    Yapay Zekanın Yanıtını Genişlet
  • random oluşturup bir değişkene ata, sonra harfler'de var mı diye bak, yoksa ekle, varsa i'yi bir azalt ki aynı sayıdan for döngüsüne tekrar girsin

    döngü(i=0,i < harfler'in uzunluğu,i++)
    {
    rnd = yeni random
    harfler dizisi rnd'yi içeriyor mu?
    evet: i'yi 1 azalt
    hayır: rnd'yi harfler'e ekle
    }
  • İçinde karakterler olan bir liste oluştur sonra eklediğin karakterleri listeden çıkar.
  • İkilemeleri belirleyen bir fonksiyon oluşturabilirsin. Veya LINQ kullanabilirsin ? Distinct() fonksiyonu ile her karakter yalnızca 1 kez bulunur, ikilemeleri yok edersin.

     

    int[] dizi = { 1, 2, 3, 3, 4};
    int[] fix = dizi.Distinct().ToArray();
    //OUTPUT: 1,2,3,4 olacaktır

  • @Microsoft Specialist harfler dizisi rnd'yi içeriyor mu? Bu şekille hallettim ancak kolay olmadı,Teşekkürler.
    @bersgurs Yardımınız için teşekkürler ancak liste oluşturmayı görmedik ve görmediğimiz şeyleri kullanmadan yapmamızı istiyorlar.
    @Dentrax Aynı şekilde böyle bir yapıda görmedik,yardımınız için teşekkürler.

    Şimdiki sorunum biraz daha enteresan;
    Örnekte olduğu gibi gelen harfi diziden çıkartmam lazım.Bunu hallettim ancak bende |P U Z harfleri varken P harfini çıkartınca | U Z oluyor,oysaki |U Z olmalı yani çıkartılan harfin yeri boşluk oluyor oysaki default olup hiç yer kaplamaması lazım.
    şimdiye kadar denediklerim
    1-char c = '\0';
    2-char d = "\0".ToCharArray()[0];
    3-char e = char.MinValue;
    4-char f = Convert.ToChar(0);
    5-diziyi nullable char olarak tanımladım
    char?[] test = new char?[3] {a,b,c};
    test[2] = null;
    Ancak hiçbiri olmadı

    Array içinde farklı randomlar atmak//Soru güncel//




  • jahrekimla kullanıcısına yanıt
    Char array den eleman silerken geçiçi bir dizi oluştur öncekinin boyut olarak 1 küçüğü olması gerek sonra elemanları teker teker kopyalarsın silmek istediğini kontrol ederek.

    Liste yapısını array kullanarak oluşturabilirsin( Sınıf oluşturmayı öğrenmiş olmanız gerekir bunun için) yoksa her harfi tek tek kontrol edeceksin var mı diye.



    < Bu mesaj bu kişi tarafından değiştirildi bersgurs -- 24 Kasım 2016; 19:21:43 >
  • @bersgurs hocam mesela 27 karakterlik 2dizi var.Geçici dizi 26karakter olsun dediniz.
    Ben 27karakterden birini silince diğer diziyi nasıl kullanıcamki işime yarasın?Sonuçta 27lik diznin bir karakterini silmek sıkıntı.Aslında silinmiş olmuyor " " şeklinde boşluk oluyor yani yine 27 karakter var.26lık diziye sıymaaz.Bir yerleri yanlış mı anladım acaba?



    Buna ek olarak nedense şu kod hata verir oldu


    for (int i = 0; i < harfler.Length; i++) {          // Rastgele 27harfi(26harf+gülücük) farklı şekilde bul. 
    int randomletter=rnd.Next(65,92);
    for (int j = 0; j <harfler.Length ; j++)
    {
    if(harfler[j]==(char)randomletter)
    i--;

    else
    harfler[i]=(char)randomletter;
    }
    }


    Bir torbadan 27 harf çekilecek ancak çekilen harf geri konmuyacak.Proplem aşağı yukarı bu.
    Neden çalışmadığını anlamadım Dizin,dizi sınırlarının dışındaydı diye hata veriyor

    Edit sorunu hallettim;
    for (int i = 0; i < harfler.Length; i++)
    {
    int randomletter = rnd.Next(65, 92);
    for (int j = 0; j <=i; j++)
    {
    if (harfler[j] == (char)randomletter)
    {
    i--;
    flag = false;
    break;
    }
    }
    if(flag)
    harfler[i] = (char)randomletter;


    }



    < Bu mesaj bu kişi tarafından değiştirildi jahrekimla -- 24 Kasım 2016; 23:34:50 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.