Herramientas de usuario

Herramientas del sitio


es:manual:items:generativos:siette.util.random

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
es:manual:items:generativos:siette.util.random [2021/05/22 09:55] – creado rootes:manual:items:generativos:siette.util.random [2021/05/24 16:50] (actual) root
Línea 4: Línea 4:
 Esta clase tiene los siguientes métdos públicos: Esta clase tiene los siguientes métdos públicos:
  
- **public Random() throws RandomException**+==== Constructor ====
  
 +<code java>
 +public Random() throws RandomException
 +</code>
 +
 +Crea un objeto, en general no es necesario crear el objeto, ya que Siette lo crea internamente y en el código de las preguntas se utilizan métodos //estaticos//. Este método sirve simplemente para devolver una referencia al objeto principal, y para que la programación sea similar a la clase ''java.util.Random''.
 +
 +==== Semilla ====
 +
 +<code java>
 +public  static setSeed(long seed)
 +public static long getSeed()
 +</code>
 +
 +Escribe o lee la semilla del objeto ''Random''. En general no es necesario utilizar este método, y esta desaconsejando variar la semilla, ya que esto haría que la pregunta no pudiera reproducirse exactamente como se planteo. Son métodos usados por el sistema.
 +
 +==== boolean ====
 +
 +<code java>
 +public  static boolean nextBoolean()
 +</code>
 +
 +Devuelve un valor logico aleatoriamente (''true'' o ''false'')
 +
 +==== double ====
 +
 +<code java>
 +public  static double nextDouble()
 +</code>
 +
 +Devuelve un número real de tipo ''double'' con una distribución uniforme entre 0 y 1.
 +
 +<code java>
 +public  static double nextDouble(double min, double max, double step, String format)
 +public  static double nextDouble(double min, double max, String format)
 +public  static double nextDouble(double min, double max, double step)
 +public  static double nextDouble(double min, double max)
 +</code>
 +
 +Devuelve un número real de tipo ''double'' con una distribución uniforme entre ''min'' y ''max'' (ambos inclusive). Si se añade un argumento ''step'' los valores que se generan serán siempre valores exactos que se obtienen añadiendo aleratoriamente a ''min'' un multiplo  de ''step'' Por ejemplo
 +
 +    int x = Random.nextDouble(0, 2, 0.25);
 + 
 +genera aleatoriamente los valores {0.0, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0}
 +
 +Si se añade un argumento ''format'' con la especificación definida en [[https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html|java.text.DecimalFormat]], se sigue devolviendo un número real de tipo ''double'' pero su valor se trunca para encajar con el formato. Por ejemplo
 +
 +    int x = Random.nextDouble(0, 2, 1/3, "#.##");
 +
 +genera aleatoriamente los valores {0.00, 0.33, 0.67, 1.00, 1.33, 1.67, 2.00}
 +
 +
 +<code java>
 +public  static double nextGausian()
 +</code>
 +
 +Devuelve un número real de tipo ''double'' con una distribución normal de media 0 y desviación típica 1. Los valores centrales tienen mayor probabilidad de ser generados. Se fuerza que todos los valores estén comprendidos entre -1 y 1.
 +
 +<code java>
 +public  static double nextGausian(double min, double max, String format)
 +public  static double nextGausian(double min, double max)
 +</code>
 +
 +Son métodos similares a los que utiliza el método ''nextDouble'' pero utilizando una distribución nnormal de media $(max-min)/2$ y desviación típica proporcional a la anchura del intervalo. En este caso no tiene sentido utilizar el parámetro ''step''.
 + 
 +
 +==== float ====
 +
 +<code java>
 +public  static float nextFloat(float min, float max, float step, String format)
 +public  static float nextFloat(float min, float max, String format)
 +public  static float nextFloat(float min, float max, float step)
 +public  static float nextFloat(float min, float max)
 +public  static float nextFloat()
 +</code>
 +
 +Son métodos similares a ''nextDouble'', pero devolviendo un número de tipo ''float''.
 +
 +==== int ====
 +
 +<code java>
 +public  static double nextInt(int min, int max, int step, String format)
 +public  static double nextInt(int min, int max, String format)
 +public  static double nextInt(int min, int max, int step)
 +public  static double nextInt(int min, int max)
 +public  static double nextInt(int max)
 +public  static double nextInt()
 +public  static double nextPositiveInt()
 +</code>
 +
 +Son métodos simialres ''nextDouble'', pero con números de tipo ''int''. Si no se especifica el valor ''min'' se toma ''min=0''. Si no se especifica ningún argumento se seleciona un número entero cualquiera entre entre $-2^{31}$ y $2^{31}$ con una distribución uniforme. La última función selecciona solamente números enteros positivos entre 0 y $2^{31}$.
 +
 +
 +==== long ====
 +
 +<code java>
 +public  static double nextLong(long min, long max, long step, String format)
 +public  static double nextLong(long min, long max, String format)
 +public  static double nextLong(long min, long max, long step)
 +public  static double nextLong(long min, long max)
 +public  static double nextLong(long max)
 +public  static double nextLong()
 +</code>
 +
 +Son métodos similares a ''nextInt'' pero que devuelven números de tipo ''long'' entre $-2^{63}$ y $2^{63}$ con una distribución uniforme. ((Segun la documentación de java, la funcion no devuelve todos los posibles valores de tipo ''long'', ya que la semilla está limitada a 48 bits.))
 +
 +==== format ====
 +
 +<code java>
 +public static String format(double value, String format)
 +public static String format(float value, String format)
 +public static String format(long value, String format)
 +public static String format(int value, String format)
 +public static String format10(double value, String format)
 +</code>
 +
 +La función ''format'' llama a la clase [[https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html|java.text.DecimalFormat]] para construir una representación del número ''value'' que se le pasa como argumento.
 +
 +La función ''format10'' crea una represenación en HTML equivalente a la notación cientifica. El atributo ''format'' se aplica solo a la mantisa. Por ejemplo el número la instruccion:
 +
 +   String st = Random.format10(299792, "#");
 +
 +da como resultado 
 +
 +   3 x 10<sup>5</sup> 
 +
 +que en HTML se muestra como: <html>3 x 10<sup>5</sup></html>
 +
 +==== select ====
 +
 +<code java>
 +public static Object select(List list)
 +public static Object select(Set set)
 +public static Object select(Object[] obj)
 +public static String select(String[] obj)
 +public static double select(double[] obj)
 +public static float select(float[] obj)
 +public static long select(long[] obj)
 +public static int select(int[] obj)
 +</code>
 +
 +Las funciones ''select'' sirven para seleccionar un objeto al azar a partir de una colección de objetos, ya sea una lista, un conjunto o un array de elementos. Por ejemplo:
 +
 +   String color = Random.select(new String[] {"rojo","azul","verde","amarillo"});
 +   
 +selecciona aletoriamente una cadena de caracteres que representa uno de estos cuatro colores.
 +
 +==== Barajar y permutar ====
 +<code java>
 +public static List shuffle(List list)
 +public static Object[] shuffle(Object[] obj)
 +public static String[] shuffle(String[] obj)
 +public static double[] shuffle(double[] obj)
 +public static float[] shuffle(float[] obj)
 +public static long[] shuffle(long[] obj)
 +public static int[] shuffle(int[] obj)
 +</code>
 +
 +Estas funciones devuelven un objeto igaul que el que reciben pero con los elementos en un orden aleatorio Por ejemplo, la isntruccion:
 +
 +    int nums = {0,1,2,3,4,5,6,7,8,9}
 +    nums  = Random.shuffle(nums);
 +
 +hace que el valor de la variable ''nums'' cambie a:
 +
 +    4,6,2,7,8,3,0,9,1,5
 +
 +<code java>
 +public static int[] permutation(int n)
 +</code>
 +
 +La funcion''permutacion'' hace exactamente lo mismo que barajar en el ejemplo anterior, pero solo hay que indicarle el numero de valores enteros que se desea permutar. Es decir, para obtener el mismo resultado que el ejemplo anterior bastaria con utilizar la llamada a la funcion:
 +
 +    int nums = Random.permutacion(9);
 +
 +
 +==== Otras funciones ====
 +
 +<code java>
 +public static String code(int n)
 +</code>
 +Devuelve un array de //n// caracteres aleatorio.    
 +
 +<code java>
 +public static Object[] toObjectArray(List list)
 +</code>
 +
 +Transforma una lista en un array de objetos.   
 +
 +<code java>
 +public static List toList(Object[] list)
 +</code>
 +
 +Transforma un array de objetos en una lista de objetos.  
es/manual/items/generativos/siette.util.random.1621677352.txt.gz · Última modificación: 2021/05/22 09:55 por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki