07. juli 2007 - 15:20
Der er
12 kommentarer og 1 løsning
Alle muligheder
Hej Jeg har en liste af 16 tal, og så skal jeg bruge alle muligheder hvor hvert tal kun må optræde en gang, og der skal være 4 tal i hvert resultat. Altså: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 Skal give: 1, 2, 3, 4 1, 2, 3, 5 1, 2, 3, 6 osv. Hvordan kan dette løses? Mvh. hmortensen
Annonceindlæg fra Academic Work Denmark A/S
Altså: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 Skal give: 1, 2, 3, 4 1, 2, 3, 5 1, 2, 3, 6 ? tror du har skrevet forkert?
Nej, det er alle muligheder jeg er ude efter. Dem jeg har vist er bare de 3 første.
altså det skal være tilfældigt?
Er rækkefølgen af tallene signifikant eller ej ?
Dvs. du skal have alle mulige kombinationer med 4 tal, udfra dine "kilde" tal ? Er rækkefølgen vigtig ? Altså, ses 1,2,3,4 og 1,3,2,4 som en eller 2 forskellige kombinationer ?
Det er to forskellige kombinationer. Samme tal må bare kun være én gang i hver kombination.
Forslag: using System; namespace E { public class MainClass { public delegate void Processor(int[] v); public static void Print(int[] v) { for(int i = 0; i < v.Length; i++) Console.Write(" " + v[i]); Console.WriteLine(); } public static void Combinations(int[] a, int ix, int[] v, int used, Processor p) { if(used < v.Length) { for(int i = ix + 1; i < a.Length; i++) { v[used] = a[i]; Combinations(a, i, v, used + 1, p); } } else { p(v); } } public static void Combinations(int[] a, int siz, Processor p) { Combinations(a, 0, new int[siz], 0, p); } public static void Main(string[] args) { int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; Combinations(a, 4, Print); Console.ReadLine(); } } }
07. juli 2007 - 16:58
#10
Det var lige som det skulle være arne. Laver du et svar. Jeg kogte rundt i en løkke i en løkke osv, hvilket var dømt til at gå galt :)
07. juli 2007 - 16:59
#11
Jeg mener at den enten skal vær erekrusiv eller så skal du have et antal nestede for løkker svarende til siz=v.Length.
07. juli 2007 - 17:00
#12
og et svar
07. juli 2007 - 17:00
#13
en gang mere
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.