Taller de Algoritmos y Estructuras de Datos II - Material de estudio
|
|
Título del Test:
![]() Taller de Algoritmos y Estructuras de Datos II - Material de estudio Descripción: Preguntas basadas en las lecturas: compresión, Huffman, Josephus y aleatorios. |



| Comentarios |
|---|
NO HAY REGISTROS |
|
Según el material, ¿con qué objetivo se utiliza fundamentalmente la compresión de datos?. Reordenar el contenido de los archivos para aumentar la velocidad de lectura del medio de almacenamiento. Reducir el tamaño de los archivos para aumentar la capacidad de almacenamiento y la tasa efectiva de transmisión. Reducir el tamaño de los archivos para aumentar la capacidad de almacenamiento y reducir la tasa efectiva de transmisión. Cifrar el contenido de los archivos para aumentar la seguridad del almacenamiento y de la transmisión. Reducir el tamaño de los archivos para disminuir la capacidad de almacenamiento y la tasa efectiva de transmisión. ¿En qué se basa el principio de funcionamiento de la compresión sin pérdida?. En la eliminación de caracteres especiales. En la eliminación de redundancia. En la eliminación de información poco relevante. En la reducción de la resolución de los datos. En la reducción de los espacios en blanco. Un programa de compresión sin pérdida procesa la secuencia ZZZWWWWWQQQ sustituyendo los datos repetidos por instrucciones de cuántas veces se repiten. ¿Cómo queda representada?. Z3 W4 Q3. Z2 W5 Q2. Z3 W5 Q3. Z2 W4 Q2. Z3 Q3 W5. Una secuencia de caracteres como ABCDEFGH, en la que no existen repeticiones, no puede comprimirse mediante la eliminación de redundancia. VERDADERO. FALSO. Los procesos de compresión de archivos siempre son sin pérdida. VERDADERO. FALSO. Un archivo de texto comprimido sin pérdida de datos puede ser restaurado a su versión original. VERDADERO. FALSO. ¿Qué caracteriza al proceso de compresión con pérdida?. Deja información sin procesar, por lo que no permite reconstruir exactamente el archivo original. Procesa toda la información, por lo que permite reconstruir exactamente el archivo original. Procesa toda la información, pero no permite reconstruir exactamente el archivo original. Elimina solo la redundancia, por lo que permite reconstruir exactamente el archivo original. Deja información sin procesar, pero permite reconstruir exactamente el archivo original. Según el material, ¿en qué tipos de archivos se utiliza la compresión con pérdida? Seleccione las 3 (tres) opciones correctas. Archivos de datos de censos. Archivos de imágenes. Archivos audiovisuales. Archivos de música. Archivos de texto. En los archivos MP3 se aplica generalmente compresión con pérdida. ¿Qué información se elimina en ese proceso?. Las frecuencias que están dentro del rango que el oído humano percibe mejor. Los silencios que están al inicio y al final de cada pista de audio. Los metadatos del archivo, como el título, el autor y el álbum. Las frecuencias que están fuera del rango que el oído humano puede oír. Las secuencias de bits que se repiten varias veces dentro del archivo. ¿Por qué el material indica que, en general, la mejor opción para comprimir imágenes es el formato PNG?. Porque es un formato sin pérdida que reduce la resolución de la imagen. Porque es un formato sin pérdida que usa la redundancia para reducir el tamaño. Porque es un formato con pérdida que reduce la resolución de la imagen. Porque es un formato con pérdida que elimina los colores menos frecuentes. Porque es un formato sin pérdida que guarda cada píxel con 8 bits fijos. Al comprimir un archivo de texto, ¿qué tipo de compresión corresponde aplicar y por qué?. Con pérdida, porque se puede bajar la calidad sin que el texto deje de ser útil. Sin pérdida, porque los textos no presentan redundancia que pueda eliminarse. Con pérdida, porque los caracteres poco frecuentes pueden descartarse. Sin pérdida, porque es fundamental recomponer el archivo a su estado original. Con pérdida, porque los textos tienen mucha redundancia que puede descartarse. DATA Investigaciones necesita transmitir archivos de un censo lo más rápido posible y sin pérdida de información. ¿Qué solución propone el material?. Comprimir los archivos con un algoritmo sin pérdida y descomprimirlos en destino. Comprimir con pérdida solo los datos menos relevantes y el resto sin pérdida. Transmitir los archivos sin comprimir para no arriesgar la información relevada. Dividir los archivos en partes iguales y transmitirlas sin comprimir en paralelo. Comprimir los archivos con un algoritmo con pérdida y descomprimirlos en destino. El conjunto ASCII tiene aproximadamente 100 caracteres imprimibles. ¿Cuántos bits se requieren para poder diferenciarlos?. 6 bits. 8 bits. 10 bits. 5 bits. 7 bits. ¿Cuántos caracteres permiten representar 7 bits?. 128. 256. 127. 100. 64. En el código ASCII, ¿para qué se añade un octavo bit?. Para representar los caracteres no imprimibles. Para distinguir mayúsculas de minúsculas. Para indicar el final de cada carácter. Para realizar el control de paridad. Para representar los caracteres acentuados. ¿Cuántos bits se necesitan para representar todos los caracteres ASCII en una codificación de longitud fija?. 10 bits. 8 bits. 7 bits. 6 bits. 16 bits. Para un conjunto de caracteres de tamaño C, ¿cuántos bits se necesitan si se usa una codificación estándar de longitud fija?. techo(log2 C) + 1 bits. techo(raíz de C) bits. techo(log2 C) bits. techo(C / 2) bits. C bits. Un archivo contiene los caracteres a (10), e (15), i (12), s (3), t (4), espacio (13) y nueva línea (1), entre paréntesis su frecuencia. Si cada carácter se codifica con 3 bits fijos, ¿cuántos bits ocupa el archivo?. 174 bits. 168 bits. 58 bits. 464 bits. 180 bits. ¿De qué dos fases se compone la compresión?. Compresión y cifrado. Análisis y transmisión. Codificación y transmisión. Codificación y decodificación. Lectura y escritura. ¿En qué consiste la estrategia general de compresión presentada en el material?. Los caracteres más frecuentes se representan con códigos más largos y los menos frecuentes con códigos más cortos. Los caracteres más frecuentes se eliminan y los menos frecuentes se representan con códigos más cortos. Los caracteres más frecuentes se representan con códigos más cortos y los menos frecuentes con códigos más largos. Los caracteres se representan con códigos de longitud aleatoria para evitar las ambigüedades. Todos los caracteres se representan con códigos de igual longitud, ordenados según su frecuencia. Si todos los caracteres de un archivo tienen la misma frecuencia o una muy similar, la codificación de longitud variable no logra un ahorro significativo. VERDADERO. FALSO. ¿Qué propiedad cumple un código prefijo?. Todas las palabras de código tienen la misma cantidad de bits. Cada palabra de código es prefijo de al menos otra palabra de código. Ninguna palabra de código es sufijo de cualquier otra palabra de código. Ninguna palabra de código es prefijo de cualquier otra palabra de código. Ninguna palabra de código tiene más bits que la palabra más frecuente. ¿Cuál de los siguientes conjuntos de palabras de código tiene la propiedad de prefijo?. {0, 01, 11}. {1, 10, 11}. {0, 10, 11}. {00, 0, 11}. {0, 1, 10, 11}. La codificación denominada código prefijo es un tipo de codificación donde los códigos de los distintos caracteres... pueden tener diferentes longitudes, siempre que ninguno sea prefijo de otro. deben tener la misma longitud, para que ninguno sea prefijo de otro. deben tener longitudes crecientes según el orden alfabético del carácter. pueden tener diferentes longitudes, siempre que estén en nodos internos. pueden tener diferentes longitudes, siempre que todos sean prefijo de otro. En un trie binario que representa un código, ¿dónde se almacenan los caracteres?. Solo en el nodo raíz. En cualquier nodo del árbol. Solo en los nodos hoja. Solo en los nodos internos. En la raíz y en los nodos hoja. En el trie binario, ¿cómo se obtiene el código de un carácter?. Recorriendo desde la raíz: cada nodo interno aporta su peso al código del carácter. Recorriendo desde la hoja: cada rama izquierda aporta un 0 y cada rama derecha un 1. Recorriendo desde la raíz: cada rama izquierda aporta un 0 y cada rama derecha un 1. Contando los niveles desde la raíz: cada nivel par aporta un 0 y cada impar un 1. Recorriendo desde la raíz: cada rama izquierda aporta un 1 y cada rama derecha un 0. En el árbol de ejemplo, el carácter nl es el único hijo de su nodo padre. ¿Qué se puede hacer para mejorar el costo del código?. Bajar a nl un nivel agregándole un hermano vacío. Mover a nl a la raíz del árbol de codificación. Intercambiar a nl con el carácter más frecuente. Dejarlo igual, porque moverlo rompe la propiedad de prefijo. Subir a nl de nivel para que ocupe el lugar de su padre. Un código representado por un árbol puede decodificarse en forma ambigua si... no todos los caracteres se ubican en los nodos hoja. los códigos tienen longitudes diferentes entre sí. el árbol tiene más de dos niveles de profundidad. las ramas izquierdas se representan con un 0. todos los caracteres se ubican en los nodos hoja. Cualquier archivo, sin importar sus características, puede ser comprimido. VERDADERO. FALSO. Según Weiss, ¿qué hace el algoritmo de Huffman?. Construye un código prefijo óptimo combinando repetidamente los dos árboles de mayor peso. Construye un código prefijo óptimo combinando repetidamente los dos árboles de menor peso. Construye un código prefijo óptimo combinando repetidamente el árbol de menor peso con el de mayor. Construye un código prefijo no óptimo combinando repetidamente los dos árboles de menor peso. Construye un código de longitud fija óptimo combinando repetidamente los dos árboles de menor peso. En el algoritmo de Huffman, el peso de un símbolo es su frecuencia de aparición. En la cadena «edificio», ¿cuál es el peso del símbolo i?. 4. 2. 3. 8. 1. ¿Qué recibe como entrada el algoritmo de Huffman? Seleccione las 2 (dos) opciones correctas. La longitud fija en bits de cada símbolo. El peso asociado a cada símbolo. El árbol de Huffman ya construido. Un conjunto de símbolos. El código binario de cada símbolo. ¿Qué se obtiene como salida al aplicar el algoritmo de Huffman a un conjunto de símbolos?. El mismo conjunto de símbolos codificados con un código binario de longitud fija. El mismo conjunto de símbolos codificados con un código binario de menor tamaño. Un conjunto distinto de símbolos con un peso total mayor que el de entrada. Un conjunto distinto de símbolos codificados con un código binario de menor tamaño. El mismo conjunto de símbolos ordenados según su frecuencia de aparición. Si C es el número de caracteres a codificar, ¿con qué comienza el algoritmo de Huffman?. Con un único árbol que tiene C nodos hoja. Con 2C árboles de un único nodo cada uno. Con C árboles de un único nodo cada uno. Con C / 2 árboles de dos nodos cada uno. Con C - 1 árboles de dos nodos cada uno. Si C es el número de caracteres a codificar, ¿cuántas veces se seleccionan dos árboles de peso mínimo para unirlos?. C / 2 veces. C + 1 veces. C - 1 veces. C veces. log C veces. Durante el algoritmo de Huffman, ¿cómo se rompe un empate entre árboles del mismo peso?. Se elige arbitrariamente uno de los árboles empatados. Se elige siempre el árbol que está más a la izquierda. Se elige el árbol que fue creado primero en el proceso. Se elige el árbol que tiene mayor cantidad de nodos. Se elige el árbol que tiene menor altura. ¿Cómo se obtiene el peso de un árbol en el algoritmo de Huffman?. Sumando el peso de sus nodos internos. Tomando el peso de su hoja más pesada. Sumando el peso de sus nodos hoja. Contando la cantidad de nodos hoja. Sumando el peso de todos sus nodos. ¿Cómo se obtiene el código de Huffman asociado a cada símbolo?. Recorriendo las aristas que unen la hoja del símbolo con la hoja vecina. Recorriendo el árbol en inorden hasta llegar a la hoja del símbolo. Sumando los pesos de los nodos que unen la raíz con la hoja. Contando la cantidad de nodos del nivel donde está el símbolo. Recorriendo las aristas que unen la raíz con la hoja del símbolo. ¿Qué problema presenta la codificación de longitud variable?. Su codificación, porque exige ordenar los caracteres. Su lectura, porque exige caracteres de 8 bits fijos. Su almacenamiento, porque ocupa más bits que la fija. Su decodificación, porque puede resultar ambigua. Su transmisión, porque no puede enviarse por módem. Cualquier codificación empleada para disminuir la cantidad de bits de un conjunto de símbolos puede decodificarse de forma no ambigua. VERDADERO. FALSO. La cadena WWXWYZWX se almacena con codificación de longitud fija de 8 bits por carácter. ¿Cuántos bits ocupa?. 24 bits. 14 bits. 64 bits. 8 bits. 32 bits. Para la cadena WWXWYZWX se asigna el código W=0, X=11, Y=100, Z=011. ¿Por qué su decodificación resulta ambigua?. Porque los códigos de Y y de Z tienen la misma longitud. Porque W, el más frecuente, tiene el código más corto. Porque el código 11 de X es prefijo del código 100 de Y. Porque el código 0 de W es prefijo del código 100 de Y. Porque el código 0 de W es prefijo del código 011 de Z. ¿Cuál de las siguientes asignaciones para los caracteres W, X, Y, Z cumple la regla del prefijo?. W=0, X=10, Y=101, Z=111. W=1, X=10, Y=110, Z=111. W=0, X=1, Y=10, Z=11. W=0, X=11, Y=100, Z=011. W=0, X=10, Y=110, Z=111. Con el código W=0, X=10, Y=110, Z=111, ¿cuántos bits ocupa la cadena WWXWYZWX?. 14 bits. 16 bits. 18 bits. 12 bits. 64 bits. Se aplica Huffman a a (10), e (15), i (12), s (3), t (4), sp (13) y nl (1), entre paréntesis el peso. ¿Cuál es la primera combinación?. a con i, formando un árbol de peso 22. s con nl, formando un árbol de peso 4. e con sp, formando un árbol de peso 28. s con t, formando un árbol de peso 7. nl con t, formando un árbol de peso 5. Se aplica Huffman a a (10), e (15), i (12), s (3), t (4), sp (13) y nl (1). Luego de formar T1 = s + nl (peso 4), ¿cuál es la segunda combinación?. T1 con a, formando T2 de peso 14. T1 con t, formando T2 de peso 8. i con sp, formando T2 de peso 25. s con t, formando T2 de peso 7. nl con t, formando T2 de peso 5. Se aplica Huffman a a (10), e (15), i (12), s (3), t (4), sp (13) y nl (1). Ya formados T3 = T2 + a (peso 18) y T4 = i + sp (peso 25), ¿qué combinación sigue?. a con e, formando T5 de peso 25. e con sp, formando T5 de peso 28. e con T3, formando T5 de peso 33. T3 con T4, formando T5 de peso 43. e con T4, formando T5 de peso 40. Se aplica Huffman a a (10), e (15), i (12), s (3), t (4), sp (13) y nl (1). ¿Qué peso tiene el árbol óptimo final?. 174. 58. 25. 146. 33. Se aplica Huffman al bosque A (10), S (15), E (3), C (1), I (12). ¿Qué peso tiene el árbol formado en la tercera combinación?. 22. 41. 29. 27. 26. En la implementación vista en Java, ¿qué atributos tiene la clase Nodo?. carácter de tipo Character, frecuencia de tipo Integer, izq y der de tipo Integer. carácter de tipo String, frecuencia de tipo Integer, izq y der de tipo Nodo. carácter de tipo Character, frecuencia de tipo Character, izq y der de tipo Nodo. carácter de tipo Character, frecuencia de tipo Double, izq y der de tipo Nodo. carácter de tipo Character, frecuencia de tipo Integer, izq y der de tipo Nodo. En la clase Huffman de la implementación vista, ¿qué estructuras auxiliares se utilizan?. HashMap y Vector. ArrayList y Vector. Stack y PriorityQueue. HashMap y PriorityQueue. HashMap y Stack. En la implementación vista, la clase Nodo implementa los métodos Codifica y Decodifica. VERDADERO. FALSO. En la cola de prioridad que usa construirArbolHuffman, ¿qué elemento tiene la mayor prioridad?. El que se insertó primero. El de menor frecuencia. El que tiene más hijos. El de código más corto. El de mayor frecuencia. ¿Cómo arma el código de cada carácter el método Codificar de la clase Huffman?. Recursivamente, sumando un 0 o un 1 según se desplace a izquierda o a derecha. Iterativamente, recorriendo la cola de prioridad de menor a mayor frecuencia. Recursivamente, sumando la frecuencia de cada nodo visitado hasta la hoja. Recursivamente, sumando un 1 o un 0 según se desplace a izquierda o a derecha. Iterativamente, sumando un 0 o un 1 según la frecuencia de cada nodo visitado. ¿En qué estructura almacena el método Codificar el código generado para cada carácter?. En un HashMap. En un arreglo de enteros. En un atributo de Nodo. En una PriorityQueue. En un StringBuilder. ¿Qué tareas se realizan en la primera parte del método construirArbolHuffman? Seleccione las 3 (tres) opciones correctas. Controlar que la cadena recibida no esté vacía. Crear una cola de prioridad para los nodos del árbol. Crear un HashMap con cada símbolo y su frecuencia. Ordenar alfabéticamente los caracteres de la cadena. Convertir la cadena a código ASCII de 7 bits. En la implementación vista, el método Decodifica recibe como parámetros raiz (Nodo), index (int) y sb (StringBuilder). VERDADERO. FALSO. El método Codificar declarado en la clase Huffman no funciona en forma recursiva. VERDADERO. FALSO. Según Weiss, ¿cómo se desarrolla el problema de Josefo?. Se elige al azar un jugador en cada ronda; ese jugador es eliminado y gana el último que queda en el círculo. Se pasa repetidamente una patata caliente; quien la tiene al terminar los pases es eliminado y pierde el último que queda. Se pasa repetidamente una patata caliente; quien la tiene al terminar los pases gana y el juego termina. Se pasa repetidamente una patata caliente; quien la entrega al terminar los pases es eliminado y gana el último que queda. Se pasa repetidamente una patata caliente; quien la tiene al terminar los pases es eliminado y gana el último que queda. En el método josefo(n, k) visto en el material, ¿qué representan sus parámetros?. n es la cantidad de posiciones a contar hasta eliminar a una y k la cantidad de personas. n es la cantidad de personas y k la posición desde la que comienza a contarse. n es la cantidad de rondas a jugar y k la cantidad de personas que participan. n es la cantidad de personas y k la cantidad de posiciones a contar hasta eliminar a una. n es la cantidad de personas y k la cantidad de sobrevivientes al final del juego. En la implementación de Josephus con un arreglo, ¿qué indica un 1 en una posición del arreglo?. Que la persona de esa posición está viva. Que la persona de esa posición es la próxima a eliminar. Que la persona de esa posición tiene la patata. Que la persona de esa posición es la ganadora. Que la persona de esa posición fue eliminada. Al contar hasta k en la implementación con arreglo, ¿qué se hace con las posiciones de personas ya eliminadas (circulo[índice] == 0)?. Se saltean y no se cuentan. Se cuentan solo una vez. Se cuentan igual que las vivas. Se quitan del arreglo. Se vuelven a marcar con un 1. En la implementación con arreglo, ¿qué ocurre cuando el índice supera el tamaño del arreglo?. Se termina la ronda y se elimina a la última persona. Se reinicia a 0 y se vuelve a marcar a todos como vivos. Se termina el juego y gana la persona del último índice. Se invierte el sentido y la cuenta sigue hacia atrás. Se reinicia a 0 y la cuenta sigue con la primera persona. Personas numeradas de 1 a n en círculo; se cuenta desde la persona 1 y se elimina a la k-ésima persona viva, repitiendo hasta que quede una. ¿Quién sobrevive con 20 personas y K = 4?. La persona 20. La persona 13. La persona 16. La persona 4. La persona 17. Personas numeradas de 1 a n en círculo; se cuenta desde la persona 1 y se elimina a la k-ésima persona viva, repitiendo hasta que quede una. ¿Quién sobrevive en un grupo de 8 personas con K = 2?. La persona 8. La persona 5. La persona 7. La persona 1. La persona 3. Personas numeradas de 1 a n en círculo; se cuenta desde la persona 1 y se elimina a la k-ésima persona viva, repitiendo hasta que quede una. ¿Quién sobrevive en un grupo de 15 personas con K = 4?. La persona 11. La persona 7. La persona 13. La persona 14. La persona 15. Personas numeradas de 1 a n en círculo; se cuenta desde la persona 1 y se elimina a la k-ésima persona viva, repitiendo hasta que quede una. ¿Quién sobrevive en un grupo de 12 personas con K = 3?. La persona 5. La persona 10. La persona 12. La persona 1. La persona 7. Para una misma cantidad de personas, valores distintos de K siempre producen un sobreviviente distinto. VERDADERO. FALSO. Para una misma cantidad de personas, si se aplican distintos valores de K puede variar el orden de eliminación. VERDADERO. FALSO. En el diagrama de Weiss con N = 5 participantes y M = 1 pase, ¿en qué orden se eliminan los participantes?. 1, 3, 5, 2 (gana el 4). 3, 1, 5, 2 (gana el 4). 2, 4, 1, 5 (gana el 3). 2, 3, 4, 5 (gana el 1). 2, 4, 5, 1 (gana el 3). En la solución simple de Josephus con una lista enlazada, ¿cuál es el tiempo de ejecución?. O(NM). O(M). O(N log N). O(N). O(M log N). En la solución simple con lista enlazada, ¿cuál es el tiempo de ejecución si M = 0?. O(N log N). O(log N). O(1). O(N^2). O(N). En la solución simple del problema de Josephus, cambiar LinkedList por ArrayList no afecta el tiempo de ejecución. VERDADERO. FALSO. En la solución simple, ¿qué elementos se usan para representar y recorrer a los participantes?. Un árbol binario (root) y un iterador (itr). Una lista enlazada (theList) y una pila (stack). Un arreglo circular (circulo) y un índice (indice). Una cola de prioridad (pq) y un iterador (itr). Una lista enlazada (theList) y un iterador (itr). Para lograr una solución más eficiente de Josephus, ¿qué operación debe soportar la estructura de datos en tiempo logarítmico?. El acceso al k-ésimo elemento más pequeño. El acceso al elemento más grande. La inserción de un elemento al final. El recorrido completo de los elementos. La búsqueda secuencial de un elemento. Si se usa un árbol binario de búsqueda en el problema de Josephus, ¿qué tiempo de ejecución se puede esperar?. O(M log N). O(log N). O(N). O(N log N). O(NM). En la solución de Josephus con árboles binarios es obligatorio que el árbol sea de tipo AVL. VERDADERO. FALSO. Para que cargarArbolBinario construya un árbol equilibrado, ¿qué condición debe cumplir la lista que recibe?. Debe tener tamaño potencia de 2. Debe estar desordenada. Debe tener tamaño par. Debe ser una lista circular. Debe estar ordenada. ¿Qué elemento de la lista inserta cargarArbolBinario en el nuevo nodo antes de las llamadas recursivas?. Un elemento al azar. El último elemento. El primer elemento. El elemento del primer cuarto. El elemento del medio. El método cargarArbolBinario llama a otro método con el mismo nombre pero con distintos parámetros (nodo, lista y cantidad). VERDADERO. FALSO. El problema de Josephus admite una única forma de implementación. VERDADERO. FALSO. ¿Qué es la simulación según el material?. Una técnica que, mediante datos históricos, permite predecir con exactitud el comportamiento futuro de un sistema. Una técnica que, mediante computadoras, permite demostrar formalmente que un programa no tiene errores. Una técnica que, mediante encuestas a usuarios reales, describe el comportamiento de sistemas del mundo real. Una técnica que, mediante computadoras, permite hacer experimentos que describen el comportamiento de sistemas del mundo real. Una técnica que, mediante computadoras, reemplaza definitivamente a los sistemas del mundo real en producción. En simulación, ¿cómo se define un modelo?. Como el resultado estadístico que se obtiene al finalizar la simulación. Como la representación de un sistema real basada en la abstracción de sus propiedades dominantes. Como la copia exacta de un sistema real que conserva todas sus propiedades. Como la representación de un sistema real basada en la abstracción de sus propiedades secundarias. Como el conjunto de datos aleatorios que se usa como entrada de la simulación. ¿Qué ventajas presenta el uso de computadoras para procesos de simulación? Seleccione las 3 (tres) opciones correctas. Evita tener que generar datos de entrada para el sistema. Es más rápida que una aplicación real del sistema. La información se recopila sin involucrar a actores reales del sistema. Se puede repetir fácilmente la cantidad de veces necesaria. Garantiza resultados exactos con un único experimento. Según el material, ¿cuáles son aplicaciones típicas de los números aleatorios? Seleccione las 3 (tres) opciones correctas. Construcción de códigos prefijo. Pruebas de programas. Compresión sin pérdida. Algoritmos aleatorizados. Simulaciones. En la técnica de algoritmo aleatorizado, ¿para qué se usan los números aleatorios?. Para determinar el siguiente paso cuando hay varias alternativas posibles. Para generar los datos de prueba que verifican el rendimiento. Para determinar la semilla cuando hay varias alternativas posibles. Para ordenar los datos de entrada antes de ejecutar el algoritmo. Para repetir el mismo escenario en cada ejecución del programa. Según Weiss, ¿por qué la verdadera aleatoriedad es imposible de conseguir en una computadora?. Porque cualquier número obtenido depende de la cantidad de memoria disponible. Porque cualquier número obtenido depende del reloj interno, que no es preciso. Porque cualquier número obtenido depende del algoritmo empleado para generarlo. Porque cualquier número obtenido termina repitiéndose dentro de la misma ejecución. Porque cualquier número obtenido depende de la velocidad del procesador usado. ¿Qué son los números pseudoaleatorios?. Números que parecen aleatorios porque se generan a partir del reloj del sistema. Números que son aleatorios porque se obtienen de una fuente física externa. Números que son aleatorios porque satisfacen todas las propiedades de los aleatorios. Números que parecen aleatorios porque satisfacen muchas de las propiedades de los aleatorios. Números que parecen aleatorios porque nunca se repiten dentro de una misma secuencia. Se simula el lanzamiento de una moneda devolviendo 0 o 1 según los segundos del reloj del sistema sean pares o impares. ¿Qué problema tiene al generar una secuencia?. En un mismo segundo se hacen varias llamadas, por lo que la secuencia alterna siempre entre ceros y unos. El reloj del sistema no puede consultarse desde Java, por lo que la función siempre devuelve 0. Los segundos pares aparecen con más frecuencia, por lo que la secuencia tiene más ceros que unos. La función solo puede devolver valores entre 0.0 y 1.0, por lo que nunca devuelve exactamente 1. En un mismo segundo se hacen varias llamadas, por lo que la secuencia sale toda de ceros o toda de unos. Cambiar la función del reloj para que use milisegundos en lugar de segundos permite generar una secuencia aleatoria correcta. VERDADERO. FALSO. ¿Qué propiedades fundamentales deben cumplir los números aleatorios? Seleccione las 3 (tres) opciones correctas. No repetirse dentro de una determinada longitud de la sucesión. Generarse siempre ordenados de menor a mayor. Ser estadísticamente dependientes uno de otro. Ser estadísticamente independientes uno de otro. Estar uniformemente distribuidos. En una distribución uniforme, ¿qué ocurre con los números dentro del rango especificado?. Todos tienen la misma probabilidad de aparecer. Los centrales tienen más probabilidad de aparecer. Cada número aparece exactamente una vez. Todos aparecen en orden creciente. Los extremos tienen más probabilidad de aparecer. Si se generan números aleatorios uniformes en el rango 0..999, ¿cuál es la media esperada de todos los números generados?. 500.5. 499.5. 999. 500. 499. Si se generan mil números aleatorios uniformes en el rango 0..999, algunos estarán duplicados y, por lo tanto, otros no aparecerán. VERDADERO. FALSO. ¿Qué dos mecanismos ofrece Java para generar números aleatorios?. La función random de la clase Math y la clase Scanner. Únicamente la función random de la clase Math. La función random de la clase Math y la clase Random. Únicamente la clase Random. La clase Random y la clase Scanner. ¿Qué devuelve la función Math.random()?. Un int entre 0 y 10, excluyendo el 10. Un double entre 0.0 y 1.0, excluyendo el 0.0. Un double entre 0.0 y 100.0, excluyendo el 100.0. Un double entre 0.0 y 1.0, excluyendo el 1.0. Un double entre 0.0 y 1.0, incluyendo el 1.0. ¿Qué genera la expresión double valor = Math.random() * (LS - LI) + LI; ?. Números con decimales entre 0 y la diferencia entre LS y LI. Números con decimales entre un límite inferior (LI) y un límite superior (LS). Números enteros entre 0 y el límite superior (LS). Números enteros entre un límite inferior (LI) y un límite superior (LS). Números con decimales entre LI y la suma de LS y LI. Se crean Random b = new Random(2200); y Random c = new Random(2200);. ¿Qué ocurre con las secuencias que generan?. Devuelven secuencias distintas de números. Devuelven la misma secuencia de números. Devuelven la misma secuencia desplazada en uno. Devuelven secuencias que se alternan entre sí. Devuelven la misma secuencia en orden inverso. Si se instancia Random random = new Random(); sin parámetros, ¿cómo se inicializa la semilla?. Con la última semilla usada por otro objeto Random. Con el valor 0, que es el definido por defecto. Con el valor 1, que es el definido por defecto. Con base en el instante de tiempo actual del sistema. Con el valor máximo que admite el tipo long. ¿Cuáles son los dos constructores de la clase Random?. Random() y Random(String semilla). Random() y Random(int min, int max). Random(int semilla) y Random(long semilla). Random() y Random(long semilla). Random(long semilla) y Random(double semilla). En la instrucción new Random(3816L); el sufijo L es obligatorio para que la semilla se tome como long. VERDADERO. FALSO. ¿Qué instrucción permite cambiar en cualquier momento la semilla de un objeto Random?. random.setSeed('semilla'). random.setSeed(semilla). random.setSem(semilla). random.seed(semilla). random.changeSeed(semilla). ¿Qué métodos de la clase Random se presentan en el material para generar números aleatorios? Seleccione las 4 (cuatro) opciones correctas. random.nextFloat(). random.nextInt(). random.nextLong(). random.nextChar(). random.nextDouble(). ¿Qué valor devuelve random.nextDouble()?. Un double entre -1.0 y 1.0, siempre distinto de 0.0. Un double entre 0.0 y 1.0, que puede valer 1.0. Un double entre 0.0 y 1.0, siempre mayor que 0.0. Un double entre 0.0 y 1.0, siempre menor que 1.0. Un double entre 0.0 y 100.0, siempre menor que 100.0. ¿Qué valores puede devolver la expresión r.nextInt(10) + 1?. Enteros entre 0 y 10, ambos incluidos. Enteros entre 1 y 10, ambos incluidos. Enteros entre 1 y 11, ambos incluidos. Enteros entre 1 y 9, ambos incluidos. Enteros entre 0 y 9, ambos incluidos. Se desea generar números enteros entre 0 y 9 (ambos incluidos) con un objeto Random a y guardarlos en la variable entera numero. ¿Qué expresión es correcta?. numero = (int)(a.nextDouble() * 9.0);. numero = (int) a.nextDouble() * 10.0;. numero = (int)(a.nextDouble() + 10.0);. numero = (int)(a.nextDouble() * 10.0) + 1;. numero = (int)(a.nextDouble() * 10.0);. ¿Cuál es el orden de pasos para crear una secuencia de números aleatorios con la clase Random?. Incorporar la clase, crear un objeto Random, llamar a una función miembro y usar el número. Llamar a una función miembro, incorporar la clase, crear un objeto Random y usar el número. Incorporar la clase, crear un objeto Random, usar el número y llamar a una función miembro. Crear un objeto Random, incorporar la clase, usar el número y llamar a una función miembro. Incorporar la clase, llamar a una función miembro, crear un objeto Random y usar el número. ¿Cómo se comprueba la uniformidad de una secuencia de números aleatorios?. Generando una secuencia muy grande, contando cuántas veces aparece cada número y comparando las frecuencias. Generando una secuencia muy grande, ordenando los números y verificando que no queden huecos entre ellos. Generando una secuencia corta, contando cuántas veces aparece cada número y verificando que ninguno se repita. Generando dos secuencias con la misma semilla y verificando que los números sean distintos entre sí. Generando una secuencia muy grande, sumando todos los números y verificando que el total sea siempre par. En el ejemplo de comprobación de uniformidad, ¿qué guarda el arreglo de diez posiciones?. La probabilidad teórica de cada número del rango. Las diez semillas usadas en cada generación. Los números generados ordenados de menor a mayor. La cantidad de veces que aparece cada número generado. Los últimos diez números aleatorios generados. En el ejemplo se generan cien mil números aleatorios entre 0 y 9. ¿Aproximadamente cuántas veces aparece cada dígito?. 50 000 veces. 100 000 veces. 10 000 veces. 1 000 veces. 9 000 veces. ¿Para qué resulta útil generar dos secuencias de números aleatorios iguales con setSeed()?. Para asegurar que los números no se repitan dentro de una simulación o prueba de rendimiento. Para que cada ejecución de la simulación o prueba produzca un escenario distinto al anterior. Para comprobar la uniformidad sin necesidad de generar una secuencia muy grande de números. Para lograr una aleatoriedad verdadera en una simulación o prueba de estructuras de datos. Para repetir un mismo escenario en una simulación o prueba al comparar estructuras de datos. |




