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

Primzahlen finden: wie würdet ihr es machen ? (Seite 2)

Leser: 2


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
lichtkind
 2006-05-15 18:35
#66111 #66111
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
das ist coole idee taulmarill aber statt join kann an auch $" setzen :)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Strat
 2006-05-15 22:33
#66112 #66112
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=lichtkind,15.05.2006, 16:35]das ist coole idee taulmarill aber statt join kann an auch $" setzen :)[/quote]
das kann man zwar, will man aber nicht ;-)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
lichtkind
 2006-05-16 13:41
#66113 #66113
User since
2004-03-22
5680 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
mir ist noch eingefallen das in perl6 der ganze algoritmus sehr stark optimiert werden kann, nicht nur weil wir ja bloss bitarray brauchen, habe mal in früheren überlegungen gemerkt das wir ja zum speichern der primzahlen nur einne packed bit array brauchen der 5 byte je 100 zahlen abstellt. statt jetzt 200 oder 400 byte je 100 zahlen. das kommt daher das primzahlen ja (bis auf die erste dekade) nur auf 1,3,7,9 enden können wir also nur ein nibble brauchen um eventuelle primzahlen zu speichern. macht 5 byte je 100.

die andere sache bezog sich auf vermeidung das eine zahl sooft markiert wird wieviele teiler sie hat, aber ich bin mir noch nicht sicher ob das wirklich effektiv ist, da einfache iterierung sehr billig sind da man statt

>$sieb[$i*$_] = 1 for 2..int $max/$i;

auch schreiben kann:

>$sieb[$j] = 1 for (my $j=$i; $j <= int $max/$i; $j += $i);

in perl6 auch

> $sieb[$_] = 1 for $i*2..int $max/$i :by($i);

wobei für alle zahlen ausser 2 noch die leicht optimierte version

> $sieb[$_] = 1 for $i*$i..int $max/$i :by($i*2);

hilfreich sein kann.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Matze
 2006-05-16 17:54
#66114 #66114
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
Bin gerade noch auf etwas gestoßen das hier jetzt nicht rein gehört, aber vielleicht auch schnell mit einem Modul gelöst werden kann und ich nur nicht weiß wie oder welches.

Und zwar möchte ich an ein Modul etwas übergeben, genauso wie man auch tags übergeben kann, nur möchte ich es gerne in einer Variablen abspeichern.

Kann man das vielleicht mit dem Exporter auch machen ?
Oder was würdet ihr mir empfehlen ?

Wie ist es eigentlich mit den packages ?
Könnte man aus einem Modul heraus auch auf main zugreifen ?
Das würde das ganze erheblich leichter machen ?

MfG. Matze
Mit freundlichen Grüßen: Matze
pq
 2006-05-16 18:14
#66115 #66115
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
1. was meinst du mit "tags übergeben"?
2. aus einem modul auf %main zugreifen halte ich für ganz schlechtes design.
es geht zwar (in perl kann man sich halt sehr einfach in den fuß schießen), aber
man sollte es nicht tun.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Matze
 2006-05-16 18:21
#66116 #66116
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
zu 1) du kennst du bestimmt den Exporter.
und man kann doch auch %EXPORT_TAGS festlegen also dachte
ich mir das ich nach dem Prinzip wie es auch der Exporter macht
selbst anderes abfangen könnte.

zu 2) ich habe auch nicht die erste Methode von renne sondern
seine zweite(glaub ich) mit dem Funktionsaufruf genommen, da mir
das auch besser schien.

Wie gesagt, hat renne ja schon beantwortet in dem anderen Thread.

MfG. Matze
Mit freundlichen Grüßen: Matze
renee
 2006-05-16 18:43
#66117 #66117
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Es gibt auch die import-Funktion...

Skript:
Code: (dl )
1
2
3
4
5
#!/usr/bin/perl

use Modul qw(importierterWert);

print "ende";


Modul.pm
Code: (dl )
1
2
3
4
5
package Modul;

sub import{
print $_ for(@_);
}


War es das was Du meinst @Matze?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2006-05-15 14:13.