Merhabalar. rneğin 6 elemanlı bir diziye 1 ile 6 arasında random değer atarken, her elemanın farklı olmasını nasıl sağlayabilirim? Elemanın içindeki değerlere random değer atamada bir sorun yok ama her elemanın birbirinden farklı olmasını nasıl sağlayabilirim? şimdiden teşekkürler. srand(time ; int A ; int i, j, yed; for(i=0;i<6;i++) A =rand %6+1; for(j=0;j<6;j++) for(i=0;i<6;i++) } //bubble sort for(i=0;i<6;i++) for(j=0;j<5;j++) if(A <A ) since 2005 // tbt

yok yok olmaz eğer 1ve 6 dahil sayı istersek %6+1 yapmalı çünkü mod 6 da en büyüksayı 0-5 arası veriyor dolayısıyla %6+1 yaptığımızda 1-6 aralığını verecektir ( eğer 1-6 kapalı aralığını istiyorsak ) Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

en son oluşturduğun random elemanın mevcut dizide var olup olmadığını kontro eden bir prosedür yazmalısın.. Eğer var ise bu elemanı diziye eleman olarak kaydetmezsin.. Yok ise diziye eleman olarak kadedersin... Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

bi dizi tanımla 6 elemanlı sonra hepsine index teki değerini at yani dizi =i; sonra dizideki elemanların yerini random olarak değiştir. şu şekilde for(i=0;i<6;i++) Saçma

Hocam sanırım yanlışın var işe yaramadı. Yukarda verdiğim koda enjekte edebilirsen sevinirim ben yanlış kullandım belki de. edit// jeton yeni düştü hocam eyvallah :) since 2005 // tbt

Haklısın tam anlamışım yntemi... Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

İtcelik hocam ugrasip uzunca yazmissin ama degdi cok mantikli bi algoritma ogrendm valla sayende cok tesekkurler since 2005 // tbt

: seretide'ın ynteminde ise zaten var olan elemanların ( bir türlü üretilmeyen "27" ve "63" de dizinin elemnaları olarak mevcut) yerlerini şansa bağlı olarak değiştirdiğimizden dngünün sonsuz ıraksaması gibi bir sorunda ortaya çıkmayacaktır.. ancak bu sefer de seçmesi gereken eleman indislerini seçerken aynı sorun ortaya çıkıyor.. ne demek istediğini pek anlayamadım ne diye 2 dizi kullanıyosunki dizideki her elemanı dizideki rastgele başka bi elemanla değiştiriyosun sadece mesela 1 2 3 4 5 dizisi 1. sayı için random 3 çıktı 3 2 1 4 5 oldu 2. sayı için 3 çıktı 3 1 2 4 5 oldu 3. sayı için 5 çıktı 3 1 5 4 2 oldu bu şekilde bunu dizideki her eleman içinde yapıyosun elinde rastgele bi dizi oluyo. Kaç sayı olursa olsun toplam n adımda bitiyo herşey Saçma

#include <cstdlib>#include <iostream>//#include <ctime>using namespace std; int main { int es, i; int s ; int r ; int eleman, ou, kes, d, rasgel, j; float dag; cout<<"eleman saysısını giriniz"<<endl; cin>>es; printf ; // sıralı dizi oluştur for (i=0;i<=es-1;i++) // sıralı dizi for (i=0;i<=es-1;i++) cout<<"xxxxxxxxxxxxxxx"<<endl; kes=es-1; //kes s dizisinde kalan eleman sayısının o anki maks indisi bu indis ilk başta es-1 e eşittir "es" eleman sayısı sabit kes "kalan eleman sayısı" değişir for (i=0;i<=es-1;i++) // dizi yerleştirme dngüsü { srand(time(0)); ou=kes+1;// rand anahtarına kes verirsek mod alacağı için 0 - (kes-1) aralığında sayı üretir o yüzden kes+1 yapıyoruz rasgel=rand %ou; r =s ; dag=100 rasgel/ou; cout<<"sira "<<i<<" secilen eleman "<<rasgel<<" uzay,"<<kes+1<<" dagilim"<<dag<<endl;//monitr for //elemanları sola kaydırma dngüsü kes=kes-1; } cout<<"xxxxxxx"<<endl; yazdir: for (i=0;i<=es-1;i++) saglama: // tekrarlanan eleman var mı diye bakalım for(i=0;i<=es-2;i++) { for (j=i+1;j<=es-1;j++) { if } } system ; return EXIT_SUCCESS;} Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

Gece oturup cok benzerini yazdim ama yine de tekrar cok sagol hocam since 2005 // tbt

seretide'ın yntemi ise akıllıca mantıklı ve ekonomik... ancak mod anahtarını%5+1 şeklinde yapmak daha mı doğru olmaz mı?// Edit: olmaz :)) Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

aslında dün 1130 gibi yazmıştım ama siteye erişimde problem vardı.. Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

: seretide'ın yntemi ise akıllıca mantıklı ve ekonomik... ancak mod anahtarını%5+1 şeklinde yapmak daha mı doğru olmaz mı? Evet hocam o şekilde düzenledim ben de. Dizi şeklinde verceği için 0 dan başlayacak n-1 e kadar gidecek. Değerlerin içine atcağımız değer de dizi =i+1 yapmak daha mantıklı çünkü seçceğim sayılar 1 den başlıyor. Tekrar teşekkürler seretide since 2005 // tbt

Bu çeşit prblemlerde seretide'ni yntemi daha akıllıca Şyle ki random sayı üretici ile rneğin 1-99 arası elemanlardan oluşan bir dizi oluşturmak istediğimizde bilgisayar kafadan bir sayı atacak ve bu sayı daha nce var üretilmiş mi diye kontrol edecek ilk başlarda çok problem olmayacak ama seçebileceği sayılar azaldıkça bu sefer daha çok eski sayı üretecektir... rneğin 97 tane sayıyı diziye yerleştirdi bir tek 27 ive 63 kaldı... bilgisayar bu sayıları üretene kadar - işimiz "şansa" - belki de sonsuza kadar beklemek zorunda kalacığız... seretide'ın ynteminde ise zaten var olan elemanların ( bir türlü üretilmeyen "27" ve "63" de dizinin elemnaları olarak mevcut) yerlerini şansa bağlı olarak değiştirdiğimizden dngünün sonsuz ıraksaması gibi bir sorunda ortaya çıkmayacaktır.. ancak bu sefer de seçmesi gereken eleman indislerini seçerken aynı sorun ortaya çıkıyor.. Bunu yerine şyle düşünelim... Bizim sıralı dizimiz sıarasıyla elemanlarından oluşsun...1,2,3..99 gibi Biz bu sıralı diziden -S - rasgele üreteteci ile bir eleman alalım ve sırasıyla R dizisine eleman olarak kaydedelim.. Ancak burada dikkat etmemiz gereken bir iki kritik nokta var.. Biz S dizisinden her eleman çekişimizde 1. eleman alış indisimize kayıtlı eleman S dizisi elemanlığından çıkar 2. ondan sonraki elemanlar tabaklar gibi birer indis küçük indise yerleşir 3. Sdeki Eleman sayısı küçüleceği için rand anahtarı her defasında bir küçülür algoritma basitce N elemanlı sıralı S dizisini oluştur xx olay uzayını Snin eleman sayısına eşitle randomize nahtarını U ya ayarla, randomize sayı RS üret R dizisine S dizisndeki RSinci elemanı eleman olarak kaydet S dizisinin RS+1 inci den sonuncu elemnına kadar yeniden düzenle ve boyutlandır tüm elemanlar yerleşinceye kadar tekrarla // Çünkü her eleman yerleştirmede aynen tombala çeker gibi, olay uzayımız azalacağı için mutlaka torbadaki elemanladan birini seçmek durumında oduğumuz için yanlış eleman seçme gibi bir derdimiz de olmayacak ve sonsuza ıraksamış bir dngümüz de olmayacaktır...// Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... .. Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."

: en son oluşturduğun random elemanın mevcut dizide var olup olmadığını kontro eden bir prosedür yazmalısın.. Eğer var ise bu elemanı diziye eleman olarak kaydetmezsin.. Yok ise diziye eleman olarak kadedersin... o algoritma ortalamada n^3 lük zamanda çalışıyor evet mantıklı ama kısa diziler için gayet tatbik edilebilir. #Coding Sacrifice Perl FSO#

: en son oluşturduğun random elemanın mevcut dizide var olup olmadığını kontro eden bir prosedür yazmalısın.. Eğer var ise bu elemanı diziye eleman olarak kaydetmezsin.. Yok ise diziye eleman olarak kadedersin... Evet aynen yle yapılır. Itcelik abinin bahsettiği prosedür de linearSearch olabilir. Sen hiç kaval çaldın mı?