Hamming

Hamming

Εύκολο

Εισαγωγή

Το σώμα σου αποτελείται από κύτταρα που περιέχουν DNA. Αυτά τα κύτταρα φθείρονται τακτικά και χρειάζεται να αντικατασταθούν, κάτι που το καταφέρνουν διαιρούμενα σε θυγατρικά κύτταρα. Στην πραγματικότητα, το μέσο ανθρώπινο σώμα βιώνει περίπου 10 τετράκις εκατομμύρια κυτταρικές διαιρέσεις σε όλη τη διάρκεια της ζωής του!

Όταν τα κύτταρα διαιρούνται, αντιγράφεται και το DNA τους. Μερικές φορές, κατά τη διάρκεια αυτής της διαδικασίας, γίνονται λάθη και μεμονωμένα τμήματα DNA κωδικοποιούνται με λανθασμένες πληροφορίες. Αν συγκρίνουμε δύο κλώνους DNA και μετρήσουμε τις διαφορές μεταξύ τους, μπορούμε να δούμε πόσα λάθη συνέβησαν. Αυτό είναι γνωστό ως "Hamming distance".

Η "Hamming distance" είναι χρήσιμη σε πολλούς τομείς της επιστήμης, όχι μόνο στη βιολογία, οπότε είναι μια ωραία φράση για να την ξέρεις :)

Οδηγίες

Υπολόγισε την απόσταση Hamming ανάμεσα σε δύο κλώνους DNA.

Διαβάζουμε το DNA χρησιμοποιώντας τα γράμματα C, A, G και T. Δύο κλώνοι μπορεί να μοιάζουν κάπως έτσι:

GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^  ^ ^    ^^

Έχουν 7 διαφορές, και επομένως η απόσταση Hamming είναι 7.

Σημειώσεις υλοποίησης

Η απόσταση Hamming ορίζεται μόνο για ακολουθίες ίσου μήκους, οπότε μια προσπάθεια υπολογισμού της ανάμεσα σε ακολουθίες διαφορετικού μήκους δε θα πρέπει να λειτουργεί.

Δεσμευμένες διευθύνσεις

Ο buffer για την πρώτη συμβολοσειρά χρησιμοποιεί τα byte 1024-2047 της γραμμικής μνήμης. Ο buffer για τη δεύτερη συμβολοσειρά χρησιμοποιεί τα byte 2048-3071 της γραμμικής μνήμης.

Δεν θα χρειαστεί να τροποποιήσεις αυτούς τους buffer ή να δεσμεύσεις επιπλέον μνήμη.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
WebAssembly Exercism

Έτοιμος να ξεκινήσεις την άσκηση Hamming;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις WebAssembly με 87 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.