Nous avons implémenté des programmes en plusieurs langues qui génèrent des chaînes aléatoires (cette fois 6 lettres minuscules). La compétence de l'auteur de l'article est telle qu'un amateur apprend la programmation presque tout seul. Il y a une description de code dans l'article, mais j'apprécierais que vous puissiez commenter s'il y a des parties étranges ou des anti-modèles.
L'autre jour, j'ai utilisé Heroku pour la première fois. C'est très facile à utiliser, mais je ne sais pas ce qu'est l'application à partir du nom de l'application généré automatiquement. Il semble que vous deviez éviter la duplication avec le nom de l'application sur Heroku pour lui donner un nom d'application arbitraire. En guise de méthode simple, utilisez une convention de dénomination
** Nom-app-chaîne aléatoire (ex. Fjofez-hello-app)
**
Si tel est le cas, vous pouvez lui donner un nom descriptif tout en réduisant les risques de duplication. Par conséquent, j'ai décidé d'écrire un programme qui génère une chaîne de caractères aléatoires dans plusieurs langues. À propos, il existe les restrictions suivantes sur le nom de l'application.
$ heroku rename MyApp
Renaming Old-App to NewyApp... !
▸ Name must start with a letter, end with a letter or digit and can
only contain lowercase letters, digits, and dashes.
`Les noms doivent commencer par une lettre et se terminer par une lettre ou un chiffre et ne peuvent contenir que des lettres minuscules, des chiffres et des tirets. ''
De plus, le nombre maximum de caractères semble être de 30 caractères. La génération de chaînes de caractères aléatoires a été implémentée avec le modèle suivant.
** C, C ++, Python, Ruby, PHP, Node.js, Swift, Shell, JavaScript (HTML intégré) **
Si vous n'avez pas le temps, passez à Conclusion.
** Les règles de mise en œuvre ** sont à peu près les suivantes.
** Environnement d'exécution ** (Windows)
OS | Windows 10 Home (64bit) |
---|---|
WSL | Ubuntu 18.04.4 LTS |
Shell th> | bash td> |
** Environnement d'exécution ** (Mac)
OS | Catalina 10.15.6 |
---|---|
Shell th> | zsh td> |
Quand j'étais étudiant, j'ai suivi un cours de langue C et j'ai appris environ un mois à l'examen d'entrée d'une école d'ingénieurs appelée 42Tokyo. Pour moi, la programmation est l'image du langage C.
random_strings.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int num_of_char = 6;
srand((unsigned int)time(NULL));
for (int i = 0; i < num_of_char; i++)
printf("%c", (rand() % 26 + 'a'));
printf("\n");
}
$ gcc random_strings.c
$ ./a.out
ucxjvx
$ ./a.out
asuprq
$ ./a.out
rveroj
référence [Introduction au langage C] Comment utiliser des nombres aléatoires (rand)
J'ai étudié le C ++ pour participer au concours chez AtCoder, un service qui organise des concours de programmation compétitifs. Lorsque vous commencez à programmer, je pense que la programmation compétitive est une excellente introduction pour ceux qui aiment les puzzles.
random_strings.cpp
#include <iostream>
#include <random>
using namespace std;
int main()
{
int num_of_char = 6;
mt19937 mt{random_device{}()};
uniform_int_distribution<int> dist(0, 25); // 26 letters of a~z
for (int i = 0; i < num_of_char; i++)
cout << char(dist(mt) + 'a');
cout << endl;
}
$ g++ random_strings.cpp
$ ./a.out
zotuxm
$ ./a.out
faoxwv
$ ./a.out
czoxwt
référence La bibliothèque de nombres aléatoires C ++ est difficile à utiliser 3. Python
Tout le monde aime Python. Je l'ai à peine touché. La quantité de description est inférieure à celle du langage C. Il y avait de nombreuses références.
random_strings.py
import random
import sys
for i in range(6):
sys.stdout.write(chr(random.randrange(26) + ord("a")))
print("")
$ python random_strings.py
prnsro
$ python random_strings.py
nnaydv
$ python random_strings.py
uzejcc
référence Fractions / entiers aléatoires générés par Python, random, randrange, randint, etc. [Python] Types de données et casts Astuces Python: Je souhaite générer une chaîne de caractères sans saut de ligne Python Snippets
Je travaille sur un tutoriel Rails. J'ai écrit cet article parce que j'ai utilisé Heroku dans le didacticiel Rails. La quantité de code est juste une ligne. Cela ressemble à une peau, mais je sens que la vitesse d'exécution est lente.
random_strings.rb
puts (0..5).map{ ("a".ord + rand(26)).chr }.join
$ ruby random_strings.rb
xgrqye
$ ruby random_strings.rb
cvijok
$ ruby random_strings.rb
ifmiau
** Ajouté le 2020.9.5 ** Dans les commentaires, j'ai appris à écrire le code un peu plus court. Il est court et extensible (y compris les chiffres et les majuscules).
python
puts (1..6).map{ [*"a".."z"].sample }.join
référence Comment générer une chaîne aléatoire dans Ruby Convertir un entier et des caractères avec Ruby Exemple Array # (Manuel de référence Ruby 2.7.0)
C'était presque la première fois que j'exécutais PHP à partir de la ligne de commande. C'est rafraîchissant d'ajouter $ à la variable.
random_strings.php
<?php
for ($i = 0; $i < 6; $i++)
echo substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'), 0, 1);
echo "\n"
?>
$ php random_strings.php
fclvjt
$ php random_strings.php
mcttjp
$ php random_strings.php
rdvole
** Révisé 2020.9.5 **
La partie signalée dans le commentaire a été corrigée.
Correction du nombre de caractères dans la chaîne de caractères générée à 8 caractères => 6 caractères
Pas de duplication => Corrigé pour avoir une duplication
C'était presque la première fois que j'exécutais PHP à partir de la ligne de commande. La quantité de code est en fait une ligne. référence
[Comment exécuter PHP sur la ligne de commande [Pour les débutants]
Générer un mot de passe aléatoire sur une seule ligne Je l'ai touché pour la première fois. J'ai l'impression d'utiliser Node.js pour exécuter JavaScript à partir de la ligne de commande plutôt que Node.js.
J'ai un peu touché JavaScript lui-même lorsque j'étudiais la production Web. référence
Utilisé depuis l'introduction de Node.js dans l'environnement WSL
Référence inverse JavaScript qui peut être utilisée en copier-coller
Obtenez des nombres aléatoires avec javascript
Convertir les caractères en code ASCII avec JavaScript Je l'ai touché pour la première fois. J'ai eu le plus de mal avec cette implémentation, probablement parce que c'est essentiellement un langage pour créer des applications iOS. Je pense que Swift n'est pas adapté aux contenus d'implémentation comme cette fois. référence
[Swift] Comment générer des nombres aléatoires
Comment obtenir la chaîne d'index spécifiée dans Swift
Répétez le traitement! Comment utiliser les instructions while / for écrites en Swift [pour les débutants] Le script shell est créé par google à chaque fois que c'est nécessaire pour l'efficacité, et après 3 jours c'est un niveau de compétence que j'oublie. référence
Générer une chaîne de caractères aléatoire Je viens d'intégrer le code implémenté dans Node.js dans HTML. J'ignore la méthode car elle est combinée en un seul fichier html.
Si vous déménagez pour le moment, c'est OK. Du point de vue d'un amateur, JavaScript qui peut être exécuté avec un navigateur est pratique. Vérifier JavaScript (HTML intégré) avec un navigateur (Microsoft Edge)
Je l'ai exécuté sur une machine Windows à l'exception de Swift, mais il était très facile de configurer l'environnement grâce à WSL. Quand j'étais étudiant, je me souviens avoir eu du mal à mettre en place un environnement de développement de langage C sur une machine Windows. De plus, des IDE cloud tels que AWS Cloud 9 sont désormais disponibles, et je pense que l'environnement est très béni, car il est relativement facile de préparer un environnement de développement même pour un développement conjoint à l'aide de docker. Facile et rapide à la main. (Dans l'exemple ci-dessous, j'ai frappé correctement le clavier) Si vous le portez, vous pouvez lui donner un autre nom. De plus, je pense que le simple fait d'ajouter un mot fixe au préfixe ne le dupliquera pas. Ce fut une bonne expérience d'être exposé à différentes langues.
Si vous n'êtes pas satisfait de Hello World, pourquoi ne pas essayer de générer une chaîne aléatoire comme point de départ pour une nouvelle langue? c'est tout.
Recommended Posts
<détails>
random_strings.php
<?php
echo substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'), 0, 8) . "\n";
?>
$ php random_strings.php
fwuxjhel
$ php random_strings.php
fcxmuypb
$ php random_strings.php
qkswgyjp
random_strings.js
'use strict';
function make_random_string() {
const num_of_char = 6;
let random;
let str1 = "";
for (let i = 0; i < num_of_char; i++)
{
random = Math.floor( Math.random () * 26 + "a".charCodeAt(0));
str1 += String.fromCharCode(random);
}
console.log(str1);
}
make_random_string();
$ node random_strings.js
fpysdy
$ node random_strings.js
hshgzk
$ node random_strings.js
bedysa
random_strings.swift
let str = "abcdefghijklmnopqrstuvwxyz"
var i = 0
while i < 6 {
let randomAlpha = Int.random(in: 0..<26)
let fromIdx = str.index(str.startIndex, offsetBy: randomAlpha)
let toIdx = str.index(str.endIndex, offsetBy: randomAlpha - 26)
print(str[fromIdx...toIdx], terminator: "")
i += 1
}
print("")
$ swift random_strings.swift
xwjrxd
$ swift random_strings.swift
pwqziz
$ swift random_strings.swift
psbhww
8. Script shell
random_strings.sh
#!/bin/bash
cat /dev/urandom | tr -dc 'a-z' | fold -w 6 | head -n 1
$ bash random_strings.sh
udhmsd
$ bash random_strings.sh
loxtxt
$ bash random_strings.sh
zxrbbe
9. JavaScript (HTML intégré)
Navigateur th> Version th>
Google Chrome td> Version: 84.0.4147.135 td>
Microsoft Edge td> Version 85.0.564.44 td>
Firefox td> Version: 80.0.1 td>
Safari td> Version: 13.1.2 td>
random_strings.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html {background: #f7f7f7;}
body {margin: 48px auto 0; padding-top: 12px; padding-left: 24px;}
body {background: #fff; border: solid 1px #333; width: 640px;}
.result {color: #F06060; font-size: 30px; font-weight: bold; margin-left: 2rem;}
div {border-bottom: solid 2px #333; width: 300px;}
</style>
</head>
<body>
<h1>Générer une chaîne aléatoire avec JavaScript</h1>
<div>
<script>
'use strict';
function make_random_string() {
const num_of_char = 6;
let random;
let str1 = "";
for (let i = 0; i < num_of_char; i++)
{
random = Math.floor( Math.random () * 26 + "a".charCodeAt(0));
str1 += String.fromCharCode(random);
}
console.log(str1);
document.write("<span>Chaîne générée=> </span>");
document.write("<span class = result>" + str1 + "</span>");
}
make_random_string();
</script>
</div>
<p>(a ~6 caractères avec des doublons de z)</p>
<p>console.Il est également affiché dans le journal.</p>
</body>
</html>
10. Résumé de la mise en œuvre
Conclusion
$ heroku rename wojwpd-hello-app
$ heroku rename apple-hello-app
À la fin