Toon posts:

[perl script] Random een heel getal tussen 0-20

Pagina: 1
Acties:

Verwijderd

Topicstarter
Euj iedereen,

Ik wil onder linux een perl-script maken waarin d.m.v. een randomizer een heel getal wordt gegenereerd tussen de 1 en de 20. Ik heb de functie rand gezien, maar ik snap er helemaal geen FFFFFFF van hoe dat werkt. Ik kan ook nergens wat aan docu vinden. perldoc.com is down geloofik

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:47
int(rand 20)+1

Zou je even willen toelichten wat er zo moeilijk was aan de onderstaande tekst uit de perlfunc manpage? Zoniet, dan negeer ik je post voortaan.

rand EXPR
rand Returns a random fractional number greater than or equal to 0 and less than the value of EXPR. (EXPR be positive.) If EXPR is omitted, the value 1 is used. Automatically calls srand() unless srand() has already been called. See also srand().

Verwijderd

Topicstarter
Dat zal ik je uitleggen. Ik heb dit al wel eerder ergens gezien, maar ik vatte die
code:
1
int

op als een variabelesoort die ie retourneert. Dus ik dacht
code:
1
$variabele = rand 20+1'

en dan krijg ik een niet-rond getal. Het is gewoon een fout van mij, geef ik zo toe, maar ik vind het flauw om meteen zo'n reactie te geven. Het is een forum hiero, en daar stellen mensen vragen. Overigens werkt
code:
1
$variabele = int(rand 20) +1

wel! Bedankt!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:47
Op zaterdag 05 januari 2002 11:13 schreef CyberKnutselaar het volgende:
Het is gewoon een fout van mij, geef ik zo toe, maar ik vind het flauw om meteen zo'n reactie te geven. Het is een forum hiero, en daar stellen mensen vragen.
Ik heb je vraag dan ook beantwoord, maar mijns inziens stond het antwoord op deze vraag letterlijk in de handleiding. Het kan sowieso geen kwaad om bij het vragen om een oplossing voor een probleem te vermelden wat je al geprobeerd hebt (en wat daar het resultaat van was).

In jou geval had dat dus iets als dit moeten zijn: "Ik wil een willekeurig geheel getal tussen de 1 en de 20 genereren, maar als ik 'rand 20 + 1' uitvoer, krijg ik een kommagetal tussen de 1 en de 20 terug. Hoe rond ik dat getal af?"

Dan was al duidelijker geweest wat het probleem was, (wat dus niets met rand te maken had), maar dan nog had je zelf natuurlijk wel even in de perlfunc manpage kunnen zoeken op 'round' ofzo, waarna je vanzelf bij 'int' uitkomt.

Als je een probleem hebt, helpt het vaak al heel veel om de vraag zorgvuldig te formuleren. Meestal ligt de oplossing dan voor de hand. Ik stel het zelf erg op prijs, wanneer iemand een vraag stelt, dat deze eerst zelf over het probleem nagedacht heeft en zo goed mogelijk teruggebracht tot de kern, zodat het formuleren en localiseren van het probleem niet aan een ander overgelaten wordt. (Je ziet op dit forum nog wel regelmatig vragen als: "Dit is mijn code:", gevolgd door drie drie pagina's code en de vraag: "Waarom werkt het niet?").

Mijn tijd is net zo kostbaar als de jouwe, dus als je een vraag stelt, zorg er dan voor dat 'ie to-the-point en relevant is. Mijn kritiek is niet helemaal op jou vraag van toepassing, aangezien je 'm nog wel fatsoenlijk had geformuleerd. Als het me echt te gortig was geworden, had ik 'm nooit beantwoord.