Suchergebnisse
Suchergebnisse 1-30 von insgesamt 983.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
Vigenere Cipher Bug
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..
-
Vigenere Cipher Bug
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.
-
Vigenere Cipher Bug
BeitragWie bereits in dem vorring Post gennant: InKey: BananaZ , Das bedeutet: C#-Quellcode (1 Zeile) Oder was genau meinst du?
-
Vigenere Cipher Bug
BeitragHey, 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…
-
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…
-
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…
-
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…
-
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…
-
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…
-
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…
-
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…
-
Return Linq Iterator
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?
-
Return Linq Iterator
BeitragHm, 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?
-
@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.
-
@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…
-
@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.
-
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…
-
@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.
-
@φ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)
-
@φ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?