Das ist der beste Weg zur Umsetzung Primzahl finden, algorithmen in Java? Wie machen wir Klassen-Bibliothek und verwenden Sie dann in Java?
Ich möchte library-Klassen in Java und verwenden Sie in Zukunft meine Programme. Ich möchte diese library-Klassen zu finden, die Primzahlen bis zu einer bestimmten Anzahl oder sogar die nächste Primzahl oder man kann sagen, lösen die meisten die basic Dinge im Zusammenhang mit Primzahlen.
- Ich noch nie eine Java-Bibliothek mit der Klasse. Mein Ziel ist es zu lernen, dies zu tun. Bitte helfen Sie mir, ohne, dass durch den Hinweis auf ein tutorial oder so etwas. Ich bin vertraut mit der netbeans IDE.
- Ich fand heraus, ein paar algorithmen wie Sieb des Eratosthenes und Sieb des Atkin. Es wäre toll, wenn Sie zeigen können, noch ein paar mehr solche effizienten algorithmen. Ich will Sie nicht, der beste zu sein, aber zumindest gut genug. Mein Ziel ist es, zu lernen, einige Dinge umzusetzen. Weil ich wenig praktische Programmiererfahrung ich will es tun, um meine Fähigkeiten verbessern.
- Mein Freund schlug mir vor, zu verwenden, Stream-Klassen, und er Sprach etwas über die Umsetzung, indem wir die Ausgabe einer Datei als Eingabe für ein anderes zu machen, meinen code rein. Ich wusste nicht, verstehen ihn sehr gut. Bitte verzeihen Sie mir, wenn ich nichts gesagt falsch. Was möchte ich Euch bitten, in diesem Punkt ist, ist, dass eine effiziente und OO Weg, das zu tun, was ich tun will. Wenn ja, bitte sagen Sie mir, wie zu tun, und wenn nicht bitte darauf hinweisen, auf eine andere Weise, es zu tun.
Ich habe Grundkenntnisse der Sprache Java. Was ich erreichen möchte durch dieses venture-Gewinn-coding-Erfahrung, weil das ist, was alle hier vermutet, "zu nehmen, kleine Dinge wie diese und lernen, auf meine eigenen"
danke an alle im Voraus
hinsichtlich
shahensha
BEARBEITEN:
In das Sieb des Eratosthenes und andere, die wir speichern müssen die zahlen von 2 bis n in eine Datenstruktur. Wo soll ich es speichern? Ich weiß, ich kann mit einer dynamischen Sammlung, aber nur eine kleine Frage...Wenn ich will, zum finden von Primzahlen in der Größenordnung von Milliarden oder noch mehr (ich werde Große ganze Zahl ohne Zweifel), aber all das wird gespeichert, in den Haufen richtig? Gibt es eine Angst vor dem überlauf? Selbst wenn es nicht klappt, wird es eine gute Praxis? Oder wäre es besser zum speichern der Telefonnummern oder der Liste (auf denen wir Aktionen ausführen, je nach Algorithmus) in eine Datei und access gibt es? Sorry, wenn meine Frage war zu noobish...
- Mit "basic knowledge" von Java, IMHO sollte man nicht den Fokus vor allem auf der Suche nach den besten, effizientesten algorithmen, sondern in der Lage sein, um Sie umzusetzen. Ich würde einen Algorithmus und implementieren Sie ihn. Versuchen Sie dann die Umsetzung der anderen algorithmen als auch. Danach können Sie wählen, welche arbeiten das beste für Sie.
- Ich denke, das sollten zwei Fragen. Eine über die Erstellung einer Bibliothek von Klassen und Erzeugung von Paketen. Die anderen, über die Implementierung ein Sieb in Java. Die zweite Frage ist wahrscheinlich schon beantwortet in einem älteren Beitrag (suchen, SO für Sieb des Eratosthenes).
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Sieb des Eratosthenes" ist gut-Algorithmus zum finden von Primzahlen. Wenn Sie google verwenden, finden Sie bereit-Implementierung in java.
Ich ' ll hinzufügen einige Gedanken zu diesem:
Beispielsweise, Sie in die Tat umsetzen können:
Keine streams in Sicht! Verwendet von streams, wie z.B. die Ausgabe zu der Konsole, umgegangen werden soll, die von Anwendungen, die mit Ihrer Bibliothek und nicht durch Ihre Bibliothek selbst. Dies ist, was ich meinte in meinem ersten Punkt darum klar, was Ihre Bibliothek macht, und nicht tun. Sie einfach erzeugen der Primzahlen; es ist bis an den Aufrufer zu tun, dann etwas abkühlen lassen, mit Ihnen.
Aber wenn Sie vergleichen, das Sieb des Atkin ist schneller als das Sieb des Eratosthenes:
http://en.wikipedia.org/wiki/Prime_number_counting_function Siehe auch diesen link, wo die verschiedenen Funktionen sind einfach und verständlich erklärt 🙂
Glück..
Gibt es keine solche Sache als "library class". Ich nehme an, du meinst, um eine Klasse in einer solchen Weise, ist es die Aufgabe in einer wiederverwendbaren Art und Weise. Die Art und Weise, dies zu tun ist, um eine saubere Schnittstelle - mit minimalem (wenn überhaupt) Bindungen zu anderen Bibliotheken oder zu Ihrer Ausführung Umgebung (deine main-Klasse etc).
Den beiden, die Sie erwähnen sind "gut genug". Für Ihre Zwecke müssen Sie nicht weiter suchen.
Nur Lesen aus dem System.in-und Schreibzugriff auf System.heraus und das ist es. Obwohl, in Ihrem Fall, es ist nichts zu Lesen.
Zu erreichen, was ich denke, ist Ihr Ziel, Sie müssen schreiben Sie eine main-Klasse, die hadles das execution-environment - main-Funktion initialisiert den Algorithmus, iterativ look für die nächste prime, und schreiben Sie es auf "System".aus. Natürlich müssen Sie eine weitere Klasse, die den Algorithmus implementieren. Es sollte enthalten den internen Zustand und bieten eine Methode zum Auffinden der nächsten Primzahl.
`IMO, halten beiseite die dachte, dass Sie eine Bibliothek (.jar-Datei, die nach meiner interpretation dieser Frage).
Fokus auf das erstellen eines einfachen Java-Klasse, die erste, wie hier:
Nun, der nächste Schritt; Umsetzung für größere Werte, Sie können immer mit BigInteger. SO Fragen die gleichen:
Lesen Sie alle Fragen im Zusammenhang mit BigInteger-Klasse auf, SO, BigInteger Tagged Fragen.
Hoffe, das hilft.