FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Allgemeines

[split] Jobangebot  Online-Namensgenerator

[split] Jobangebot  Online-Namensgenerator 2010-10-23 19:21
Fred
Bitte schön:
import java.util.Random; public class NameGenerator {     public static void main(String[] args)     {         String[] prefix = {"Arn", "Ger"};         String[] postfix = {"thor", "hard"};         Random r = new Random();         String a = prefix[r.nextInt(prefix.length)];         String b = postfix[r.nextInt(postfix.length)];         String name = a + b;         System.out.println("Herzlich Willkommen, " + name + "!");     } } Das Geld können Sie einem wohltätigen Zweck spenden.

RE: Jobangebot  Online-Namensgenerator 2010-10-23 20:57
BoTaS
Uh, in wie vielen Sprachen wollen wir das machen?
<?php echo name(); function name() { $pre = file("pre.txt"); $post = file("post.txt"); return trim($pre[rand(0, count($pre) - 1)]) . trim($post[rand(0, count($post) - 1)]); } ?> ----- pre.txt: Arn Ger post.txt: thor hard
Es muss wohl eine kompliziertere Sache gemeint sein?

RE: Jobangebot  Online-Namensgenerator 2010-10-23 21:14
Wulf
Da muss ich auch mitmachen.
Wer hat den Kürzeren? :-)

#!/usr/bin/perl @a = qw(Arn Ger Laura); @b = qw(thor hard -Ronja); print "Herzlich willkommen, $a[rand @a]$b[rand @b]!\n";

RE: Jobangebot  Online-Namensgenerator 2010-10-23 21:28
Dusty
Funktioniert in Python 2 und Python 3:

from random import choice pre = 'Arn Ger Bert'.split() post = 'thor hard wald'.split() print ('Herzlich willkommen, %s!' % (choice(pre) + choice(post)))
Auf Dateibasis:

from random import choice pre = open('pre.txt').read().strip().split('\n') post = open('post.txt').read().strip().split('\n') print ('Herzlich willkommen, %s!' % (choice(pre) + choice(post)))

RE: Jobangebot  Online-Namensgenerator 2010-10-23 22:27
BoTaS
echo -n `sort -R pre.txt | head -1` && sort -R post.txt | head -1

RE: Jobangebot  Online-Namensgenerator 2010-10-24 01:42
Anonymer User
Und weil die C-Sprachen an dieser Uni nicht so beliebt zu seinen scheinen:

#include <iostream> using namespace std; #define ACCLOW  0 #define ACCHIGH 1 unsigned int getRandom () { return (rand() % (ACCHIGH - ACCLOW + 1) + ACCLOW); } int main (int argc, const char * argv[]) { srand ( time(NULL) ); int rPre = getRandom(); int rPost = getRandom(); string prefix[2] = {"Arn", "Ger"}; string postfix[2] = {"thor", "hard"}; cout <<"Hallo "<<prefix[rPre]<<postfix[rPost]<<"."; }

RE: Jobangebot  Online-Namensgenerator 2010-10-24 12:03
NaZo
Oder per Datenbank, z.B. MySQL:

SELECT CONCAT(prefix, postfix) FROM prefix_table, postfix_table ORDER BY RAND() LIMIT 0, 1

RE: Jobangebot  Online-Namensgenerator 2010-10-24 12:43
UncleOwen
ORDER BY RAND()

Ist garantiert, dass sowas terminiert? … eine Gleichverteilung liefert?

RE: Jobangebot  Online-Namensgenerator 2010-10-24 13:19
NaZo
Nö!
ORDER BY RAND() combined with LIMIT is useful for selecting a random sample from a set of rows:
mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000;RAND() is not meant to be a perfect random generator. It is a fast way to generate random numbers on demand that is portable between platforms for the same MySQL version.
http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html#function_rand

RE: Jobangebot  Online-Namensgenerator 2010-10-25 01:26
Timon
Ich bin ja mehr für was logisches - also Prolog:

% (Dummy) Datenbasis prefix('Arn'). prefix('Ger'). postfix('thor'). postfix('hard'). % Eigentliches Programm name(A):-     prefix(B),     postfix(C).     string_concat(B,C,A). zufallsname(A):-     findall(B,name(B),C),     length(C,D),     E is random(D),     nth0(E,C,A),!. Die Anfrage ?- zufallsname(X). liefert dann das gewünschte Ergebnis (in die Variable X).
Neue Pre, bzw. Postfixe lassen sich leicht zur Laufzeit hinzufügen - unter der Verwendung von assert/1 bzw. entfernen mit retract/1
Bei größerer Datenbasis würde ich empfehlen die Liste mit Zufallsnamen nur bei Bedarf neu zu generieren und ansonsten für jede Anfrage die selbe Liste zu verwenden (Außer ihr habt zu viel Rechenpower - und/oder euch ist kalt).

Lizenz… sagen wir mal public domain :-)
Wer für gute Zwecke was spenden will darf das gerne tun :-P

RE: Jobangebot  Online-Namensgenerator 2010-10-25 01:44
Timon
SCNR:
[img]https://www.fb18.de/mybb/attachment.php?aid=457[/img]
[attachment=457]
Anhänge zufallsname.jpg

RE: Jobangebot  Online-Namensgenerator 2010-10-25 23:10
John Doe
Was fahrt ihr für schwere Geschütze auf? Ein einfacher NFA tut's doch auch.

[latex]N = (Q, \Sigma \cup \{ \epsilon \}, T, q_0, \{q_2\})[/latex]
[latex]Q = \{q_0, q_1, q_2\}[/latex]
[latex]\Sigma = \{Ann, Ger, thor, hard \}[/latex]
[latex]T = \{(q_0, Ann, q_0), (q_0, Ger, q_1), (q_0, \epsilon, q_1), (q_1, thor, q_1), (q_1, hard, q_1), (q_1, \epsilon, q_2) \}[/latex]

RE: Jobangebot  Online-Namensgenerator 2010-10-25 23:15
John Doe
Was fahrt ihr für schwere Geschütze auf? Ein einfacher NFA tut's doch auch.

[latex]N = (Q, \Sigma \cup \{ \epsilon \}, T, q_0, \{q_2\})[/latex]
[latex]Q = \{q_0, q_1, q_2\}[/latex]
[latex]\Sigma = \{Ann, Ger, thor, hard \}[/latex]
[latex]T = \{(q_0, Ann, q_0), (q_0, Ger, q_1), (q_0, \epsilon, q_1), (q_1, thor, q_1), (q_1, hard, q_1), (q_1, \epsilon, q_2) \}[/latex]

Ups, da sind noch paar Fehler am zu späten Abend.
Korrektur:
[latex]N = (Q, \Sigma, T, q_0, \{q_2\})[/latex]
[latex]T = \{(q_0, Ann, q_1), (q_0, Ger, q_1), (q_1, thor, q_2), (q_1, hard, q_2)\}[/latex]

Ist auch viel einfacher so.

RE: [split] Jobangebot  Online-Namensgenerator 2010-10-26 22:55
Marrow
Thread abgespalten und etwas aufgeräumt.

Edit: Achja, Ursprung hier

RE: [split] Jobangebot  Online-Namensgenerator 2010-10-27 00:59
Sarge
Auch wenn die Sprache sonst keiner mag, hier mal Scheme, zur Vollständigkeit, leider ohne Rekursion:
(define pre (list "Ger" "Ann" )) (define suf (list "hard" "thor")) (define namengenerator (string-append "Herzlich Willkommen " (list-ref pre (random (length pre))) (list-ref suf (random (length suf))) "!"))

RE: [split] Jobangebot  Online-Namensgenerator 2010-10-27 03:44
garou
hier mal Scheme, zur Vollständigkeit, leider ohne Rekursion:
…und hier nochmal mit Rekursion für beliebig lange Namen:
,open srfi-27 (define (rand-elem lis)   (list-ref lis (random-integer (length lis)))) (define (generate-name nameparts)   (complete-name "" nameparts)) (define (complete-name name nameparts)   (if (null? nameparts)       name     (complete-name (string-append name (rand-elem (car nameparts)))    (cdr nameparts)))) (define names '(("Ger" "Ann") ("hard" "thor") ("chen" "-Typ")))

RE: [split] Jobangebot  Online-Namensgenerator 2010-11-08 18:00
Timon
Man könnte bei der vorliegenden Spezifikation auch hervorragend den animalischen Willkür-Algorithmus anwenden. Für Stine haben sie den ja auch verwendet.

Man nehme einen Affen, und zwei Körbe - im ersten liegen Karteikärtchen mit Präfixen, im zweiten die Postfixe.
Sensoren erkennen den intendierten Ablauf, und entlohnen den Affen mit einer Erdnuss.
Um eine Erdnuss zu erhalten muss der Affe eine Karteikarte aus dem Präfix-Korb, und eine aus dem Postfix-Korb nehmen und anschließend in ein Fach legen, von dem aus ein Scanner automatisiert die Karteikarten einliest und das Ergebnis an die Web-Oberfläche sendet.

Eigenschaften des Systems:
* Nicht zufällig, aber verdammt willkürlich.
* Keine garantierte Laufzeit
* Sehr fehleranfällig
* Versterben des Affen führt früher oder später zum Deadlock.

Perfekt wenn man seine Kunden (z.B. Studenten) nicht mag.