FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Random implementado en una matriz estatica
Saludos desde Costa Rica. Actualmente me encuentro realizando una matriz que almacene numeros aleatorios utilizando el random, todo perfecto hasta aca lo unico es que me gustaria es crearla pero almacenando parejas de numero.
Ejm:
|
#2
|
||||
|
||||
Hola jusar.
Si no entendí mal lo que buscas, creo que podrías hacer: Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { TSmallPoint Matriz[2][2]; //Si los valores a almacenar son grandes usa TPoint randomize(); /* Cargar */ for(int f=0; f < 2; f++) for(int c=0; c < 2; c++) { Matriz[f][c].x = random(2); Matriz[f][c].y = random(2); } /* Mostrar */ for(int f=0; f < 2; f++) for(int c=0; c <2; c++) ListBox1->Items->Add(Format("%d %d", ARRAYOFCONST((Matriz[f][c].x, Matriz[f][c].y)))); }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Compa de esa manera no si no mas bien realizando una matriz donde me quede algo asi:
Matriz= 0 1 2 2 0 1 Pero con la unica desventaja que ocupo usando random pero no logro hacer que me queden parejas de numeros no se si me explico... |
#4
|
||||
|
||||
Hola jusar.
Código:
Matriz= 0 1 2 2 0 1 Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 07-03-2012 a las 12:47:22. |
#5
|
||||
|
||||
Creo que ese es el problema
Trata de explicar lo más detalladamente posible todo el proceso de lo que quieres hacer, puede escribir cuanto te apetezca, no hay limitación alguna, ni cobramos por palabras |
#6
|
||||
|
||||
Divide el proceso en dos etapas:
- Primero llenar la matriz con las parejas de números, es decir, aquí garantizas que cada número se almacena por duplicado. - Después mezclar los elementos, para esto puedes utilizar random para seleccionar dos posiciones de la matriz y las intercambias. Repites esta acción n veces dependiendo del número de elementos de la matriz. A veces con 50 o 100 ciclos es suficiente. Al final tendrás parejas de números distribuidas aleatoriamente en la matriz, algo similar al juego de memorama Última edición por Héctor Randolph fecha: 07-03-2012 a las 17:20:34. |
#7
|
|||
|
|||
Exato tal como lo dice Hector yo que ocupo es realizar una matriz con numeros aleatorios para luego puedo utilizar image y cargar imagenes con los numeros almacenados en la matriz por ejemplo:
Matriz: 2 3 1 3 2 1 entonces con le random el cual me sirve para generar numeros aleatorios ocupo que me los genere lo cual ya se pero lo que ocupo es que el genere los numeros pero que me queden los numeros 2 veces repetidos. Todo poder realizar un juego de memoria y poder las cargar imagenes aleatorias y buscar su respectiva pareja. Pero en esta ocacion lo que cuopo es una condicion que haga que la matriz quede con numeros repetidos... espero haberme explicado... |
#8
|
||||
|
||||
Ya tienes la respuesta, llena la matriz con los números por parejas. Digamos que llenas la matriz dentro de una sentencia FOR que tendrá n / 2 ciclos, donde n es el número de elementos de la matriz que siempre deberá ser par.
Tomando tu ejemplo la matriz quedaría de esta forma: 1 1 2 2 3 3 Ahora los mezclas en otro ciclo con x repeticiones. Aquí la idea es tomar dos elementos de la matriz de forma aleatoria digamos [1,1] y [2,2], los intercambias quedando así. 3 1 2 2 1 3 Si esto lo repites muchas veces todos los elementos quedarán en posiciones aleatorias (revueltos). Saludos |
#9
|
|||
|
|||
Hasta el momento lo que tengo es esto codigo pero no logro eso siempre me puede generar o tres 1 o tres 0 o cuatros 1 o 0...
|
#10
|
||||
|
||||
Hola Jusar.
Primero que nada felicito a Hector por su poder de interpretación Entonces, más o menos sería: Código:
const MAXFIL = 2; const MAXCOL = MAXFIL+1; int Matriz[MAXFIL][MAXCOL]; void Cargar(int (*m)[MAXCOL]) { for(int f=0; f < MAXFIL; f++) for(int c=0; c < MAXCOL; c++) { m[c][f] = c+1; m[c][f+1] = c+2; } } void Mezclar(int (*m)[MAXCOL]) { TSmallPoint a,b; int tmp; for (int i=0; i < 100; i++) { a.x = random(MAXCOL); b.x = random(MAXCOL); a.y = random(MAXFIL); b.y = random(MAXFIL); tmp = Matriz[a.x][a.y]; m[a.x][a.y] = m[b.x][b.y]; m[b.x][b.y] = tmp; } } void Mostrar(TMemo *M) { AnsiString s; for(int f=0; f < MAXFIL; f++) { s = ""; for(int c=0; c < MAXCOL; c++) s = s + IntToStr(Matriz[c][f])+ ' '; M->Lines->Add(s); } } void __fastcall TForm1::FormCreate(TObject *Sender) { Cargar(Matriz); Memo1->Clear(); Memo1->ScrollBars = ssVertical; Memo1->Lines->Add("Estado inicial"); Memo1->Lines->Add("-----------------"); Mostrar(Memo1); } void __fastcall TForm1::btnShowClick(TObject *Sender) { Mezclar(Matriz); Memo1->Lines->Add("-----------------"); Mostrar(Memo1); }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
clase estatica D7 | FelixInasa | OOP | 13 | 17-02-2011 10:48:11 |
fuzzy implementado en delphi | ljrg | Varios | 4 | 14-10-2010 15:10:57 |
variable estatica no muere con el form !!!!!!!!!!! | david_uh | Varios | 5 | 28-07-2007 00:51:14 |
.NET es Java pero bien diseñado y mejor implementado | roman | Noticias | 14 | 22-02-2007 20:43:08 |
Algoritmo Huffman Implementado En Delphi | vespita | Internet | 8 | 01-06-2006 18:10:54 |
|