Καταχωρήθηκε 03 Σεπτέμβριος 2009 - 09:53
Και τα vista windows είναι, όταν βγήκαν τα xp λέγατε τα ίδια για τα 98 και τα NT.
Το θέμα είναι ότι τώρα έχουνε βγει τα 7 ενώ τα vista που με τόση άγνοια αποκλείονται από το σύνολο των windows βρίσκονται ήδη στο παρελθών, ήρθε η ώρα να πούνε τώρα οι ίδιοι για windows και 7.
Μην βάζετε τέτοιους λογικούς τελεστές ανάμεσα τους γιατί το δεύτερο είναι υποσύνολο του πρώτου είναι άσκοπα λόγια είναι σαν να λες if(a<10||a=1).
Όμως:
Άν τα vista εμφανίζονται με πολύ μεγάλη συχνότητα τότε θα μπορούσαμε να πούμε:
PC με (vista ή windows(εκτός των vista)) γιατί τα vista είναι συχνή περίπτωση άρα εξετάζουμε πρώτα αυτά και μετά όλο το υπόλοιπο σύνολο των windows.
Ας υποθέσουμε ότι έχουμε ένα σύνολο με strings char *s και ένα πίνακα char *p με δείκτες σε αυτά σε μια διαδικασία που ελέγχει αν κάποιο string ανήκει σε αυτό το σύνολο και σε ποίο.
Το mostpossiblestr δείχνει το πιο πιθανό string.
const char *s="string1\0string2\0string3\0"
const char **p={s,*s[8],*s[16]}
char *fastfind(const char *cmpstr,const char *mostpossiblestr){
int i;
if(strcmp(cmpstr,mostpossiblestr)==0){return mostpossiblestr;}
for(i=0;i<3;i++){if(strcmpr(p[i],cmpstr)==0){return p[i];}}
return 0;//not found
}
φυσικά αν ο πίνακας πιθανοτήτων των strings αλλάζει σπάνια (και ανάλογα με το μέγεθος του πίνακα των string) προτείνω μία συνάρτηση που θα κάνει αναταξηνόμιση τα strings με την σειρά των πιθανοτήτων εμφάνισης ώστε το πιο συχνά εμφανιζόμενο string να ελέγχετε πρώτο κλπ.
Τώρα η συνάρτηση ταξινόμησης δεν μου έρχεται στο μυαλό γιατί εξαρτάτε από το πως αλλάζει ο πίνακας των συχνοτήτων εμφάνισης (ίσως κατά την διάρκεια της σύγκρισης των string να γίνονται και στατιστικές αλλά δεν θέλω να γράφω και πολλά γιατί δεν τα διαβάζει κανείς έτσι και αλλιώς). Η συνάρτησή που ελέγχει τα strings ελέγχει 2 φορές το *mostpossiblestr.
Με άλλα λόγια
αντί για το περιττό a==1 στο if(a<10||a==1)
και το if(a<10)
(μόνο για να φανεί πιο ξεκάθαρα για μερικούς το γράφω αυτό δεν είναι c) if(a==1||a<10) δεδομένου ότι το 1 εμφανίζετε συχνά
φυσικά εδώ έχουμε σύγκριση αριθμών και όχι strings άρα το a<10 είναι μια οδηγία και όχι σύγκριση του a με το 1 το 2 το 3 το 4... μέχρι το 10 αλλά η λογική φαίνεται ξεκάθαρα ότι προτιμάμε το ένα υποσύνολο πιθανότερων περιπτώσεων πρώτα και μετά το υπόλοιπο.
Δηλαδή η έκφραση "windows και vista" είναι μια συντακτικά σωστή αλλά άσχημη γιατί θα ελέγξει για vista αν το λειτουργικό του αλλουνού δεν είναι windows (που είναι λογικά αδύνατο να συμβαίνει να έχει vista δεδομένου ότι δεν είναι windows)
Ελπίζω φέτος να πέρασα αρχές τηλεπικοινωνιών.
ΥΓ Έχει "και" ανάμεσα στα win και τα vista αλλά λέει ποία σύνολα περιλαμβάνει το σύνολο γνωστά λειτουργικά.
ΥΓ2 Θα της πάω 3.1 να μην ξέρει από που της ήρθε
ΥΓ3 Ναι έχω PC με 3.1
No comments.
“On the seventh day, God saw the world had already been outdated, so he did a god@heaven# emerge --sync && emerge --update world && exit."