Στη Βαυαρία, ένας συνολικός μέσος βαθμός \(2{,}33\) πιστοποιεί την καταλληλότητα για το Γυμνάσιο \(2{,}34\) όχι. Σε αυτό το απότομο όριο, η σειρά δύο στρογγυλοποιήσεων μπορεί να καθορίσει σε ποια πλευρά ανήκει ένα παιδί. Ο Günther Felbinger συζητά τις πιθανές συνέπειες αυτού του φαινομένου στρογγυλοποίησης σε μια ανάρτηση ιστολογίου . Από καθαρό ενδιαφέρον, υπολόγισα τα αποτελέσματα ο ίδιος σε όλους τους συνδυασμούς βαθμών που επιτρέπονται στο μοντέλο.
Το κεντρικό μου ερώτημα είναι: Πόσο συχνά η πρόωρη στρογγυλοποίηση σε βαθμούς ολόκληρου του μαθήματος οδηγεί σε διαφορετικό τύπο υπολογισμού του σχολείου από τους υπολογισμούς που χρησιμοποιούν μη στρογγυλοποιημένους μέσους όρους μαθημάτων; Επιπλέον, θα ήταν ενδιαφέρον να δούμε τι αλλάζει εάν οι μέσοι όροι των μεμονωμένων μαθημάτων (όπως προτείνεται εκεί) στρογγυλοποιηθούν αρχικά μόνο σε ένα δεκαδικό ψηφίο.
Σύμφωνα με το Άρθρο 6 του Κανονισμού Δημοτικών Σχολείων της Βαυαρίας, ο μέσος όρος βαθμολογίας υπολογίζεται από τους βαθμούς στα Γερμανικά, τα Μαθηματικά και τις Τοπικές και Γενικές Σπουδές. Οι εκτελεστικοί κανονισμοί καθορίζουν τα όρια έως και \(2{,}33\) και έως και \(2{,}66\) . Στο ακόλουθο μοντέλο υπολογισμού, κάθε συνολικός μέσος όρος περικόπτεται σε δύο δεκαδικά ψηφία και δεν στρογγυλοποιείται ξανά. Έτσι, για παράδειγμα...
\[
\frac{2{,}33+2{,}34+2{,}34}{3}=2{,}3366\ldots \longrightarrow 2{,}33.
\]
Αυτό είναι κρίσιμο για την ταξινόμηση: \(2{,}3366\ldots\) δεν γίνεται \(2{,}34\) , αλλά \(2{,}33\) και επομένως εξακολουθεί να επαρκεί για το δημοτικό σχολείο.
Η αρχική καταχώρηση απεικονίζει την πρώιμη στρογγυλοποίηση με τις υποτιθέμενες μέσες τιμές ανά θέμα \(1{,}6\) , \(2{,}6\) και \(2{,}6\) . Από αυτές, προκύπτουν πρώτα οι ολόκληροι βαθμοί \(2\) , \(3\) και \(3\) . Ο μέσος όρος τους είναι
\[
\frac{2+3+3}{3}=2{,}6666\ldots \longrightarrow 2{,}66,
\]
πράγμα που σημαίνει ότι ο μαθητής δεν πληροί τις προϋποθέσεις για άμεση εισαγωγή στο δημοτικό σχολείο. Χωρίς στρογγυλοποίηση σε ακέραιους βαθμούς, ωστόσο, το αποτέλεσμα στο υποθετικό παράδειγμα θα ήταν...
\[
\frac{1{,}6+2{,}6+2{,}6}{3}=2{,}2666\ldots \longrightarrow 2{,}26.
\]
Στο δεύτερο παράδειγμα, η στρογγυλοποίηση λειτουργεί προς την αντίθετη κατεύθυνση: \(2{,}4\) , \(3{,}4\) και \(2{,}4\) γίνονται οι τιμές ολόκληρων των νοτών \(2\) , \(3\) και \(2\) , επίσημα \(2{,}33\) . Οι μη στρογγυλοποιημένες τιμές, ωστόσο, έχουν ως αποτέλεσμα \(2{,}73\) . Τα παραδείγματα καταδεικνύουν ξεκάθαρα το αποτέλεσμα. Ωστόσο, δεν αποκαλύπτουν ακόμη πόσο συχνά συμβαίνει ή ποιες θα ήταν οι συνέπειες μιας διαφορετικής μεθόδου στρογγυλοποίησης.
Επομένως, για τον υπολογισμό μου χρησιμοποιώ έναν σαφή χώρο αποτελεσμάτων. Κάθε μέσος όρος υποκειμένου μπορεί να είναι μία από τις τιμές \(501\) μέσα σε αυτόν.
\[
1{,}00,\, 1{,}01,\, 1{,}02,\, \ldots, \, 5{,}99, \, 6{,}00
\]
Υποθέστε. Στάθμισα όλους τους διατεταγμένους συνδυασμούς Γερμανικών, Μαθηματικών και Τοπικών και Γενικών Σπουδών εξίσου. Έτσι, υπάρχουν
\[
501^3=125\,751\,501
\]
Περιπτώσεις. Το μοντέλο είναι επομένως σαφές, αλλά τεχνητό: Υποθέτει ισοκατανεμημένους μέσους όρους των μαθημάτων, την ανεξαρτησία των τριών μαθημάτων και βήματα ακριβώς του ενός εκατοστού. Δεν αντικατοπτρίζει την πραγματική κατανομή των παιδιών του δημοτικού σχολείου της Βαυαρίας.
Για τρία μέσα υποκειμένου \(d,m,h\) γράφουμε
\[
A(d,m,h)=\frac{\left\lfloor 100\cdot\frac{d+m+h}{3}\right\rfloor}{100}
\]
για τον συνολικό μέσο όρο περικομμένο σε δύο δεκαδικά ψηφία. Τώρα συγκρίνουμε τρεις μεθόδους υπολογισμού.:
\[
\begin{aligned}
A_0 &= A(\όνομα_τελεστή{στρογγυλό}(d),\όνομα_τελεστή{στρογγυλό}(m),\όνομα_τελεστή{στρογγυλό}(h)),\\
A_1 &= A(\όνομα_τελεστή{γύρος}_1(d),\όνομα_τελεστή{γύρος}_1(m),\όνομα_τελεστή{γύρος}_1(h)),\\
A_\mathrm{ref} &= A(d,m,h).
\end{ευθυγραμμισμένο}
\]
\(A_0\) αντιστοιχεί στον υπολογισμό χρησιμοποιώντας ακέραιους βαθμούς, \(A_1\) στην πρόταση με ένα δεκαδικό ψηφίο και \(A_\mathrm{ref}\) στην μη στρογγυλοποιημένη αναφορά εντός του μοντέλου. Ο υπολογισμός μπορεί να υλοποιηθεί απευθείας στο Rust , για παράδειγμα.:
const SCHOOL_GYMNASIUM: i32 = 0;
const SCHOOL_REALSCHULE: i32 = 1;
const SCHOOL_MITTELSCHULE: i32 = 2;
const FLOAT_TOLERANCE: f64 = 1e-9;
#[derive(Clone, Copy, Default)]
struct Statistic {
conflict_count: u64,
total_count: u64,
}
fn determine_school(average: f64) -> i32 {
if average <= 2.33 {
return SCHOOL_GYMNASIUM;
}
if average <= 2.66 {
return SCHOOL_REALSCHULE;
}
SCHOOL_MITTELSCHULE
}
fn calculate_average(note_deutsch: f64, note_mathe: f64, note_hsu: f64) -> f64 {
let average = (note_deutsch + note_mathe + note_hsu) / 3.0;
((average + FLOAT_TOLERANCE) * 100.0).floor() / 100.0
}
fn round_to_whole_grade(grade: f64) -> f64 {
grade.round()
}
fn round_to_one_decimal(grade: f64) -> f64 {
(grade * 10.0).round() / 10.0
}
fn normalize_grade(grade: f64) -> f64 {
(grade * 100.0).round() / 100.0
}
fn percentage(count: u64, total: u64) -> f64 {
count as f64 / total as f64 * 100.0
}
fn main() {
let mut combination_count = 0;
let mut official_reference_conflicts = 0;
let mut official_proposal_conflicts = 0;
let mut proposal_reference_conflicts = 0;
let mut statistics = [Statistic::default(); 4];
let mut note_deutsch = 1.0;
while note_deutsch <= 6.0 {
let mut note_mathe = 1.0;
while note_mathe <= 6.0 {
let mut note_hsu = 1.0;
while note_hsu <= 6.0 {
combination_count += 1;
let official_average = calculate_average(
round_to_whole_grade(note_deutsch),
round_to_whole_grade(note_mathe),
round_to_whole_grade(note_hsu),
);
let proposed_average = calculate_average(
round_to_one_decimal(note_deutsch),
round_to_one_decimal(note_mathe),
round_to_one_decimal(note_hsu),
);
let reference_average =
calculate_average(note_deutsch, note_mathe, note_hsu);
let official_school = determine_school(official_average);
let proposed_school = determine_school(proposed_average);
let reference_school = determine_school(reference_average);
if official_average == 3.0 {
statistics[0].total_count += 1;
if reference_school != SCHOOL_MITTELSCHULE {
statistics[0].conflict_count += 1;
}
}
if official_average == 2.66 {
statistics[1].total_count += 1;
if reference_school == SCHOOL_GYMNASIUM {
statistics[1].conflict_count += 1;
}
}
if official_average == 2.33 {
statistics[2].total_count += 1;
if reference_school != SCHOOL_GYMNASIUM {
statistics[2].conflict_count += 1;
}
}
if official_average == 2.66 {
statistics[3].total_count += 1;
if reference_school == SCHOOL_MITTELSCHULE {
statistics[3].conflict_count += 1;
}
}
if official_school != reference_school {
official_reference_conflicts += 1;
}
if official_school != proposed_school {
official_proposal_conflicts += 1;
}
if proposed_school != reference_school {
proposal_reference_conflicts += 1;
}
note_hsu = normalize_grade(note_hsu + 0.01);
}
note_mathe = normalize_grade(note_mathe + 0.01);
}
note_deutsch = normalize_grade(note_deutsch + 0.01);
}
println!(
"official/reference: {}%",
percentage(official_reference_conflicts, combination_count)
);
println!(
"official/proposal: {}%",
percentage(official_proposal_conflicts, combination_count)
);
println!(
"proposal/reference: {}%",
percentage(proposal_reference_conflicts, combination_count)
);
for (index, statistic) in statistics.iter().enumerate() {
println!(
"#{}: {}% ({}/{})",
index + 1,
percentage(statistic.conflict_count, statistic.total_count),
statistic.conflict_count,
statistic.total_count
);
}
}
Η μικρή ανοχή στο calculate_average αποτρέπει μια τιμή όπως \(2{,}67\) λόγω της δυαδικής αναπαράστασής του με κινητήρες κινητής υποδιαστολής, θεωρήθηκε λανθασμένα \(2{,}669999\ldots\) είναι αποκομμένο. normalize_grade Επιπλέον, μειώνει κάθε τιμή βρόχου σε ένα πλέγμα εκατοστής τάξης. Υπάρχουν τουλάχιστον δύο διαφορετικές πιθανές μέσες τιμές. \(1/300\) χώρια· η ανοχή του \(10^{-9}\) είναι επομένως αρκετά μικρό ώστε να μην αλλάξει καμία πραγματική οριακή περίπτωση.
Το πρόγραμμα μεταγλωττίζεται και ξεκινά με
rustc -O calc.rs && ./calc
Το πρόγραμμα επαναλαμβάνει όλους τους συνδυασμούς \(125\,751\,501\) και επιστρέφει:
| Σύγκριση | Μερίδα |
| Ακέραιοι βαθμοί έναντι μη στρογγυλοποιημένων μέσων όρων μαθημάτων | \(10{,}4411\,\%\) |
| Ακέραιοι βαθμοί σε σύγκριση με την πρόταση με ένα δεκαδικό ψηφίο | \(10{,}1521\,\%\) |
| Πρόταση με ένα δεκαδικό ψηφίο σε σύγκριση με μη στρογγυλοποιημένους μέσους όρους εμπειρογνωμόνων | \(0{,}6615\,\%\) |
Η κεντρική αξία για μένα είναι \(10{,}4411\,\%\): Σε περισσότερους από έναν στους δέκα συνδυασμούς, η πρόωρη στρογγυλοποίηση σε ολόκληρες τάξεις οδηγεί σε διαφορετικό υπολογιζόμενο τύπο σχολείου από τον μη στρογγυλοποιημένο τύπο αναφοράς. Αυτό το ποσοστό περιγράφει αποκλειστικά το φαινόμενο στρογγυλοποίησης εντός του επιλεγμένου μοντέλου.
Η μετάβαση σε μέσους όρους εμπειρογνωμόνων με ένα δεκαδικό ψηφίο θα οδηγούσε σε διαφορετική ταξινόμηση στο \(10{,}1521\,\%\) όλων των περιπτώσεων μοντέλου σε σύγκριση με την προηγούμενη μέθοδο. Ωστόσο, η τρίτη σύγκριση είναι κρίσιμη: σε σύγκριση με τη μη στρογγυλοποιημένη αναφορά, η μέθοδος με ένα δεκαδικό ψηφίο αφήνει μόνο \(0{,}6615\,\%\) αποκλίνουσες περιπτώσεις. Η απόκλιση από την αναφορά μειώνεται έτσι κατά
\[
1-\frac{0{,}6615}{10{,}4411}\approx 93{,}7\,\%.
\]
Αυτή, για μένα, είναι ακριβώς η αμφισβητήσιμη συνέπεια της τρέχουσας μεθόδου υπολογισμού: τα υποτιθέμενα επιτεύγματα ανά μάθημα παραμένουν αμετάβλητα. Μόνο το χρονικό σημείο στο οποίο πραγματοποιείται η στρογγυλοποίηση μπορεί να αλλάξει τον υπολογισμένο τύπο σχολείου. Ενώ ο υπολογισμός με ένα δεκαδικό ψηφίο δεν εξαλείφει εντελώς αυτό το φαινόμενο, το μειώνει σημαντικά εντός του μοντέλου.
Αυτά τα στοιχεία, ωστόσο, δεν μας λένε πόσα παιδιά επηρεάζονται στην πραγματικότητα. Οι βαθμοί των σχολικών εκθέσεων δεν παράγονται απαραίτητα ως μηχανικά στρογγυλοποιημένοι μέσοι όροι, η ακαδημαϊκή επίδοση δεν είναι ούτε ομοιόμορφα κατανεμημένη ούτε ανεξάρτητη και η πραγματική επιλογή τύπου σχολείου δεν εξαρτάται αποκλειστικά από αυτά τα τρία στοιχεία. Ο υπολογισμός μου απαντά σε ένα πιο συγκεκριμένο ερώτημα: Πόσο συχνά αλλάζει η στρογγυλοποίηση τον υπολογισμένο βαθμό όταν όλοι οι συνδυασμοί εκατοστιαίας τιμής είναι εξίσου πιθανοί;
Τέλος, μια σύγκριση με την αρχική ανάρτηση: Το συνολικό ποσοστό που αναφέρεται εκεί, περίπου \(10\,\%\) είναι κοντά στο \(10{,}4411\,\%\) που υπολογίζω. Ωστόσο, οι υπολογισμοί μου δεν επιβεβαιώνουν τις τέσσερις μεμονωμένες περιπτώσεις, καθεμία από τις οποίες αναφέρεται ως \(1/6 \approx 17\,\%\) Για τις περιπτώσεις «απουσία γυμνασίου με \(3{,}00\) », «απουσία γυμνασίου με \(2{,}33\) », «επίτευξη γυμνασίου με \(2{,}66\) » και «επίτευξη γυμνασίου με \(2{,}66\) \(1{,}4615\,\%\) \(59{,}6096\,\%\) \(1{,}2023\,\%\) \(62{,}9395\,\%\) .
Οι τέσσερις τιμές είναι υπό όρους πιθανότητες με ομάδες αναφοράς διαφορετικού μεγέθους. Χωρίς έναν διαφορετικά ορισμένο χώρο δειγματοληψίας \(1/6\) δεν μπορεί να εξαχθεί από αυτές. Ο υπολογισμός μου επιβεβαιώνει έτσι το φαινόμενο στρογγυλοποίησης, αλλά όχι αυτές τις μεμονωμένες πιθανότητες. Σε κάθε περίπτωση, οι δηλώσεις σχετικά με τον πραγματικό αριθμό των παιδιών που επηρεάζονται θα απαιτούσαν πραγματικές κατανομές βαθμών και τις εξαρτήσεις τους.