Log in

View Full Version : Έλα οι μαθηματικοί και οι προγραμματιστές



locust
02-07-2009, 22:05
Αν έχω καποιο string το οποίο με κάποιο αλγόριθμο κωδικοποιείται σε άλλο string, πώς μπορώ να βρώ ποιός είναι αυτός ο αλγόριθμος δεδομένου ότι μπορώ να κάνω άπειρες προσπάθειες?
Ο κάθε χαρακτήρας πέρνει την ίδια αξία ανάλογα με την θέση που έχει στο string, απο την 17η θέση και μετά οι αξίες επαναλαμβάνονται.
πχ



a = E7
aa = E748
aaa = E74841
aaaa = E74841E1
aaaaa = E74841E1AD
ab = E74B
aba = E74B41


για πείτε.

Harbinger of Death
02-07-2009, 22:40
Εσύ πες περισσότερα.

locust
02-07-2009, 22:40
μπορεί αυτή η λογική να μεταφραστεί σε αλγόριθμο?

Harbinger of Death
02-07-2009, 23:02
Πες περισσότερα για τη λογική ντε. Αλγόριθμος σίγουρα θα υπάρχει, εκτός αν κάποιος σου κάνει πλάκα. Το πως θα τον βρεις, και αν, είναι άλλο θέμα.

wom
02-07-2009, 23:03
μπορεις να φτιαξεις ενα προγραμμα που με το input που θες να φτιαχνει το string που εχεις παρατηρησει.
Φτιαξε πχ ενα lookup table με σειρα 17 τιμες ανα input character που λες και ολο αυτο επι οσους characters θες και μια function που θα βουταει εκει μεσα και τελειωσες.

Αλλιως μπορεις εαν εχεις καποιου το προγραμμα που το κανει ηδη, να κανεις debug και να τον αναπαραγεις (απο assembly)

Τι θες να κανεις, παλι δουλευεις για την εταιρια τσαμπα??

Edit: αν εβγαλα ακρη με την περιγραφη σου στο γραφω σε oracle που γουσταρεις

CREATE TABLE Z_LOOKUP_BOX
AS
SELECT 'a' input, 1 position, 'E7' output FROM DUAL
UNION
SELECT 'a' input, 2 position, '48' output FROM DUAL
UNION
SELECT 'a' input, 3 position, '41' output FROM DUAL
ktl ktl ktl οσα values ξερεις

και μετα φτιαξε μια function που για καποιο input string ανα character κανει Loop και κανει select απο το table να βρει το Output και τα κολλαει ολα μαζι.

locust
02-07-2009, 23:14
ε κλασσικά δουλεύουμε τζάμπα. Την έχω κάνει την υλοποίηση, η ερώτησή μου είναι αν μπορώ την λογική που περιέγραψα παραπάνω να την μετατρέψω σε αλγόριθμο ώστε να το γράψω στα specifications. Δεν μπορώ να το εξηγήσω καλύτερα

wom
02-07-2009, 23:25
o αλγοριθμος ειναι: input, position και βρισκεις το output με βάση το table σου

Αφου θες formality εγω πιστευω οτι εχεις φτιαξει ενα lookup table (http://en.wikipedia.org/wiki/Lookup_table) για τον Caesar's shift cipher (http://en.wikipedia.org/wiki/Caesar_cipher) σου

edit: Εαν οι τιμες που δινεις εχουν σχεση μεταξυ τους μπορεις να το κανεις με function γενικα, την καθε τιμη ανα θεση πως την αποφασισες?

locust
02-07-2009, 23:31
ωραίος, έριξα μια ματιά στο άρθρο για το lookup table, φαίνετε χρήσιμο, θα το ψάξω καλύτερα αύριο γιατί κοιμάμαι όρθιος.

wom
02-07-2009, 23:41
καλα, εαν οι τιμες που δινεις ειναι οτι ναναι βαλε το Lookup table.

Αλλιως μπορεις να φτιαξεις κατι πχ εαν εχεις το 'α' εφαρμοσε καποιες πραξεις με βαση την θεση που εισαι (nPointer) μεσα στο strText

strText = "douleuw_mera_kai_nykta"  
For nPointer = 1 to Len(strText)
sCrypt= sCrypt & Chr(Asc(nPointer + Mid(strText, nPointer, 1)) XOR 17)
Next

φτιαξε τις μονες θεσεις με lookup και τις ζυγες με bitwise operations (XOR)

παλι της πλακας ειναι αλλα θα τους ψαρωσεις. Μετα ζητησε ρεπο ομως!

Harbinger of Death
02-07-2009, 23:48
Ντάξει, εγώ κατάλαβα ότι θες να βρεις τον αλγόριθμο που είναι άγνωστος. Πολλά κατασκοπικά βλέπω μάλλον. Πις άουτ.

BURNIN AMBITION
03-07-2009, 04:20
4