Arkadaşlar merhaba. Bir sorum olacaktı. Kullanıcı zar adetini giriyor ve siz de kaç tane zar varsa gelen sayıların permütasyon kombinasyonlarını ekrana yazdırıyorsunuz. Mesela kullanıcı zar adetine 4 girdi gelen zarların permütasyonları 1246 3145 4325 5234... gibi... Algoritmayı oluşturamadım, yardımcı olursanız çok sevinirim. Kolay gelsin.
Sınırsız zar atma (C dili)
Yukarıdaki sorunun pseudo kodu asagıdaki gibi olabilir.
1 .Oncelikle kullanıcıdan zar adedini isteyen bir input fonksiyonu olustur.
2.while(1) gibi bir sonsuz dongu olusturulur(Normalde sonsuz(olü) donguler CPU mekanizmasını yordugu icin tavsiye edilmez)
3.Sonsuz dongunun icerisine bir for dongusu ile zarları turet. -> rand()%6+1
4.Turetilen zarları yanyana ekrana bastır.
Verilen bu kaba koda gore programın gercek kodu aşagıdaki gibidir.
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
main() {
srand(time(NULL));
int adet=0;
printf("Lutfen zar adedini Giriniz:");
scanf("%d",&adet);
while(1) {
for(int i=0;i<4;i++) {
int zar=rand()%6+1;
printf("%d",zar);
}
printf(" ");
}
return 0;
}
Yukarıdaki programdaki for dongusu(loop) kac kez zar atılacagını belirlerken,while() dongusu bu işlemi surekli calistiracaktır.
Başarılar
Yanıtınız için teşekkürler. Birincisi benim o while döngüsünden zamanı geldiğinde çıkmam gerekiyor, başka fonksiyonlara gitmek için :) İkincisi randomla üretmeyeceğim, çünkü gelecek rakamlar ve oluşan permütasyon kombinasyon sayıları zar sayısı verilince kesinleşiyor. mesela 2 zar atılıyor
bütün permütasyon sonuçları : 11 12 13 14 15 16 21 22 23 24 25 26 31 32 33 34 35 36 41 42 43 44 45 46 51 52 53 54 55 56 61 62 63 64 65 66.
Tüm kombinasyon sonuçları ise : 11 12 13 14 15 16 22 23 24 25 26 33 34 35 36 44 45 46 55 56 66.
Bu durum zar sayısı 3, 4 ... gibi belli olan zar sayısı durumlarında yazdırılacak. Teşekkür ederim.
Anladım,sorunuzun cevabı http://www.bilgisayarkavramlari. ... syon-algoritmasi-2/ adli sitede Yrd.Doç.Dr Şadi Evren Şeker tarafından detaylı olarak anlatılmıştır.
Başarılar