Բավարիայում \(2{,}33\) միջին գնահատականը վկայում է մարզադպրոցի \(2{,}34\) ՝ ոչ: Այս կտրուկ սահմանային արժեքի դեպքում երկու կլորացման գործողությունների հերթականությունը կարող է որոշել, թե երեխան որ կողմում է: Գյունտեր Ֆելբինգերը քննարկում է այս կլորացման էֆեկտի հնարավոր հետևանքները իր բլոգում : Մաքուր հետաքրքրությունից ելնելով՝ ես ինքս հաշվարկել եմ էֆեկտները մոդելում թույլատրված բոլոր դասարանների համակցությունների համար:
Իմ հիմնական հարցն այն է. որքան հաճախ է ամբողջ առարկայի գնահատականների վաղ կլորացումը հանգեցնում դպրոցի տարբեր տեսակի հաշվարկի, քան չկլորացված առարկայական միջիններով հաշվարկները: Ավելին, հետաքրքիր կլիներ տեսնել, թե ինչ է փոխվում, եթե առանձին առարկաների միջինները (ինչպես առաջարկվում է այնտեղ) սկզբնապես կլորացվեն մինչև միայն մեկ տասնորդական նիշ:
Բավարիայի տարրական դպրոցի կանոնադրության 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{հավասարեցված}
A_0 &= A(\operatorname{round}(d),\operatorname{round}(m),\operatorname{round}(h)),\\
A_1 &= A(\operatorname{round}_1(d),\operatorname{round}_1(m),\operatorname{round}_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\) չի կարող ստացվել դրանցից։ Այսպիսով, իմ հաշվարկը հաստատում է կլորացման էֆեկտը, բայց ոչ այս անհատական հավանականությունները։ Ամեն դեպքում, ազդակիր երեխաների իրական թվի վերաբերյալ պնդումները կպահանջեն իրական գնահատականների բաշխումներ և դրանց կախվածություններ։