Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7252[/thread]

Zufallszahlen generieren (Seite 3)



<< |< 1 2 3 4 5 >| >> 44 Einträge, 5 Seiten
Crian
 2005-09-14 12:27
#57644 #57644
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
@docsnyder: Ja, Du musst Dich etwas umgewöhnen, aber die Verwendung von $_ und @_ macht dann den Code wesentlich einfacher lesbar.

Am Anfang (ich kam auch von C und C++) habe ich es auch so gemacht wie Du, C-style for-loops und $_ und @_ gemieden, aber mit der Zeit entwickelt man ein Gefühl dafür und es ist inzwischen viel einfacher für mich, pq's Version zu verstehen als Deine.

Trotzdem kannst Du natürlich dabei bleiben es so zu machen, wie Du es machst. Und natürlich solltest Du keinen Code schreiben, der Dich selbst irritiert oder ein ungutes Gefühl hinterlässt. Aber Du kannst Dich ja mal vorsichtig auf die Möglichkeiten von Perl einlassen, wenn es Dir dauerhaft nicht gefällt, bleib beim C-Style =)

TIMTOWDI\n\n

<!--EDIT|Crian|1126686469-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
docsnyder
 2005-09-14 12:35
#57645 #57645
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@Crian

Yep, ich werd' mir Mühe geben ;o)

Gruß, Doc
esskar
 2005-09-14 12:49
#57646 #57646
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
was mich nur an der sache wundert
dass du für die zweite schleife auch for benutzt, da du $i in der schleife ja nicht brauchst, also wäre folgendes

Code: (dl )
1
2
3
4
while($n--) {
my $theNumber = int(rand(scalar(@numbers)) + 0.5);
print splice(@numbers, $theNumber, 1), "\n";
}


sinnvoller!?! auch für C!
docsnyder
 2005-09-14 13:19
#57647 #57647
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=esskar,14.Sep..2005, 10:49]was mich nur an der sache wundert
dass du für die zweite schleife auch for benutzt, da du $i in der schleife ja nicht brauchst, also wäre folgendes

Code: (dl )
1
2
3
4
while($n--) {
my $theNumber = int(rand(scalar(@numbers)) + 0.5);
print splice(@numbers, $theNumber, 1), "\n";
}


sinnvoller!?! auch für C![/quote]
Stimmt! Ist einfacher und lesbarer.

Gruß, Doc
Crian
 2005-09-14 14:38
#57648 #57648
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Was ich nicht verstehe, ist dieses int(rand(scalar(@numbers)) + 0.5);. Was spricht gegen rand @numbers?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
vayu
 2005-09-14 14:41
#57649 #57649
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
naja per

Code: (dl )
rand(scalar(@numbers))


kriegst du eine reelle Zahl zwischen 0 und scalar(@numbers)

mit dem int() davor rundet er die zahl auf eine ganze zahl.\n\n

<!--EDIT|vayu|1126694835-->
Crian
 2005-09-14 14:42
#57650 #57650
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
ja, aber wozu???
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
vayu
 2005-09-14 14:44
#57651 #57651
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
Quote
[behe3087@hyperion ~] $ perl -le "my @num = 0 .. 100;print rand(@num);"
67.613987230919


weil du per rand(@numbers) eine Kommazahl rausbekommst. er möchte doch aber ne ganze :)
Crian
 2005-09-14 14:48
#57652 #57652
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Grins ... hast Du mal probiert, was passiert, wenn Du eine Kommazahl als Arrayindex verwendest? Wir sind hier bei Perl ^^

Code: (dl )
1
2
3
4
5
C:\Daten\perl>perl
@array = 1..10;
print +(join ', ', $array[2.3], $array[2.5], $array[2.7], $array[rand @array]), "\n";
^Z
3, 3, 3, 1
\n\n

<!--EDIT|Crian|1126695053-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
vayu
 2005-09-14 14:50
#57653 #57653
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
hmmmm auf die "wilde" idee bin ich idT noch nicht gekommen ... wollt ja das meine programme funktionieren :P

aber MOMENT ... bin gleich zurück ^^
<< |< 1 2 3 4 5 >| >> 44 Einträge, 5 Seiten



View all threads created 2005-09-04 16:55.