2016-05-05 15 views
1

Ich mache eine Gödel-Verschlüsselungssoftware, aber ich stehe vor einem Problem. Wie bekomme ich den Code nach der Verschlüsselung? Zum Beispiel ist die Gödel-Zahl für das Symbol 0 6 und die Gödel-Zahl für das Symbol = ist 5. Somit ist in ihrem System die Gödel-Zahl der Formel 0 = 0 2^6 × 3^5 × 5^6 = 243.000.000 .Konvertieren von Gödel-Code in Text

Hinweis: 2^6 Mittel 2 in Kraft 6.

//need to make 5+6 
     int equalsign = 5; 
     int n5 = 2; 
     int n6 = 59; 
     int final; 
     //do caluclations 
     final = (Math.Pow(2, 2) * Math.Pow (3, 5) * Math.Pow(5, 59)); 
     Console.WriteLine(final); 

Wie die 0 = 0 von 243 Millionen bekommen? Ich habe Probleme damit, einen Vorschlag wie man es macht oder für den Code?

final = (Math.Pow(2, 2) * Math.Pow (3, 5) * Math.Pow(5, 59)); 

Dies funktioniert nicht auch. Wie kann man das auch reparieren?

Dies ist Gödel Formel: Image 1

Antwort

1

Die allgemeine Idee ist, die Zahl final durch den aktuellen Primzahl p zu halten, Dividieren, solange sie durch gleichmäßig divisble p ist. Die Anzahl der Male, die Sie gleichmäßig durch jede Primzahl teilen können, gibt Ihnen die Befugnisse.

grob gesprochen Sie etwas wie das folgende Pseudo-Code suchen:

code = [] 
for each prime p: 
    c = 0 
    while final % p == 0: 
     c++ 
     final = final/p 
    code.append(c) 
+0

schön, dank .. aber gewohnt, dass der Prozess wie zu lang kompiliert werden. um das Ergebnis zu bekommen? Es ist vielleicht nicht möglich, es zu fühlen, wenn diese Zahlen 1 durch 1 hinzufügen, aber sagen wir, in einer Datenbank haben 500 verschlüsselte Daten. und es wird alle entschlüsseln, bevor es in der Show gezeigt wird. Wird das nicht zu lange dauern? – DezUp

+0

Ja, das ist ineffizient. Der Prozess der Umwandlung der Zahl "final" in die Folge von Zahlen aus dem Code ist genau ganzzahlige Faktorisierung. Dafür gibt es keinen bekannten polynomiellen Algorithmus. Es ist auch keine Verschlüsselung, daher ist es besser, diesen Prozess als "Entschlüsseln" zu bezeichnen als "Entschlüsseln". –

+0

Ich verstehe ... Weißt du irgendeinen Weg, die Zahl/den Wert/String für Menschen wirklich schwer verständlich zu machen, aber nur die Software, um sie zu verstehen? Ich habe versucht, md5, PAC 2 und einige Systeme wie das, aber es gibt viele Entschlüsselungs-Software/Websites online .. – DezUp