Generando strings aleatorias hasta que se genera una string dada

Dada la string, la tarea es generar la misma string utilizando la combinación aleatoria de caracteres especiales, números y alfabetos.

Ejemplos:

Input : GFG
Output :n4W
        mK7
        k1x
        q;;, !g
        .
        .
        .
        .
        .
        GF,
        GFf
        GFp
        GFG

Target matched after 167 iterations

Requisito previo: generar ID aleatorios en Python

string.ascii_lowercase, string.digits, string.ascii_uppercaseson algunas de las constantes de string comunes presentes en el módulo de string en Python, que se utilizan aquí como diccionario. Todas estas constantes de string se combinan con otros caracteres especiales como ‘ ., !?;:’ y se almacenan en una variable.

Enfoque: simplemente ejecute dos bucles y use la función aleatoria proporcionada por python. Mostrará todas las combinaciones posibles que puede proporcionar la función aleatoria y el bucle de descifrado hará lo mismo. Al final, mostrará el mismo texto que ha insertado cuando se le solicite ingresar. Hará coincidir cada string aleatoria con la string dada. Si ambos índices coinciden, arregle ese índice e itere para el resto.

A continuación se muestra la implementación:

# Python program to generate and match 
# the string from all random strings
# of same length
  
# Importing string, random
# and time modules
import string
import random
import time
  
# all possible characters including 
# lowercase, uppercase and special symbols
possibleCharacters = string.ascii_lowercase + string.digits + 
                     string.ascii_uppercase + ' ., !?;:'
  
# string to be generated
t = "geek"
  
# To take input from user
# t = input(str("Enter your target text: "))
  
attemptThis = ''.join(random.choice(possibleCharacters)
                                for i in range(len(t)))
attemptNext = ''
  
completed = False
iteration = 0
  
# Iterate while completed is false
while completed == False:
    print(attemptThis)
      
    attemptNext = ''
    completed = True
      
    # Fix the index if matches with 
    # the strings to be generated
    for i in range(len(t)):
        if attemptThis[i] != t[i]:
            completed = False
            attemptNext += random.choice(possibleCharacters)
        else:
            attemptNext += t[i]
              
    # increment the iteration 
    iteration += 1
    attemptThis = attemptNext
    time.sleep(0.1)
  
# Driver Code
print("Target matched after " +
      str(iteration) + " iterations")

Producción :

FyFJ
.:YZ
aubo
.
.
.
g56G
gk6R
g7Se
gT o
gD d
gXek
g0ek
g ek
.
. 
gUek
giek
geek

Target matched after 168 iterations

Publicación traducida automáticamente

Artículo escrito por MrinalVerma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *