La pregunta seria como se puede consegir que me muestre letras aleatorias de esta manera en parejas de dos
B H G H
D E A E
D G C F
C F B A
Random Letras = new Random();
char[,] Matriz = new char[4, 4];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
Matriz[i, j] = (char)Letras.Next(65, 72);
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
Console.Write(Matriz[i, j] + "\t");
Console.WriteLine();
}
Console.ReadKey();
Gracias de antemano :)
CoAdm: C# no es C, es .NET, movido
¿Que en vez de 4x4 te muestre una matriz de 2x8?
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
Console.Write(Matriz[i, j] + "\t");
if(j == 1)
Console.WriteLine();
}
Console.WriteLine();
}
Para posts futuros, ten en cuenta que este sub-foro es de C y C++, no C#. C# sería el sub-foro de .NET: http://foro.elhacker.net/net-b62.0/ (http://foro.elhacker.net/net-b62.0/)
Cita de: ivancea96 en 28 Diciembre 2016, 16:11 PM
¿Que en vez de 4x4 te muestre una matriz de 2x8?
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
Console.Write(Matriz[i, j] + "\t");
if(j == 1)
Console.WriteLine();
}
Console.WriteLine();
}
Para posts futuros, ten en cuenta que este sub-foro es de C y C++, no C#. C# sería el sub-foro de .NET: http://foro.elhacker.net/net-b62.0/ (http://foro.elhacker.net/net-b62.0/)
Muchas gracias por tu respuesta ivancea96, pero no era eso exactamente lo que pretendia que se entendiera con parejas me referia a que solo haya dos letras de cada y estas esten en una matriz 4x4 como se muestra arriba.
Cita de: Adrian96 en 28 Diciembre 2016, 18:59 PMno era eso exactamente lo que pretendia que se entendiera con parejas
Muestra un ejemplo del resultado que esperas obtener.
Saludos!
Cita de: Eleкtro en 28 Diciembre 2016, 20:41 PM
Muestra un ejemplo del resultado que esperas obtener.
Saludos!
El resultado que pretendo obtener seria este:
Matriz 2x2:
A B
B A
Seria ese generar letras aleatoriamente y que estas fueran siempre 2 de la misma letra y su posicion fuera aleatoria en la matriz.
Saludos!
No entiendo muy bien lo que buscas a pesar de los comentarios anteriores. Pero me da la impresión que lo que quieres es obtener combinaciones sin repetición.
Si tienes A, B, C
Sería
AB
AC
BC
Si tienes
A, B, C, D, E
(y en grupos de 3 en 3)
Sería :
A B C
A B D
A B E
A C D
A C E
A D E
B C D
B C E
B D E
C D E
En cuyo caso esto obtendría las combinaciones sin repetición:
List<string> Matriz = new List<string>();
List<string> Elementos = new List<string>();
Elementos.AddRange(new List<string>() { "A", "B", "C", "D", "E" });
IEnumerable<string> pairsCol = Enumerable.Empty<string>();
pairsCol = from string value1 in Elementos
from string value2 in Elementos
select string.Join(Environment.NewLine, (from value3 in Elementos
where
(value1 != value2) &&
(value1 != value3) &&
(value2 != value3) &&
(Convert.ToChar(value2) > Convert.ToChar(value1)) &&
(Convert.ToChar(value3) > Convert.ToChar(value2))
select string.Format("{0} {1} {2} ", value1, value2, value3)));
List<string> ClearRep = new List<string>();
Matriz.Clear();
foreach (string pairs in pairsCol) {
foreach (string line in pairs.Split(new string[]{ Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries))
{
Matriz.Add(line);
}
}
Console.WriteLine("Número de combinaciones: {0}", Matriz.Count);
Console.WriteLine(string.Join(Environment.NewLine, Matriz));
Console.ReadLine();
Como información extra, para calcular el número de combinaciones sin repetición se hace de la siguiente forma:
Cm,n = m!/(n! * (m-n)!)
donde m! es el factorial de m
n! es el factorial de n
(m-n)! es el factorial de (m-n)
Por ejemplo:
Elementos = A, B, C, D, E (que son 5)
Grupos= de 3 en 3
C5,3 = 5!/(3! * (5-3)!)= 10
Espero te sirva
Chau
Gracias okik, me ha sido de gran ayuda :)