Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > Dizi üretme...
Yazar
thongkum


avatar
MARDIN
Kayıt: 24.11.2006
06.10.2013-17:52 #78997
Selam Arkadaşlar,

Elimde 3 er elemandan oluşan 6 adet dizi var.
d1[] = {a,b,c}
d2[] = {d,e,f}
d3[] = {g,h,i}
d4[] = {j,k,l}
d5[] = {m,n,o}
d6[] = {p,r,s}

bu dizileri kullanarak olası bütün 6 elemanlı dizileri nasıl elde ederim.Örnek:
{a,d,g,j,m,p},{a,d,g,j,m,r}...{c,f,i,l,o,s}
3*3*3*3*3*3 = 729 adet dizi üretmem lazım.

Kullanılacak yapılar önemli değil.Dizi,List vs kullanılabilir...

Şimdiden teşekkürler...roseroserose





....








Yazar
mperk


avatar

Kayıt: 18.11.2008
06.10.2013-21:22 #78998
char[] array1 = { 'a', 'b', 'c' };
            char[] array2 = { 'd', 'e', 'f' };
            char[] array3 = { 'g', 'h', 'i' };
            char[] array4 = { 'j', 'k', 'l' };
            char[] array5 = { 'm', 'n', 'o' };
            char[] array6 = { 'p', 'r', 's' };

            
            List<ArrayList> targetList = new List<ArrayList>();

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        for (int l = 0; l < 3; l++)
                        {
                            for (int m = 0; m < 3; m++)
                            {
                                for (int n = 0; n < 3; n++)
                                {
                                    ArrayList newList = new ArrayList();
                                    newList.Add(array1[i]);
                                    newList.Add(array2[j]);
                                    newList.Add(array3[k]);
                                    newList.Add(array4[l]);
                                    newList.Add(array5[m]);
                                    newList.Add(array6[n]);
                                    targetList.Add(newList);
                                }
                            }
                        }
                    }
                }
            }

            Console.WriteLine(targetList.Count);







Yazar
omer


avatar

Kayıt: 03.02.2012
06.10.2013-21:22 #78999
Aşağıdaki şekilde bir döngü ile elde edebilirsin.
for(int i=0;i<=2;i++)
	for(int j=0;j<=2;j++)
		for(int k=0;k<=2;k++)
			for(int l=0;l<=2;l++)
				for(int m=0;m<=2;m++)
					for(int n=0;n<=2;n++)
						printf("%d %d %d %d %d %d",d1[i],d2[j],d3[k],d4[l],d5[m],d6[n]); 








Yazar
thongkum


avatar
MARDIN
Kayıt: 24.11.2006
06.10.2013-21:35 #79000
mperk yazdi
 

...



applause Teşekkürler...roseroserose





....








Yazar
blackzero


avatar

Kayıt: 27.11.2006
06.10.2013-21:46 #79001
a,b... vs ayni dizi içerisindekileri üretemezsin yukarda ki algoritmalarla haberin olsun.Gerçi o zaman 729 da çıkmıyor çok daha yüksek bir sayı çıkar.





Yazar
thongkum


avatar
MARDIN
Kayıt: 24.11.2006
06.10.2013-22:02 #79002
blackzero yazdi
 
a,b... vs ayni dizi içerisindekileri üretemezsin yukarda ki algoritmalarla haberin olsun.Gerçi o zaman 729 da çıkmıyor çok daha yüksek bir sayı çıkar.


Zaten aynı dizidekileri kullanma gibi bir durum yok.Arkadaşın yazdığı bekleneni veriyor ...peace





....








Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb