C'est un record de défi de 100 langues de traitement knock 2015. L'environnement est Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). Cliquez ici pour une liste des coups passés (http://qiita.com/segavvy/items/fb50ba8097d59475f760).
09.Typoglycemia
Créez un programme qui réorganise de manière aléatoire l'ordre des autres caractères, en laissant le premier et le dernier caractère de chaque mot pour la chaîne de mots séparés par des espaces. Cependant, les mots d'une longueur de 4 ou moins ne sont pas réorganisés. Donnez une phrase en anglais appropriée (par exemple, "Je ne pouvais pas croire que je pouvais réellement comprendre ce que je lisais: le pouvoir phénoménal de l'esprit humain.") Et vérifiez le résultat de l'exécution.
Le code fini:
main.py
# coding: utf-8
import random
def Typoglycemia(target):
'''Typogrisémie
Pour les chaînes de mots séparées par des espaces, laissez la première et la dernière lettre de chaque mot,
Réorganisez au hasard l'ordre des autres caractères.
Cependant, les mots d'une longueur de 4 ou moins ne sont pas réorganisés.
argument:
target --Chaîne de caractères cible
Valeur de retour:
Chaîne convertie
'''
result = []
for word in target.split(' '):
if len(word) <= 4:
result.append(word)
else:
chr_list = list(word[1:-1])
random.shuffle(chr_list)
result.append(word[0] + ''.join(chr_list) + word[-1])
return ' '.join(result)
#Entrée de la chaîne de caractères cible
target = input('Veuillez saisir une chaîne--> ')
#Typogrisémie
result = Typoglycemia(target)
print('Résultat de la conversion:' + result)
Résultat de l'exécution:
Terminal
Veuillez saisir une chaîne--> I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind .
Résultat de la conversion:I c'udnlot bievele that I colud aclautly utaedsrnnd what I was rainedg : the penomaenhl power of the human mind .
J'ai utilisé random.shuffle ()
pour le tri aléatoire. Cette fonction peut également spécifier une fonction de génération de nombres aléatoires à utiliser pour le tri, mais comme elle est omise cette fois, [random.random ()
](http://docs.python.jp/3/library /random.html#random.random) est utilisé. La logique de génération dans ce cas est [Mersenne Twister](https://ja.wikipedia.org/wiki/Mersenne Twister). Je suis heureux que d'excellents nombres aléatoires soient générés par défaut.
Il y a aussi un avertissement dans Explication of random
module, mais comme les nombres aléatoires générés par cette logique peuvent être prédits, Il est dangereux de l'utiliser tel quel à des fins de cryptage. S'il vous plaît soyez prudente.
Le phénomène appelé typoglycémie, qui est faux mais lisible, est assez intéressant. Cependant, le problème est que si vous n'êtes pas bon en anglais, vous ne pouvez le lire que même si l'orthographe est correcte ...
C'est pourquoi je l'ai également essayé en japonais. Dans le cas du japonais, il est correct de réorganiser même 4 caractères, c'est donc une version qui a changé «longueur 4 ou moins» en «longueur 3 ou moins».
Le code fini:
main2.py
# coding: utf-8
import random
def Typoglycemia(target):
'''Typo Grisemia [version japonaise]
Pour les chaînes de mots séparées par des espaces, laissez la première et la dernière lettre de chaque mot,
Réorganisez au hasard l'ordre des autres caractères.
Cependant, les mots d'une longueur de 3 ou moins ne sont pas réorganisés.
argument:
target --Chaîne de caractères cible
Valeur de retour:
Chaîne convertie
'''
result = []
for word in target.split(' '):
if len(word) <= 3:
result.append(word)
else:
chr_list = list(word[1:-1])
random.shuffle(chr_list)
result.append(word[0] + ''.join(chr_list) + word[-1])
return ' '.join(result)
#Entrée de la chaîne de caractères cible
target = input('Veuillez saisir une chaîne--> ')
#Typogrisémie
result = Typoglycemia(target)
print('Résultat de la conversion:' + result)
Résultat de l'exécution:
Terminal
Veuillez saisir une chaîne-->J'ai commencé le Saikin Paison Benkyo, mais c'est assez intéressant, n'est-ce pas?
Résultat de la conversion:Benkyo de Watashihasakiin Paison et d'autres choses sont assez intéressantes, n'est-ce pas?
Dans le cas du japonais, je dois mettre un espace dans le hiragana, mais c'est devenu compréhensible d'une manière ou d'une autre.
C'est le Nokku de Jinpoume. Je suis content que tu puisses le faire si tu n'aimes pas ça ^^
Recommended Posts