Suchergebnisse

Suchergebnisse 1-30 von insgesamt 983.

  • Benutzer-Avatarbild

    Vigenere Cipher Bug

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @RodFromGermany Das ExpectedOut is korrekt. Wenn ich: Abc def! als input Text wähle, und mein key abc ist dann sollte der Output eigentlich Ace dfh! sein. (Da Verschiebung a=0, b=1, c=2 ... usw ist) Stattdessen bekomme ich aber Ace egf!. Mein ExpectedOut ist also nicht das Problem. Bei deinem Beispiel bekomm ich den Input wieder zurück, das passt also. Das Problem ist nach wie vor wenn nach dem Sonderzeichen (z.B. Leerzeichen) ein normales Zeichen kommt..

  • Benutzer-Avatarbild

    Vigenere Cipher Bug

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @RodFromGermany Wenn ich ein Space mit einer Verschiebung verschlüssele bekomme ich ein Space zurück. So solls auch sein. Nur der KeyIndex darf bei sonderzeichen nicht verändert werden. Ich blick nicht ganz wieso das nicht hinhaut.

  • Benutzer-Avatarbild

    Vigenere Cipher Bug

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    Wie bereits in dem vorring Post gennant: InKey: BananaZ , Das bedeutet: C#-Quellcode (1 Zeile) Oder was genau meinst du?

  • Benutzer-Avatarbild

    Vigenere Cipher Bug

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    Hey, Schreibe grade aus Spaß ein paar der alten Verschlüsselungs Cipher. Habe gerade Vigenere implementiert, mit Groß-Kleinschreibung Support. Das klappt auch, sofern der Text keine Spaces bzw andere Sonderzeichen enthält. Ich kriegs einfach nicht gebacken bei einem Space den KeyIndex nicht zu erhöhen ... Was mach ich falsch? C-Quellcode (25 Zeilen) InText: The quick brown fox jumps over the lazy dog! InKey: BananaZ ExpectedOut: Uhr qhibl beojn epx wuzpr pvrr ghd mamy qof! MyOutput: Uhr duhdk be…

  • Benutzer-Avatarbild

    Hey, Ich schreibe gerade eine Klasse für Operationen in einem finite field. Ich habe auch alle Operationen implementiert bekommen, allerdings nicht perfekt. Ich möchte das jede der Operationen:1. Overflowschutz hat, d.h. sollte die int.MaxValue überschritten, bzw die int.MinValue Grenze unterschritten werden. 2. Wenn möglich die BigInteger Klasse vermeiden. 3. Der Umgang mit negativen Werten soll funktionieren - und genau da haperts. Zur Kontrolle habe ich immer alle Werte mit Wolfram Alpha gech…

  • Benutzer-Avatarbild

    Modular Exponentiation Bug

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    Hey, Ich habe gerade versucht ModPow selbst zu implementieren, basierend auf den Erklärungen des Wikipedia Pseudocodes. Allerdings hat er einen Bug bei einem großen Modulus, und ich bekomm nicht raus was der Fehler ist? Kann mir jemand helfen? C#-Quellcode (21 Zeilen) Mein Unit-Test: C#-Quellcode (13 Zeilen) Bei folgendem Datensatz wird ein falsches Ergbnis returned: [InlineData(1337, 420, uint.MaxValue, 486672706)] Quellcode (2 Zeilen) Wenn ich das mit BigInteger.ModPow teste, wird das richtige…

  • Benutzer-Avatarbild

    @3daycliff $L$ ist int.MaxValue. Hast du eine Idee wie ich das overflow Problem lösen kann ohne long zu verwenden? Hintergedanke ist das ganze später auch für long Werte zu skalieren, und da hätte man dann das selbe Problem. C#-Quellcode (16 Zeilen)

  • Benutzer-Avatarbild

    Nicht das ist keine neue Aufgabenstellung. Ich habe zuvor erwähnt das ich iterieren durch trial and error eigentlich vermeiden möchte. Ich würde lieber einen zufälligen $a$ -Wert "errechnen". @3daycliff Ein sehr interessanter Ansatz. Das ist dem was ich möchte doch schon sehr nahe. Ich versuche gerade alles nachzuvollziehen. Ich weiß du hast das nur aus dem Kopf geschrieben, nichtdestotrotz habe ich folgendes festgestellt: Bei $r=0$ und bei $r > 1073741823$ (Das entspricht int.MaxValue/2) wird i…

  • Benutzer-Avatarbild

    Zitat von RodFromGermany: „@Rikudo Auf jeden Fall nicht mit yield. Mach Dir für die Laufvariablen l und b zufällige Startwerte im erlaubten Bereich und finde den nächsten.“ 1) $L$ ändert sich nicht, das wird später immer int.MaxValue sein. 2) Einen zufälligen Wert für $b$ habe ich ja bereits. Die Frage ist wie ich einen $a$ -Wert finde, der zufällig ist, ohne trial and error. Folgendes Beispiel: C#-Quellcode (24 Zeilen) Diese Funktion findet zwar ein gültiges Paar, aber da gibt es ein Problem. E…

  • Benutzer-Avatarbild

    Hey, Gegeben sei ein Integer $r$ sowie ein Limit $L$ . Finde zwei Integer $a, b$ so dass gilt $a \mod b = r$ . Dabei gilt $0 <= a, b <= L$ . Das habe ich auch soweit hingekriegt: C#-Quellcode (19 Zeilen) Ein Beispiel: Wählen wir $r=7$ und $L=16$ . Dabei erhalte ich folgende, gültige Kombinationen: Quellcode (11 Zeilen) Ich habe allerdings vor, aus all diesen Kombinationen nur eine zufällige zu berechnen, da es enorm viele Kombinationen gibt, wenn der Unterschied zwischen $r$ und $L$ groß ist. Mi…

  • Benutzer-Avatarbild

    Danke schonmal für eure Tipps @3daycliff @RodFromGermany @Rainman Das macht Sinn. Das heißt das meine Implementation quasi ausschließlich für uint zu verwenden ist. Wenn ich euch richtig verstanden habe muss ich, um signed int Werte zu unterstützen, das MSB nicht in den Shift mit einbeziehen. Folgendes Beispiel: Input: -123456 das wäre in Binary: 11111111111111100001110111000000 wobei das Rote bit das MSB darstellt (?) Bei einem Left Shift von 15 wäre das dann 10001110111000000111111111111110. D…

  • Benutzer-Avatarbild

    Hey, Ich bin dabei für Int32 und Int64 jeweils eine Ror bzw eine Rol Funktion zu schreiben. Das bedeutet nichts anderes als RotateRight bzw RotateLeft und ist anders als normale Shift-Operationen zyklisch, man hat also keinen Informationsverlust. Hier ein Bild zur Verdeutlichung: ueE82gJ.png Das wäre RotateLeft, RotateRight ist dementsprechend das gleiche in die andere Richtung. Hier ist mein Ansatz (der teilweise funktioniert): C#-Quellcode (9 Zeilen) Das Problem ist, nicht für alle Zahlen haut…

  • Benutzer-Avatarbild

    Return Linq Iterator

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @NoIde @Bluespide @VaporiZed Das problem mit diesen Ansätzen ist das die DetectValue Funktionen mehrfach aufgerufen werden. Um auf das Auto Beispiel Bluespide zurückzugreifen: Stell dir vor du hast 3 Autos in _items. Audi mit DetectValue 0, VW mit DetectValue 1, Mercedes mit DetectValue 2. Wenn ich das dann wie folgt ausführe: C#-Quellcode (2 Zeilen) Dann wird DetectValue von Audi 1 mal aufgerufen, von VW 2 mal und von Mercedes 2 mal. Das sollte doch eigentlich nicht notwendig sein oder?

  • Benutzer-Avatarbild

    Return Linq Iterator

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    Hm, bin mir nicht ganz sicher ob ich etwas offensichtliches übersehe, aber mir ist nicht klar wie man einen Linq iterator zurückgeben kann. Folgendes Bsp: C#-Quellcode (1 Zeile) Dieser Aufruf iteriert in _items, prüft holt sich von allen den Wert von DetectValue() und gibt davon den größten zurück. Wie kann ich aber das item/iterator selbst zurückbekommen, bei dem Detectvalue den höchsten Wert hat, anstatt nur des Wertes selbst?

  • Benutzer-Avatarbild

    Haha Hast du eventuell eine Idee wie man zuvor generierte Werte cachen könnte, und nur die "fehlenden" Primes generiert?

  • Benutzer-Avatarbild

    @exc-jdbi Du hast mich falsch verstanden Mein Code braucht 10 Sekunden für alle Zahlen von 1-1.000.000. Also eine Schleife von 1-1.000.000 und für jede Zahl wurden die Teiler berechnet. Ich werde jetzt mal deine Änderung benchmarken. Edit: Für int.MaxValue benötigt meine Klasse 10ms im Vergleich zu den 23ms von deinem Ansatz.

  • Benutzer-Avatarbild

    @exc-jdbi @RodFromGermany Danke für eure Antworten. Es lag daran das ich die Primzahlen bis n generiert habe. Dabei hat es ja gelangt nur bis (int) Math.Pow(n, 0.5) + 1 zu gehen. Jetzt ist das ganze schon mal um einiges schneller. Aber nach wie vor noch nicht maximal optimiert. Alle Teiler für die Zahlen von 1 bis 1.000.000 zu finden hat ~10.2 Sekunden gedauert. Ich habe noch zwei Ideen wie man eventuell noch einiges an Performance rausholen könnte. 1) Prime/Primefaktor Caching Zur Zeit werden f…

  • Benutzer-Avatarbild

    goto-Statement hier elegant?

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @φConst Guck dir das mal an bzgl nested loops: stackoverflow.com/questions/32…t-of-a-nested-loop#324837

  • Benutzer-Avatarbild

    @RodFromGermany Und eine Idee wo der Bug entsteht? Ich konnte es irgendwie nicht ermitteln. Die Primzahlfunktion scheint aber soweit intakt, zumindest als ich gedebugged habe waren alle Werte korrekt.

  • Benutzer-Avatarbild

    @RodFromGermany C#-Quellcode (95 Zeilen) Ich konnte noch nicht herrausfinden was für den Bug verantwortlich ist. Ich gehe davon aus es liegt entweder an der FindPrimeFactors oder an der FindDivisors Funktion.

  • Benutzer-Avatarbild

    Habs (mehr oder weniger) Irgendetwas stimmt noch nicht ganz. Manchmal schleichen sich falsche Teiler ein. Bspw für den Input 18 bekomme ich: wQzZog8.png Das passt nicht, 36 ist kein gültiger Teiler. Ebenso bekomme ich falsche Werte für manche höheren Zahlen wie 50, 90 etc

  • Benutzer-Avatarbild

    @RodFromGermany sieve ist einfach nur eine Variable. Ich habe den Code nochmal ein bisschen verbessert, da die Primzahlfunktion mehrfach invoked wurde. Das Hauptproblem in der Geschwindigkeit scheint meine FindPrimeFactors Funktion zu sein. Und zu deiner Anmerkung in Post #2, das ist falsch, ich muss schon for(int p = 2; p < sqrt; ++p) verwenden. Würde ich es so machen wie du gesagt hast lasse ich Zahlen die auch Teiler sein können.

  • Benutzer-Avatarbild

    @RodFromGermany In Python ist // die Flooring Division also bspw: 4.0 // 1.5 ergibt 2.0 Das Ändern des Loops beschleunigt ein bisschen, von 19s auf 16s, also scheinbar ist irgend etwas anderes die Große Bremse.

  • Benutzer-Avatarbild

    Hey, Ich möchte so effizient wie möglich alle Teiler eines gegebenen int finden. (Eventuell mit dem Hintergedanken das später auf long zu erweitern). Es gibt verschiedene Möglichkeiten dieses Problem zu lösen. Um das ganze jedoch so performant und effizient wie möglich zu machen, war die Idee zuvor Primzahlen auszuschließen. Man muss natürlich sagen der Begriff "effizient" ist hier nur relativ, da Primzahlfaktorisierung zu den NP-Vollständigen Problem gezählt wird. Ich habe im Internet recherche…

  • Benutzer-Avatarbild

    Overflow boundary checking

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @jvbsl @RodFromGermany @φConst Danke fuer die Tipps. Also irgendwie haut das nicht so ganz hin... Ich habe versucht auf Nan und Infinity zu pruefen aber das klappt nicht. C#-Quellcode (16 Zeilen) Wenn nicht so wie soll man es sonst pruefen. Muss doch irgendwie moglich sein. Ich wurde namlich gerne in die Funktion die @jvbsl geschrieben hat support fur floatingpoint types einfuegen. Fuer int's klappts ja bereits gut.

  • Benutzer-Avatarbild

    Overflow boundary checking

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @jvbsl Ich habe deine Loesung noch um den MinValue check erweitert, der hat noch gefehlt: C#-Quellcode (43 Zeilen) Mich wuerde trotzdem brennend interessieren wie man das noch erweitern kann das auch floatingpoint operations unterstuetzt werden, d.h. float und double.

  • Benutzer-Avatarbild

    Reverse Modulo Berechnung

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @exc-jdbi Danke fuer deine Antwort. Dein Beispiel deckt allerdings nur 0 - int.MaxValue / 2 ab. Kann man den restlichen Bereich nicht auch abdecken?

  • Benutzer-Avatarbild

    Overflow boundary checking

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @φConst hmmm okay. Wie wuerde man es denn fuer die anderen Datentypen testen? Bei float point operations kann man evtl auf positiv infinity oder negative infinity testen? Aber wieso funktioniert byte auch nicht? Seltsam.

  • Benutzer-Avatarbild

    Overflow boundary checking

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @φConst Das ist eigentlich recht clever, jetzt verstehe ich das auch. Allerdings scheint das ganze nicht sehr zuverlassig zu funktionieren. Hier ein Beispiel, das definitv overflowed aber die Funktion gibt false zuruck. Bei int und long scheint es zu gehen, bei byte, float und double irgendwie nicht so richtig, woran liegt das? C#-Quellcode (14 Zeilen)

  • Benutzer-Avatarbild

    Overflow boundary checking

    Rikudo - - Sonstige Problemstellungen

    Beitrag

    @φConst Danke deine generische Lösung ist auf jeden Fall interessant. Kannst du vielleicht noch erklären welche der vielen Interfaces in der Methodensignatur für was genau verwendet werdet werden, krieg das noch nicht so ganz in meinen Kopf ^^" Ist die Bedingung für Overflowchecks immer die Gleiche unabhängig von der Rechenoperation? Also was ist bspw mit Subtraktion statt Addition? Wenn ich die eine Zahl von der anderen abziehe um auf die Ursprüngliche Zahl zu kommen?