Wir haben Programme in mehreren Sprachen implementiert, die zufällige Zeichenfolgen generieren (diesmal 6 Kleinbuchstaben). Die Fähigkeiten des Autors des Artikels sind fast die gleichen wie die eines Amateurs, der das Programmieren selbst gelernt hat. Der Artikel enthält eine Codebeschreibung, aber ich würde mich freuen, wenn Sie kommentieren könnten, ob es seltsame Teile oder Anti-Muster gibt.
Neulich habe ich Heroku zum ersten Mal benutzt. Es ist sehr einfach zu bedienen, aber ich weiß nicht, was die App aus dem automatisch generierten App-Namen ist. Es scheint, dass Sie Doppelungen mit dem App-Namen auf Heroku vermeiden müssen, um ihm einen beliebigen App-Namen zu geben. Verwenden Sie als einfache Methode eine Namenskonvention
** Zufälliger String-App-Name (zB Fjofez-Hallo-App)
**
In diesem Fall können Sie ihm einen beschreibenden Namen geben und gleichzeitig die Möglichkeit von Duplikaten verringern. Aus diesem Grund habe ich beschlossen, ein Programm zu schreiben, das eine zufällige Zeichenfolge in mehreren Sprachen generiert. Übrigens gibt es die folgenden Einschränkungen für den App-Namen.
$ 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.
`Namen müssen mit einem Buchstaben beginnen und mit einem Buchstaben oder einer Zahl enden und dürfen nur Kleinbuchstaben, Zahlen und Bindestriche enthalten. ``
Außerdem scheint die maximale Anzahl von Zeichen 30 Zeichen zu betragen. Die Erzeugung zufälliger Zeichenketten wurde mit dem folgenden Muster implementiert.
** C, C ++, Python, Ruby, PHP, Node.js, Swift, Shell, JavaScript (HTML eingebettet) **
Wenn Sie keine Zeit haben, fahren Sie mit Schlussfolgerung fort.
** Implementierungsregeln ** lauten ungefähr wie folgt.
** Ausführungsumgebung ** (Windows)
OS | Windows 10 Home (64bit) |
---|---|
WSL | Ubuntu 18.04.4 LTS |
Shell th> | bash td> |
** Ausführungsumgebung ** (Mac)
OS | Catalina 10.15.6 |
---|---|
Shell th> | zsh td> |
Als ich Student war, nahm ich an einem C-Sprachkurs teil und lernte ungefähr einen Monat bei der Aufnahmeprüfung einer Ingenieurschule namens 42Tokyo. Programmieren ist für mich das Bild der C-Sprache.
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
Referenz [Einführung in die C-Sprache] Verwendung von Zufallszahlen (Rand)
Ich habe C ++ studiert, um am Wettbewerb bei AtCoder teilzunehmen, einem Dienst, der wettbewerbsfähige Programmierwettbewerbe veranstaltet. Wenn Sie mit dem Programmieren beginnen, ist wettbewerbsfähiges Programmieren meiner Meinung nach eine großartige Einführung für diejenigen, die Rätsel mögen.
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
Referenz C ++ - Zufallszahlenbibliothek ist schwer zu verwenden 3. Python
Jeder liebt Python. Ich habe es kaum berührt. Die Menge der Beschreibung ist kleiner als die der C-Sprache. Es gab viele Referenzen.
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
Referenz Zufällige Brüche / Ganzzahlen, die von Python, Random, Randrange, Randint usw. generiert wurden [Python] Datentypen und Casts Python-Tipps: Ich möchte eine Zeichenfolge ohne Zeilenumbrüche ausgeben Python Snippets
Ich arbeite an einem Rails-Tutorial. Ich habe diesen Artikel geschrieben, nachdem ich Heroku im Rails-Tutorial verwendet habe. Die Codemenge ist nur eine Zeile. Es fühlt sich an wie eine Haut, aber ich habe das Gefühl, dass die Ausführungsgeschwindigkeit langsam ist.
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
** Hinzugefügt am 2020.9.5 ** In den Kommentaren habe ich gelernt, wie man den Code etwas kürzer schreibt. Es ist kurz und erweiterbar (einschließlich Zahlen und Großbuchstaben).
python
puts (1..6).map{ [*"a".."z"].sample }.join
Referenz So generieren Sie eine zufällige Zeichenfolge in Ruby Ganzzahl und Zeichen mit Ruby konvertieren Array # sample (Ruby 2.7.0 Referenzhandbuch)
Es war fast das erste Mal, dass ich PHP über die Befehlszeile ausführte. Es ist erfrischend, der Variablen $ hinzuzufügen.
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
** Überarbeitet 2020.9.5 **
Der im Kommentar erwähnte Teil wurde korrigiert.
Die Anzahl der Zeichen in der generierten Zeichenfolge wurde auf 8 Zeichen => 6 Zeichen korrigiert
Keine Vervielfältigung => Korrigiert, um Vervielfältigung zu haben
Es war fast das erste Mal, dass ich PHP über die Befehlszeile ausführte. Die Codemenge beträgt tatsächlich eine Zeile.
Vor der Änderung </ summary>
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
Referenz [So führen Sie PHP über die Befehlszeile aus [Für Anfänger] Zufälliges Passwort in einer Zeile generieren
Ich habe es zum ersten Mal berührt. Es fühlt sich so an, als hätte ich Node.js verwendet, um JavaScript über die Befehlszeile auszuführen, anstatt Node.js. Ich habe JavaScript selbst ein wenig berührt, als ich Webproduktion studierte.
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
Referenz Wird aus der Einführung von Node.js in der WSL-Umgebung verwendet JavaScript-Reverse-Referenz, die beim Kopieren und Einfügen verwendet werden kann Zufallszahlen mit Javascript abrufen Zeichen mit JavaScript in ASCII-Code konvertieren
Ich habe es zum ersten Mal berührt. Ich hatte die schwerste Zeit mit dieser Implementierung, wahrscheinlich weil es im Grunde eine Sprache zum Erstellen von iOS-Apps ist. Ich bin der Meinung, dass Swift für Implementierungsinhalte wie dieses nicht geeignet ist.
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
Referenz [Swift] So generieren Sie Zufallszahlen So erhalten Sie die in Swift angegebene Indexzeichenfolge Verarbeitung wiederholen! Verwendung von while / for-Anweisungen in Swift [für Anfänger]
Das Shell-Skript wird jedes Mal von Google erstellt, wenn es für die Effizienz erforderlich ist, und nach 3 Tagen ist es eine Fähigkeitsstufe, die ich vergesse.
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
Referenz Zufällige Zeichenfolge generieren
Browser 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> |
Ich habe gerade den in Node.js implementierten Code in HTML eingebettet. Ich ignoriere die Methode, weil sie in einer HTML-Datei zusammengefasst ist. Wenn Sie sich vorerst bewegen, ist es in Ordnung. Aus der Sicht eines Amateurs ist JavaScript, das mit einem Browser ausgeführt werden kann, praktisch.
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>Generieren Sie eine zufällige Zeichenfolge mit 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>Generierter String=> </span>");
document.write("<span class = result>" + str1 + "</span>");
}
make_random_string();
</script>
</div>
<p>(a ~6 Zeichen mit Duplikaten von z)</p>
<p>console.Es wird auch im Protokoll angezeigt.</p>
</body>
</html>
Überprüfen Sie JavaScript (HTML eingebettet) mit einem Browser (Microsoft Edge)
Ich habe es auf einem Windows-Computer mit Ausnahme von Swift ausgeführt, aber dank WSL war es sehr einfach, die Umgebung einzurichten. Als ich ein Student war, fiel es mir schwer, eine C-Sprachentwicklungsumgebung auf einem Windows-Computer einzurichten. Darüber hinaus sind jetzt Cloud-IDEs wie AWS Cloud 9 verfügbar, und ich bin der Meinung, dass die Umgebung sehr gesegnet ist, da es relativ einfach ist, eine Entwicklungsumgebung auch für die gemeinsame Entwicklung mit Docker vorzubereiten.
Einfach und schnell von Hand. (Im folgenden Beispiel habe ich die Tastatur richtig gedrückt.)
$ heroku rename wojwpd-hello-app
Wenn Sie es tragen, können Sie ihm einen anderen Namen geben.
Außerdem denke ich, dass das Hinzufügen eines festen Wortes zum Präfix es nicht duplizieren wird.
$ heroku rename apple-hello-app
Es war eine gute Erfahrung, verschiedenen Sprachen ausgesetzt zu sein. Wenn Sie mit Hello World nicht zufrieden sind, können Sie eine zufällige Zeichenfolge als Ausgangspunkt für eine neue Sprache generieren.
das ist alles.
Recommended Posts