La fórmula para obtener números enteros pseudoaleatorios dentro de un rango específico es:
X = INT (RND * (B - A + 1)) + A
En donde:
1. A y B son los límites inferior y superior del rango, respectivamente.
2. RND es una función que devuelve un número real aleatorio perteneciente al rango [0, 1), es decir, mayor o igual a 0 y menor que 1.
3. INT es la función parte entera. Toma un número real y devuelve el entero menor más próximo.
Podés programar una función en una calculadora programable, que solicite los límites inferior y superior del rango de enteros [A, B] y luego, a cada pulsación de determinada tecla, arroje un entero perteneciente a ese rango.
RND es una función de generación de números pseudoaletorios con convergencia lineal. Para más detalles de esta función, tendrías que hacer otra pregunta.
Cordiales saludos, y feliz 2007.
P.D.: la solución subyacente de la respuesta anterior no generará números pseudoaleatorios que respeten la distribución discreta uniforme, es decir, que es susceptible de que aparezca una tendencia, en vez de que cada número obtenido, desde A hasta B, tenga LA MISMA probabilidad de aparecer. Esta propiedad es soportada por una función LINEAL CONVERGENTE, como la implementada por RND.
2006-12-28 06:31:35
·
answer #3
·
answered by Sir John 6
·
0⤊
0⤋
mmmmh, la verdad es que me hizo pensar varios segundos ... y eso a esta hora conmigo es todo un logro, luego de un largo y caluroso día de trabajo :-)
esta parece ser una pregunta de matemática aplicada (algo útil en el mundo real), en la que la teoría es importante (siempre lo es), pero no necesita ser rigurosa (dee aceptar y normalmente acepta ciertas flexibilidades y tolerancias, para que la solución sea viable y útil), como lo sería en una cuestión de matemática básica (ahí si que se supone que debemos ser rigurosos, hasta para ser flexibles) ... partiendo de todo eso, va lo que sigue ... :-)
su situación, al menos como la interpreto, es:
necesita poder disponer de números aleatorios (generados aleatoriamente, o de un modo que pueda considerarse razonablemente que fueron generados aleatoriamente), y apenas cuenta con una calculadora básica para lograrlo ... no tiene una computadora (con función de números aleatorios o seudoaleatorios, y planilla de cálculo) y ni siquiera cuenta con una calculadora avanzada (con función similar incluida), en ambos casos la solución sería bastante trivial, entra dentro de lo propuesto en otras respuestas, ... y de todos modos no conozco calculadoras que le permitan con el signo igual o enter mantener el recálculo, con valores aleatorios o seudoaleatorios dentro de rangos predefinidos ... salvo tal vez las calculadoras programables, que en realidad son computadoras de mano, que exceden el concepto básico de las funciones de una calculadora (limitarse a calcular) ... pero entrar a debatir eso sería regresar a lo básico ... así que quedemos en lo aplicado, que le sirva en la práctica ... ahí vamos ... :-)
su propuesta me recuerda los ejercicios de aplicación que hacíamos hace más de 20 años en la secundaria, para aprender a lograr lo que queríamos, con lo que tuvieramos, respecto a implementación de soluciones viables y útiles, con recursos limitados ... :-)
veamos, los números aleatorios, si se están calculando en realidad serán seudoaleatorios, es decir, parecerán por casualidad, pero en realidad serán el resultado de una operación ... así que hay que ingeniarselas para que esta operación de números que "funcionen como si" realmente fueran aleatorios ...
en lo que sigue, estoy asumiendo que en su calculadora no tiene disponible una función para generar números aleatorios ni seudoaleatorios, en la forma que los necesita ni en ninguna otra forma directa ... ya que si la tuviera apenas sería cuestión de usar esa función y ya ... pero su pregunta apunta creo a aplicaciones prácticas, más que eso, creo que apunta a una aplicación concreta, definida y discreta ... más que a profundizar aspectos teóricos, que no dejan de ser necesarios, pero para aprovecharlos en la práctica ... entonces ... si esta es una pregunta de matemática aplicada, ... pues allá vamos :-)
según las operaciones que tenga disponibles, y las variantes de recálculo de la máquina, es decir, de dejar cargados factores, y que al presionar el signo igual (o el que corresponda) obtenga un nuevo resultado, y este resultado de algún modo le sirva para lo que necesita ... de modo aceptable :-)
en algunas calculadoras, al presionar 2 veces el operador (por ejemplo multiplicación) normalmente aparece un signito, que indica que uno de los factores será reutilizado con el resultado o nuevo factor que se introduzca antes de cada cálculo (según el operador el reemplazo será para el primer o el segundo operador) ...
en otras, más limitadas, se asume el recálculo, y cuando se introduce un número, o se deja el resultado, y se presiona el igual, se repite la operación, tomando el último numero (ingresado o resultado) el anterior, y la última operación indicada ... si por ejemplo presiona "5 * 3 =" obtendrá "15", si escribe entonces "4 =" obtendrá "20", ya que se mantiene el "5 *" inicial y se agrega el "4" ... si deja ese último "20" y presiona "=", obtendrá "100", resultado del original "5 *" y el último resultado "20", y así ...
como sea, si usted conoce al forma de mantener el recálculo a partir del último resultado, entonces por ejemplo puede cargar alguna operación que dé resultados bastante variados, con decimales, y tomar luego el último dígito del resultado, siempre que le sirvan números de 0 a 9, ...
si en este caso busca números de 1 a 6, entonces descarta los resultados que no le sirvan ...
por ejemplo, usando la calculadora más limitada, como la indiqué recién, podría presionar algo como:
"0.999263741 * 15326.50239"
luego va presionando el "=" las veces que necesite y tomando el último dígito como válido ... si le sirve :-)
tenga en cuenta algunas cosas:
* el resultado no es realmente aleatorio, pero con algo de práctica se encontrarán reglas para establecer valores que deriven en resultados razonablemente aleatorios ... es decir, que funcionen como si fueran realmente aleatorios ...
* si espera tener que aplicar el proceso muchas veces de modo contínuo, digamos algunas decenas o cientos de veces, es conveniente probar con números que al progresar en el cálculo tengan tendencia a un valor finito, en mi caso, probé un número relativamente pequeño, apenas menor que 1, y otro relativamente grande, pero no tanto, de modo que se mantuviera el primero como factor constante (ese es el más importante, el otro no importa realmente tanto) y de modo que el resultado fuera bajando, desde el segundo número, de modo lento pero contínuo ...
con eso, prueba algunas veces, unas cuantas para ver si funciona el valor de prueba, va presionando el igual, si luego de algunas decenas de intentos (digamos) el resultado le parece aceptable, entonces reinicia el proceso ... aunque como dije antes, conociendo los valores iniciales, la operación, la cantidad de dígitos, el proceso de redondeo, etc ... la cosa no es realmente aleatoria, y si empieza siempre en las mismas condiciones, los resultados de la serie deberían ser siempre los mismos ...
pero si usted encuentra una regla para generar números con tendencias aceptables, pues es como si eligiera u juego de dados cada vez, y podrá contar con resultados aceptables ...
por otro lado, si usted quiere números enteros, pero de varios dígitos, entonces ya no será tan fácil, y en ese caso es recomendable limitar la cantidad de dígitos a no más de la mitad de los que puedan ser mostrados en el visualizador de la calculadora ...
de ese modo, tomará siempre los últimos dígitos del resultado, ya que los primeros serán más predecibles, y descartará el punto, con lo que ls dígitos formarán números enteros ...
claro que en este caso, al aumentar el número de resultados posibles, se reduce el nivel de facilidad y calidad para simular su "aleatoriedad" ...
espero se entienda la idea ... y le sirva :-)
2006-12-28 00:06:35
·
answer #4
·
answered by Anonymous
·
0⤊
0⤋