¿Cómo generar números aleatorios ingresando la cantidad de dígitos?

Publicado por Daphnes Nohansen Hyrule
hace 10 años

<p><span>Hola estoy tratando de construir un algoritmo que genere números en forma aleatoria, pero solo de la cantidad de dígitos ingresados por el usuario. Si el usuario dice 4 esto significa que los números generados solo deben tener 4 dígitos.</span></p><p><span>Agradecería si alguien pudiera orientarme un poco con este algoritmo que estoy intentando desarrollar en python/pseint/etc.</span></p>

pseint matematicas
Respuesta de Elias Peraza
hace 10 años

<p>Ok. La solución que encuentro al algortmo es generar N numeros aleatorios entre 0 y 9 y luego concatenarlos. Una solución en Python para esto, sería:</p><p>Cabezeras comunes:<br /><br /></p><pre>#! :3 coding: utf-8 -.-<br />#! /usr/bin/env python</pre><p>Importamos el modulo random:</p><pre>import random</pre><p>Definimos una funcion que genere un numero aleatorio con D digitos:</p><pre>def generar(d):<br /><span class="Apple-tab-span"> </span>result = 0<br /><span class="Apple-tab-span"> </span>digitos = []<br /><span class="Apple-tab-span"> </span>for x in range(d):<br /><span class="Apple-tab-span"> </span>aux = random.randrange(0, 10)<br /><span class="Apple-tab-span"> </span>digitos.append(aux)<br /><span class="Apple-tab-span"> </span>multiplicador = 1<br /><span class="Apple-tab-span"> </span>for x in digitos:<br /><span class="Apple-tab-span"> </span>result+= xmultiplicador<br /><span class="Apple-tab-span"> </span>multiplicador=10<br /><span class="Apple-tab-span"> </span>return result</pre><p>Se define la funcion main(cosa que acostumbro pero no es obligatorio), se solicita el numero de digitos que desea el usuario en su numero aleatorio y luego se llama a la funcion anteriormente definida, imprimiendo el String de su retorno que es numerico</p><pre>def main():<br /><span class="Apple-tab-span"> </span>nDigitos = int(raw_input('Ingrese la cantidad de digitos que desea que posea el numero aleatorio: '))<br /><span class="Apple-tab-span"> </span>print("El numero generado es: "+str(generar(nDigitos)))</pre><p>Para llamar la funcion main solo si se está ejecutando como programa y no como modulo:</p><pre>if name == 'main':<br /><span class="Apple-tab-span"> </span>main()<br /><span class="Apple-tab-span"> </span></pre>