Tema destacado: Únete al Grupo Steam elhacker.NET
Autor
|
Tema: averiaguar numeros repetidos en un array (Leído 1,399 veces)
|
ped18
Desconectado
Mensajes: 3
|
wns ! tengo k hacer un programa donde me diga si tiene algun numero reptido el array y si tiene algun nuemero repetido hacer otro nuevo aleatoriamente. aber si me podeis exar una mano con el programilla k es para una practica de programacion y me he kdado piyado. gracias dde ante mano.
sl2
|
|
|
|
|
En línea
|
|
|
|
RuB'n.
Desconectado
Mensajes: 254
आर यू बी ई पता
|
usa la clase Random para el numero aleatorio, pero busca algo de codigo de lo contrario no te ayudaran, y ve buscando en google,
|
|
|
|
|
En línea
|
se los presento no es mio ^^.
|
|
|
|
Leyer
|
Ando de buenas  usalo asi _rvr(array,0, 1);public static void _rvr(int array[],int firstIndex,int secondIndex){ if(!(secondIndex==array.length)){ if(array[firstIndex]==array[secondIndex])array[secondIndex]=(int) Math.floor(Math.random()*10); secondIndex++; _rvr(array,firstIndex,secondIndex); }else { firstIndex++; if(firstIndex==array.length-1)return; _rvr(array,firstIndex,firstIndex+1); } }
|
|
|
|
« Última modificación: 30 Noviembre 2011, 02:42 por Leyer »
|
En línea
|
|
|
|
ped18
Desconectado
Mensajes: 3
|
wns!!! gracia x las respuesta pero lo tengo k hacer con bucles for para sacar si algun repetido y es lo k me raya k no me sale :S aber si sabeis como deberia poner los for y cuantos. gracias de antemano  Sl2 
|
|
|
|
|
En línea
|
|
|
|
Fakedo0r
Desconectado
Mensajes: 7
La simplicidad al extremo es elegancia...
|
Espero que te sirva. int i; String sCadena; String sF_Cadena = ""; String [] sArrVar;
sCadena = "1,2,3,4,5,3,2,5,7,8,9"; sArrVar = sCadena.split(",");
for (i=0; i<sArrVar.length; i++) { if (sF_Cadena.indexOf(sArrVar[i])==-1) { sF_Cadena = sF_Cadena + sArrVar[i]; } } System.out.println(sF_Cadena);
Saludos!
|
|
|
|
|
En línea
|
|
|
|
|
[Case]
|
Espero que te sirva. int i; String sCadena; String sF_Cadena = ""; String [] sArrVar;
sCadena = "1,2,3,4,5,3,2,5,7,8,9"; sArrVar = sCadena.split(",");
for (i=0; i<sArrVar.length; i++) { if (sF_Cadena.indexOf(sArrVar[i])==-1) { sF_Cadena = sF_Cadena + sArrVar[i]; } } System.out.println(sF_Cadena);
Saludos! Esto no es muy eficiente, deberias ordenarlos primero, y despues checar si algun numero sucesor o posterior al otro esta reptido. Eso se hace mucho mas rapido.
|
|
|
|
|
En línea
|
|
|
|
Fakedo0r
Desconectado
Mensajes: 7
La simplicidad al extremo es elegancia...
|
Esto no es muy eficiente, deberias ordenarlos primero, y despues checar si algun numero sucesor o posterior al otro esta reptido. Eso se hace mucho mas rapido.
Para que ordenar si simplemente compruebo si hay algun duplicado sea sucesor o posterior a otro numero? Logicamente se puede hacer mejor codigo, esto solo fue un ejemplo sencillo sobre la peticion del usuario.  Seria genial que pusieras un ejemplo asi veriamos lo eficiente.  Saludos.
|
|
|
|
|
En línea
|
|
|
|
|
[Case]
|
Para que ordenar si simplemente compruebo si hay algun duplicado sea sucesor o posterior a otro numero? Logicamente se puede hacer mejor codigo, esto solo fue un ejemplo sencillo sobre la peticion del usuario.  Seria genial que pusieras un ejemplo asi veriamos lo eficiente.  Saludos. Es eficiente por que la complejidad del algoritmo de ordenacion es O(nlogn) mas checar si alguno se repitio, que no toma O(n), por lo que la complejidad es O(nlogn + n) Mientras que verificando si alguno se repitió nos toma O(n^2).
|
|
|
|
|
En línea
|
|
|
|
|
|