elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Es dificil o imposible?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Es dificil o imposible?  (Leído 7,338 veces)
yoyo2002

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Es dificil o imposible?
« en: 20 Marzo 2012, 14:10 pm »

Hola, quisiera pediros ayuda.
Necesito generar todas las combinaciones posibles de cuatro cifras a escoger entre los numeros 1 y 20 inclusives, pero de forma que no se repitan ninguno aunque cambien de orden. Es decir, si tengo
1,2,3,4
aunque cambie el orden, ya el 1 no puede volver a coincidir ni con el 2 ni con el 3 ni con el cuatro en ninguna otra combinación, al igual que el 2 no puede volver a coincidir con el 1 ni con el 3 ni con el 4, y así para todas las combinaciones. Es decir,
2,1,3,4 ya no me valdría, porque coinciden aunque cambie el orden
1,5,6,2, ya no me valdria poque 1 y 2 ya han estado juntos
¿Es esto posible? Por favor, necesito ayuda para un proyecto, y estaré muy agracecida si me la dais.
Gracias a todos, YOLY


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: Es dificil o imposible?
« Respuesta #1 en: 20 Marzo 2012, 14:15 pm »

Si que es posible, Pero especifica en que lenguaje necesitas hacerlo porfavor

Batch?


En línea

yoyo2002

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Es dificil o imposible?
« Respuesta #2 en: 20 Marzo 2012, 14:20 pm »

El lenguaje en mi caso no importa, yo no estudio programación, es para un proyecto particular para hacer un ranking en una escuela y hacer competir a los 20 alumnos entre todos ellos en partidos de 4.
Acudo a ustedes porque me han aconsejado este foro para lograr una solución como la que necesito. Si se genera en C, o Visual Basic, o cualquier otro... ya buscaré donde ejecutarlo. Muchas gracias.
En línea

Runex

Desconectado Desconectado

Mensajes: 192


http://tutogramacion.blogspot.com


Ver Perfil WWW
Re: Es dificil o imposible?
« Respuesta #3 en: 20 Marzo 2012, 14:36 pm »

En python sería algo así:

import random
y = 0

while y<4:
   x = random.randint(0,20)
   print x,
   y +=1

Con esto te servirá, en ocasiones se repetirá el número pero puedes ir ejecutándolo hasta que salgan los 4 diferentes.

No he tenido tiempo a más, porque me tengo que ir al instituto xd, si no te sirve, esta tarde te escribo el otro o si tienes prisa que te ayude mi compañero EleKtro H@cker :)

Un saludo :)
« Última modificación: 20 Marzo 2012, 14:39 pm por Runex » En línea

"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: Es dificil o imposible?
« Respuesta #4 en: 20 Marzo 2012, 15:03 pm »

Aqui tienes yo te lo he hecho en batch por si lo prefieres

Te sirve para otra ocasion, Solo tienes que configurar el número de alumnos y el de los grupos, EDITO: Aunque en el de code que te dió runex también se puedes facilmente claro.

PD: No repite números

Salu2.

EDITO: Perdón tube un fallo, Me faltó averiguar los alumnos por grupo :P, Ahora si te sirve para otra ocasión:
Código:
@Echo OFF
Setlocal enabledelayedexpansion

:: Configuración ::
Set Alumnos=20
Set Grupos=4
:: :: :: :: :: :: :: :: ::

FOR /L %%G IN (1,1,!Alumnos!) DO (Echo !Random!!Random!!Random!!Random!!Random! %%G >> Ranking.tmp)

Set Num=0
Set GrupoNUM=1
Set /A Alumnosporgrupo=%Alumnos%/%Grupos%

For /F "Tokens=2 Delims= " %%a in ('Type "Ranking.tmp" ^| Sort') Do (
Set /A num+=1
Echo Grupo !GrupoNUM!: %%a
Echo Grupo !GrupoNUM!: %%a >> Ranking.txt
IF !NUM! EQU !Alumnosporgrupo! (Echo+& Set /A GrupoNUM+=1& Set NUM=0)
)

Del /Q Ranking.tmp
pause
Exit

« Última modificación: 20 Marzo 2012, 15:32 pm por EleKtro H@cker » En línea

explorer

Desconectado Desconectado

Mensajes: 101


Analista/Programador Perl


Ver Perfil
Re: Es dificil o imposible?
« Respuesta #5 en: 20 Marzo 2012, 16:47 pm »

Esta es mi versión:

Código
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. print "Número de alumnos: ";
  6. my $alumnos = <>;
  7.  
  8. print "Tamaño de los grupos: ";
  9. my $grupos  = <>;
  10.  
  11. my @alumnos = 1 .. $alumnos;
  12. my $n_grupo = 1;
  13.  
  14. while (@alumnos >= $grupos) {
  15.  
  16.    # Creamos un @nuevo_grupo compuesto de tantos alumnos como de grande
  17.    # sean los $grupos, elegidos al azar de los @alumnos restantes
  18.    my @nuevo_grupo = map { splice @alumnos, rand(@alumnos), 1 } 1 .. $grupos;
  19.  
  20.    print "Grupo $n_grupo: [@nuevo_grupo]\n";
  21.  
  22.    $n_grupo++;
  23. }
  24.  
  25. # Resto que ha quedado sin asignar
  26. if (@alumnos) {
  27.    print "Grupo $n_grupo: [@alumnos]\n";
  28. }
  29.  
  30. __END__
  31. Número de alumnos: 23
  32. Tamaño de los grupos: 4
  33. Grupo 1: [23 1 3 7]
  34. Grupo 2: [14 20 13 22]
  35. Grupo 3: [15 8 10 6]
  36. Grupo 4: [4 12 18 11]
  37. Grupo 5: [21 17 5 2]
  38. Grupo 6: [9 16 19]
« Última modificación: 20 Marzo 2012, 17:44 pm por explorer » En línea

yoyo2002

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Es dificil o imposible?
« Respuesta #6 en: 20 Marzo 2012, 17:07 pm »

Gracias, pero lo he ejecutado en la página de Codepad, ya que no me dedico a la programación, y la versión que coge es la v5.8.0, y no pasa dela linea 2. Una lástima, creo que me hubiese servido a la perfección.
Sabes si hay algun sitio online donde pueda ejecutar tu versión? Muchas gracias.



Para Runex:

Muchas gracias, tu código en python funciona, solo que da una sola combinación al azar, y yo necesitaria saber todas las combinaciones posibles. ¿Podria ser? Muchísimas gracias.
« Última modificación: 20 Marzo 2012, 17:11 pm por Aprendiz-Oscuro » En línea

yoyo2002

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Es dificil o imposible?
« Respuesta #7 en: 20 Marzo 2012, 17:32 pm »

Para EleKtro H@cker.

Muchas gracias. me he buscado un compilador de batch, y me funciona como a tí, pero sería posible que diese todas las combinacione posibles sin repetir y sin importar el orden? Sé que estoy pidiendo mucho, pero de veras a todos os agradezco muchísimo el esfuerzo que estais haciendo.

Gracias
En línea

explorer

Desconectado Desconectado

Mensajes: 101


Analista/Programador Perl


Ver Perfil
Re: Es dificil o imposible?
« Respuesta #8 en: 20 Marzo 2012, 17:45 pm »

Ya está cambiado para los Perl antiguos.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: Es dificil o imposible?
« Respuesta #9 en: 20 Marzo 2012, 18:20 pm »

Para EleKtro H@cker.

sería posible que diese todas las combinacione posibles sin repetir y sin importar el orden?

Si no entiendo mal lo que quieres son 20 combinaciones (una por alumno) aleatorias pero distintas, de 4 grupos, Y que no se repita el orden de ningún número de ningún grupo al comparar las plantillas?

Por ejemplo:

plantilla 1 > Grupo 1: 6,10,2,18
plantilla 2 > Grupo 1: DISTINTOS NÚMEROS
plantilla 3 > Grupo 1: DISTINTOS NÚMEROS DE PLANTILLA 1 Y PLANTILLA 2
Etc...?

Lo pones dificil, Veré lo que puedo hacer si no se me adelanta alguien.

Salu2
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
la electronica no es dificil!!!
Electrónica
[ LadeDarK ] 3 4,982 Último mensaje 1 Noviembre 2004, 15:21 pm
por Meta
Es dificil pasar de vb6 a vb.net ?
Programación Visual Basic
hacksoft 0 1,668 Último mensaje 13 Octubre 2005, 18:41 pm
por hacksoft
¿Es php muy difícil? « 1 2 3 »
PHP
WildFroVII 22 15,599 Último mensaje 27 Abril 2012, 22:15 pm
por Puntoinfinito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines