Portál AbcLinuxu, 10. května 2025 05:58

Dotaz: rand v Perlu

6.6.2009 11:56 smonty | Brno
rand v Perlu
Přečteno: 220×
Odpovědět | Admin

Ahoj, funkcí rand(11) si nechám vygenerovat číslo. Třeba 4.75629835698753. Mě zatímá ta čtverka, a sedmička. K tomu abych si do proměné uložil 4 mě napadlo ($x,$y) = split(/./,rand(11)); což bohužel nefunguje. Jak se dostat k té semičce mě ještě nenapadlo :-( má někdo nějaký rozumný nápad?

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.6.2009 12:42 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: rand v Perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já Perlem sice nehovořím, ale nestačilo by to číslo vynásobit deseti? Jestli z něj nadále chceš mít integer, tak stačí odříznout desetinnou část. Jestli to má být string, tak vzít první dva znaky.
6.6.2009 12:48 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: rand v Perlu
Tak jsem si na ten Perl sáhl :-)
my $x = rand(11);
print $x, "\n";
print int($x * 10), "\n";
print substr($x * 10, 0, 2), "\n";
6.6.2009 16:04 smonty | Brno
Rozbalit Rozbalit vše Re: rand v Perlu

Díky, tohle jsem si neuvědomil. Teprve se snažím perl učit...

Podle mého, když tedy rand hází řetězec, stačí ho osekat fcí substr a je vymalováno. Jsou tam mouchy jako když rand vygeneruje 10.něco a ořezáním dostanu 1... Ale to nevadí, to se zpraví ;-)

7.6.2009 09:10 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: rand v Perlu
$rand = rand 11;
$x = substr $rand, 0, index $rand, '.';
$y = substr $rand, index ($rand, '.') + 1, 1;
wamba avatar 6.6.2009 17:39 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: rand v Perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
($x,$y) = split(/\./,rand(11));
This would have been so hard to fix when you don't know that there is in fact an easy fix.
wamba avatar 6.6.2009 17:48 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: rand v Perlu
popř. ($x,$y) = rand(11) =~ /(.*)\.(.)/
This would have been so hard to fix when you don't know that there is in fact an easy fix.
6.6.2009 17:45 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: rand v Perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
btw, prečo práve 11?
my $rand = int rand 110;
$x = int $rand / 10;
$y = $rand % 10;
6.6.2009 21:45 smonty | Brno
Rozbalit Rozbalit vše Re: rand v Perlu

Je to úplně jedno. Učím se programovat v Perlu... ;-)

 

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.