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

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

Αρχείο | 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)

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

Θα δείξει...

 

 

Επίσης . . .

Η Ψυχεδελική Παράδοση στη Φανταστική Λογοτεχνία


Πριν από κάποιο καιρό, είχα γράφει ότι η φανταστική λογοτεχνία είναι αρκετά βασισμένη στη ρομαντική παράδοση. Αλλά, φυσικά, δεν είναι βασισμένη μόνο σ’αυτήν. Είναι εξίσου βασισμένη και στην ψυχεδελική παράδοση.

Όταν πολύς κόσμος ακούει για «ψυχεδελική παράδοση», συνήθως σκέφτεται δύο πράγματα – ή, ίσως, τρία. Το πρώτο είναι το ψυχεδελικό ρεύμα του ’60, με τους χίπηδες, τη ροκ μουσική, και όλα τα σχετικά. Το δεύτερο είναι τα ναρκωτικά – γενικά κι αόριστα – όπως έχει καταντήσει να ονομάζονται συλλήβδην όλες οι ψυχοτρόπες ουσίες. Αυτοί που σκέφτονται το πρώτο είθισται να το σκέφτονται με κάπως καλό τρόπο. Αυτοί που σκέφτονται το δεύτερο είθισται να το σκέφτονται ως κάτι το κακό. Τίποτα από τα δύο δεν είναι αλήθεια, ακριβώς· και τα δύο βασίζονται σε προκαταλήψεις.

Το τρίτο που μπορεί να σκέφτονται κάποιοι (πιο «ψαγμένοι») είναι η παράδοση του σαμανισμού, που ναι μεν υπάρχει και στα βιβλία του Καστανέντα αλλά είναι, ουσιαστικά, πολύ αρχαία παράδοση. Υπήρχε ακόμα και στην αρχαία Ελλάδα, φυσικά. (Τι νομίζετε ότι έκαναν στο Μαντείο των Δελφών; Έπαιζαν τάβλι;)

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

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

 

Επιλογές Νοεμβρίου (4/11)


RIP Patrick Stewart (X-Men, Star Trek, & άλλα) — RævJäger (μουσική: dungeon synth, ατμοσφαιρική, μελωδική) — Syd Mead (φουτουριστικοί πίνακες ) — Marigold Santos (σουρεαλιστική, ψυχεδελική τέχνη) — Οι αντιδράσεις στη διακοπή του AO3 — Συμπαντικός Τρόμος (Cosmic Horror) — Ταινίες με μάγισσες — Βαμπίρ του διαστήματος — MAME32 Plus! Plus! (παλιά, κλασικά Arcade) — Ζωγραφική φαντασίας στο heavy metal — Salvator Rosa (τέχνη) — Gray Morrow (κι άλλη τέχνη) — A. E. Van Vogt (σε κόμιξ) — Real-ESRGAN-ncnn-vulkan (μηχανή τεχνητής νοημοσύνης για μεγέθυνση εικόνων) — Πολλά ακόμα καταφτάνουν στο LinX

 

Περί Γραφής: Τελεία και ΟΧΙ Παύλα, Ξανά


Αυτό το άρθρο είναι συνέχεια του προηγούμενου: Τελεία και ΟΧΙ Παύλα. Εν μέρει, μου έδωσε έμπνευση να το γράψω κάποιος που ανέφερε κάτι σε ένα από τα σόσιαλ μύδια. Και λέω εν μέρει γιατί δεν χρειάζομαι ποτέ και πολλή έμπνευση για να γράψω για τη στίξη. Έχω μια σχέση αγάπης-μίσους μαζί της. Ξεκίνησα να γράφω ως τελείως άσχετος με τη στίξη, μην έχοντας ιδέα ποια θα μπορούσε ποτέ να ήταν η χρήση της άνω τελείας: ίσως ακόμα και του κόμματος. Έφτασα σε σημείο να νομίζω ότι έβαζα σωστά τη στίξη, αλλά απλά το νόμιζα μόνο. Και κατέληξα να συμπεράνω πόσο ανόητος είσαι όταν νομίζεις ότι «ξέρεις» τη χρήση της στίξης, και πόσο υποκειμενική μπορεί να είναι η στίξη. Αλλά όχι και στα πάντα. Υπάρχουν κι ορισμένα σταθερά πράγματα. Και υπάρχει και μια κάποια... αισθητική. Ναι, αισθητική.

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

Σχετικά με την παύλα μπορεί να υπάρξει ένα ερώτημα: Γιατί να μην κολλά επάνω στις λέξεις; Να, για παράδειγμα, δες τι γίνεται με όλα τα άλλα σημεία στίξης: κολλάνε επάνω στις λέξεις. Η παύλα γιατί να μην κολλά; Στο πηγάδι κατούρησε;

Το θέμα είναι το εξής: όλα τα άλλα σημεία στίξης (εκτός, ίσως, από το θαυμαστικό) είναι αρκετά παλιά. Η παύλα – εκτός αν κάνω τρομερό λάθος – είναι πιο πρόσφατη. Δεν υπήρχε παλιά. Και, παρότι ουσιαστικά συντακτικό σημείο στίξης (όχι σχολιαστικό, όπως το θαυμαστικό), είναι κάπως ιδιαίτερο, και έχει κατά καιρούς χρησιμοποιηθεί με διάφορους τρόπους. Ακόμα και σαν να ήταν σχολιαστικό!

Η παύλα, σε κάποια κείμενα, μπορεί να βρεθεί να αντικαθιστά μέχρι και την τελεία, ή μπορεί να μπαίνει και μαζί με την τελεία. Ή όπου αλλού μπορείς να διανοηθείς. Πολλοί πιστεύουν, δε, ότι χρησιμοποιείται απλώς για να τονίσει την επόμενη λέξη, ή φράση: ή τη λέξη, ή φράση, που κλείνεται ανάμεσα στις παύλες.

Επικρατεί μια σύγχυση.

Αλλά, στην πραγματικότητα, σύγχυση δεν υφίσταται. Είναι συντακτικό σημείο στίξης, ουσιαστικά, όχι σχολιαστικό.

Όλα τα άλλα σημεία στίξης κολλάνε επάνω στις λέξεις, ναι. Αλλά κολλάνε ανεξαιρέτως (πλην της παρένθεσης) στο τέλος της λέξης, ποτέ στην αρχή. Κόμμα, τελεία, άνω τελεία, ερωτηματικό, θαυμαστικό... τα έχετε δει ποτέ στην αρχή; Πάντα στο τέλος κολλάνε.

Και ρωτάω τώρα: Η παύλα πού κολλάει; Στην αρχή, ή στο τέλος;

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