Σκιώδη Παραλειπόμενα

του
Κώστα Βουλαζέρη

Αρχείο | RSS Feed

Αναζήτηση Μυστηριακές ΟντότητεςΠαλιά Ελληνικά Εξώφυλλα

Τυχαία

Μια στιγμή...
5 / 3 / 2020

Τελευταία ασχολούμαι με προγραμματισμό πολύ περισσότερο απ’ό,τι παλιά (ίσως να έχω κολλήσει κάποιο μικρόβιο) και έτυχε να παρατηρήσω κάτι που κι αρκετοί άλλοι προγραμματιστές έχω διαβάσει ότι έχει τύχει να παρατηρήσουν: Πολλοί τυχαίοι αριθμοί που βγάζουν οι υπολογιστές δεν είναι αρκετά τυχαίοι.

Αλλά ορισμένες φορές θέλω να βάλω το μηχάνημα να μου δώσει μια σειρά από τυχαίους αριθμούς που δεν μοιάζουν στημένοι. Οπότε, κάθισα και έγραψα ένα δικό μου random seed.

Το random seed, για όσους δεν ξέρουν, είναι ένας δεκαδικός αριθμός της μορφής μηδέν-κόμμα-κάτι (πχ, 0,234554) ο οποίος αλλάζει κάθε τόσο. Το πιο απλό είναι να βάλεις το σύστημα να τον φτιάχνει βάσει των κλασμάτων του δευτερολέπτου κάθε δεδομένη στιγμή.

Μετά, το seed το πολλαπλασιάζεις με τον μέγιστο και τον ελάχιστο αριθμό που θες να πάρεις – πχ, από 1 έως 10. Έτσι, τελικά, έχεις μια υπολογιστική λειτουργία σαν αυτή (περίπου ίδια σ’όλες τις γλώσσες προγραμματισμού): seed * (max - min) + min. Και όλο αυτό το κάνει floor, δηλαδή το στρογγυλοποιήσεις προς τα κάτω. Πχ, αν έρθει 10,6 γίνεται 10. Επομένως, η λειτουργία καταλήγει να είναι κάπως έτσι: floor(seed * (max - min) + min).

Και αυτό, αν είναι καλοφτιαγμένο το seed, φαίνεται να βγάζει αρκετά σωστά αποτελέσματα. Πχ, του βάζεις να σου δώσει 20 τυχαίους αριθμούς από το 1 έως το 10, και βλέπεις όλους τους αριθμούς να παρουσιάζονται χωρίς πολλές ομοιότητες μεταξύ τους. Τουτέστιν, καλή διασπορά.

Μετά, όμως, αν του βάλεις να σου δώσει μεγαλύτερους αριθμούς – πχ, από το 1 έως το 245 – βλέπεις να αρχίζουν κάποια προβλήματα. Ορισμένοι αριθμοί δεν εμφανίζονται ποτέ. Και, θα μου πει, πού το πρόσεξες μέσα σε τόσο μεγάλους αριθμούς; Και η αλήθεια είναι πως είναι δύσκολο να το προσέξεις.

Το πρόσεξα επειδή έχω φτιάξει ένα πρόγραμμα που σου παρουσιάζει τυχαίες εικόνες. Και κάποιες δεν εμφανίζονταν ποτέ, όταν ήταν πολλές. Έψαξα, λοιπόν, και βρήκα τους αριθμούς των εικόνων που δεν εμφανίζονταν, και δοκίμασα το seed για να δω πόσες φορές μπορεί να σου δώσει αυτούς τους αριθμούς. 500 φορές το έβαλα να βγάλει αποτελέσματα. Και ξανά. Και ξανά. Και πάλι αυτοί οι αριθμοί δεν εμφανίζονταν.

Γιατί;

Μετά, το βρήκα. Έτσι μου φαίνεται, τουλάχιστον. Φταίει το floor – η στρογγυλοποίηση προς τα κάτω.

Μπορείς, όμως, να του βάλεις να στρογγυλοποιεί τον αριθμό, όχι προς τα κάτω, αλλά προς τον κοντινότερο ακέραιο. Πχ, το 80,3 να γίνεται 80, αλλά το 80,6 να γίνεται 81. Εδώ όμως, σύμφωνα με τις κλασικές υπολογιστικές λειτουργίες τύπου «seed * (max - min) ) + min» παρουσιάζεται ένα άλλο πρόβλημα. Αν του βάλεις, πχ, να σου δώσει αριθμό από 1 έως 10, μπορεί να σου δώσει και 0, ή και 11. Κατά τα άλλα, η διασπορά είναι καλή.

Πώς να αποφύγεις το ελάχιστο - 1 και το μέγιστο +1;

Η καλύτερη απάντηση σ’αυτό σκέφτηκα πως είναι ένα απλό loop. Και το ξέρω ότι αυτά είναι «κινέζικα» για όσους δεν ξέρουν από προγραμματισμό. Το loop είναι μια διαρκής επανάληψη της υπολογιστικής λειτουργίας μέχρι να συμβεί κάτι μέσα στο σύστημα. Οπότε, εδώ πρέπει να βάλεις να κάνει loop μέχρι που το αποτέλεσμά σου να μην είναι ελάχιστο-1 ή μέγιστο+1.

Το δοκίμασα και είδα πως η διασπορά βγαίνει καλή.

Οπότε, η υπολογιστική λειτουργία είναι κάπως έτσι:

num = ROUND(seed * (max - min) + min)
loop until (num > min-1) and (num < max+1)

Είναι καλύτερο από το άλλο; Φαίνεται, πάντως, να έχει καλύτερη διασπορά – βλέπω πιο πολλές τυχαίες εικόνες να βγαίνουν απ’ό,τι έβγαιναν πριν – αλλά δεν είναι πολύς καιρός που το έχω δοκιμάσει.

Θα δείξει...

 

 

Επίσης . . .

Βιβλιοκριτική: Swords and Deviltry· Swords Against Death, του Fritz Leiber


Έχω δύο ανθολογίες που περιλαμβάνουν, συνολικά, όλες τις ιστορίες του Fritz Leiber με τον Fafhrd και τον Gray Mouser. Παλιότερα, είχα διαβάσει μια ιστορία από τη δεύτερη ανθολογία· δεν θυμάμαι ποια ακριβώς, αλλά θυμάμαι ότι μου άρεσε. Τώρα, αποφάσισα να διαβάσω και τις δύο ανθολογίες, ξεκινώντας από την πρώτη, κανονικά.

Έχω ακούσει πολλά για τον Fritz Leiber, ειδικά για τις ιστορίες του με τον Fafhrd και τον Gray Mouser στην Lankhmar, και μάλιστα από διάφορους γνωστούς συγγραφείς (όπως Moorcock, για παράδειγμα). Οι περισσότεροι φαίνεται να τον θαυμάζουν: ίσως να τον θεωρούν και κάτι το ιδιαίτερο. Αυτό είχε δημιουργήσει μέσα στο μυαλό μου μια κάποια εντύπωση για τον Leiber η οποία δεν βγήκε πραγματική, δυστυχώς. Δεν απογοητεύτηκα ακριβώς από όσα που έχω διαβάσει ώς τώρα, αλλά δεν ήταν και εκείνο που περίμενα. Περίμενα κάτι που θα με συνεπάρει και θα με ξαφνιάσει όπως το Amber του Zelazny· όμως δεν είναι τέτοιο πράγμα. Όχι για εμένα, τουλάχιστον.

Μέχρι στιγμής έχω διαβάσει τα πρώτα δύο βιβλία – το Swords and Deviltry και το Swords Against Death – δηλαδή, τη μισή πρώτη ανθολογία. Αυτά τα δύο βιβλία, φυσικά, περιλαμβάνουν διάφορες ιστορίες, διάφορες περιπέτειες του Fafhrd και του Mouser. Μην ξεχνάτε ότι ο Leiber έγραφε για περιοδικά, οπότε υποχρεωτικά οι ιστορίες είναι μικρού μήκους η καθεμία· όμως είναι πολλές. Και εδώ δεν είναι τοποθετημένες με τη σειρά που τις έγραψε ο Leiber, αλλά με την ιστορική τους συνέχεια – έτσι όπως ο Leiber τις κατέταξε ύστερα από χρόνια. Οι ιστορίες, όμως, που είχε γράψει παλιότερα διαφέρουν αρκετά από τις νεότερες – και το καταλαβαίνεις εύκολα ότι γράφτηκαν πριν. Αυτές οι παλιότερες ιστορίες είναι απλές περιπέτειες όπου δυο τυχοδιωκτικοί ήρωες συναντούν κάτι παράξενα ή επικίνδυνο, ή και τα δύο μαζί, και κάπως το προσπερνάνε ή το κατατροπώνουν, και συνεχίζουν τον δρόμο τους, πηγαίνοντας σε άλλες περιπέτειες. Οι νεότερες ιστορίες μοιάζει να έχουν περισσότερο υπόβαθρο και να ασχολούνται πιο πολύ με τον κόσμο γύρω από τους ήρωές μας, καθώς και με το ποιοι πραγματικά είναι αυτοί, και τι θέλουν. Γενικά, είναι πιο γεμάτες, ας πούμε, από πληροφορίες. Οι δύο πρώτες ιστορίες, δε, στο Swords and Deviltry είναι ξεκάθαρα ιστορικό υπόβαθρο του Fafhrd και του Mouser· και είναι και οι δύο αρκετά καλές. Προσωπικά, προτιμώ αυτή του Mouser: είναι τρομερά διαβολική και ατμοσφαιρική. Αυτή του Fafhrd είναι... έτσι κι έτσι· και νομίζω ότι κάποιος θα μπορούσε να την ονομάσει ακόμα και «μισογύνικη» με όλες αυτές τις «καταπιεστικές γυναίκες-μάγισσες» της φυλής του Fafhrd· αλλά δεν πιστεύω ότι η πρόθεση του συγγραφέα ήταν τέτοια.

Το γεγονός, όμως, ότι μπλέκει ιστορίες που έγραψε παλιότερα με ιστορίες που έγραψε μετά δημιουργεί κάποια κενά, ίσως και κακώς εννοούμενες παραδοξότητες. Αν και καταφέρνει αρκετά καλά να συνδέσει μεταξύ τους όλες αυτές τις ιστορίες που έγραψε σε διαφορετικές χρονικές περιόδους, σου δίνεται η εντύπωση ότι μερικά πράγματα δεν δένουν ακριβώς. Και το πιο χτυπητό είναι ότι στην πρώτη ιστορία με τον Gray Mouser – αυτή την ιστορία που μου άρεσε πάρα πολύ – ο Mouser είναι μάγος, και κάνει μάλιστα κάποιες πολύ διαβολικές και ισχυρές μαγείες. Στις επόμενες ιστορίες, ωστόσο, δεν φαίνεται ο Mouser να έχει καμία μαγική γνώση! Πώς είναι δυνατόν αυτό; Εγώ περίμενα ότι κάπου και στις επόμενες περιπέτειες ο Mouser θα έκανε κάτι το μαγικό. Μετά από δύο ολόκληρα βιβλία, όμως, δεν έχει κάνει τίποτα...

[Συνέχισε να διαβάζεις]

 

Επιλογές Σεπτεμβρίου (22/9)


Η «σατανική» Σταχτοπούτα του Netflix — Έξι Μέρες στον Luna One — Solarpunk πραγματικότητα — Η «κοσμική αμνησία» των μαύρων τρυπών — Το κρυφό περιοδικό επιστημονικής φαντασίας — Ιστορίες με λυκανθρώπους (1828-1931) — Οι παράξενες ιστορίες του Bertram Atkey — Ιστορίες με τρολ — Professor H's Wayback Machine — Η Αλίκη στη Χώρα των Θαυμάτων της επιστημονικής φαντασίας — Εικονογραφήσεις του Harry Clarke για τα παραμύθια του Hans Christian Andersen — Paul Vincent Woodroffe (1875–1954) — Ντοκιμαντέρ για την επιστημονική φαντασία και άλλα σχετικά — 10 B-movies επιστημονικής φαντασίας — Symphonie Fantastique — Ένα παλιό βιβλίο «μεταμορφώσεων» — Η τέχνη του Eugene Tssui — Zendik Farm Arts Commune — King Gizzard & The Lizard Wizard — και πολύ περισσότερα έρχονται στο LinX

 

Το Σκοτάδι Γελά — Το Κλεμμένο Βασίλειο, Τόμος 2


Έχοντας πάρει την πόλη της Όσβελακ από τα χέρια των ανθρώπων της Σφετερίστριας, ο Πρίγκιπας Κάλνεντουρ ωλ Κάρνελεκ, η Κόμισσα Χάνκαθιρ αλ Νασόλντουν, και οι σύντροφοί τους βλέπουν ξεκάθαρα ότι ο πόλεμός τους για την ανάκτηση του Βασιλείου τώρα αρχίζει – ένας πόλεμος άμεσα συνδεδεμένος με την ίδια τους την επιβίωση. Στρέφουν το βλέμμα τους προς τη Βορσίραθ, στις Κάτω Ακτές, και επιδιώκουν να επιστρατεύσουν συμμάχους προκειμένου να αντιμετωπίσουν την απειλή που αντιπροσωπεύει.

Ο Κάλνεντουρ ταξιδεύει με τον Έλκερθιν τον Θανατογέννητο για να συναντήσει ένα χαμένο παιδί του και για να τον βοηθήσει να συγκεντρώσει μαχητές από τους παρανόμους του Βασιλείου... ένας από τους οποίους αποδεικνύεται παλιός γνωστός του Πρίγκιπα και του δίνει κάποιες απαντήσεις για το αινιγματικό παρελθόν του.

Η Λοτρίνθα ωλ Νάλδεκερ, μαζί με τον Ραμάλθιν αλ Ένερκαβ και τη Σιράλια’χοκ ωλ Κίριβεμ, οδηγείται στη γενέτειρά της από τον Αρχικαλεστή του Πεπρωμένου και τους ακόλουθούς του, όπου κίνδυνος καραδοκεί για εκείνη πίσω από κάθε σκιά. Ο πραγματικός κίνδυνος, όμως, που πρέπει να φοβάται δεν είναι αυτός που νομίζει...

Και η Χάνκαθιρ αλ Νασόλντουν, η Κόμισσα των Σκιών, ερευνά το παρελθόν της Κομητείας της προκειμένου να ανακαλύψει τα μυστικά των Σκοτεινών Ακόλουθων: και καταλήγει σε μέρη που δεν φανταζόταν ότι μπορεί να υπήρχαν.

Ενώ ο Πρίγκιπας Κάλνεντουρ και οι σύμμαχοί του παλεύουν για την απελευθέρωση του Βασιλείου από τα δεσμά της Ζώθμαλιρ αλ Μακμάρνουν, πίσω από τον αγώνα τους μια δύναμη που έχει τραφεί από το μίσος και την απόγνωση απλώνεται σαν μόλυνση που αποσκοπεί να τους καταστρέψει όλους...

Κατεβάστε το