If you're seeing this message, it means we're having trouble loading external resources on our website.

Եթե գտնվում ես վեբ զտիչի հետևում, խնդրում ենք համոզվել, որ *.kastatic.org և *.kasandbox.org տիրույթները հանված են արգելափակումից։

Հիմնական նյութ

Պատահական թվերի նորմալ բաշխում

Ենթադրենք ցանկանում ենք կապիկների աշխարհ գեներացնող ծրագիր ստեղծել։ Ծրագիրդ կարող է հազար հատ Monkey օբյեկտ ստեղծել՝ յուրաքանչյուրի հասակը 200-ի և 300-ի միջակայքում, քանի որ այս աշխարհում կապիկների հասակն այդ միջակայքում է ընկած։
var randomHeight = random(200, 300);
Այս մոտեցումը իրական աշխարհի էակների հասակները ճի՞շտ է արտացոլում։ Պատկերացրու՝ Երևանի մայթերից որևէ մեկը, և պատկերացրու, որ ընտրում ես պատահական մարդու։ Կարող է թվալ, թե այդ մարդու հասակը պատահական է, սակայն իրականում այդ պատահականությունը հնարավոր չէ ստանալ random() ֆունկցիայի կիրառման արդյունքում, քանի որ մարդկանց հասակների բաշխումը համաչափ չէ. միջին հասակի մարդիկ ավելի շատ են, քան շատ բարձրահասակ կամ շատ ցածրահասակ մարդիկ։ Բնությանն ավելի մոտ նմանակիչ ստանալու համար ցանկալի է, որ ավելի հավանական լինի միջին հասակի կապիկներ ստեղծել (250 պիքսել), բայց ժամանակ առ ժամանակ ցածրահասակ կամ բարձրահասակ կապիկներ նույնպես լինեն։
Ինչ-որ միջինի շուրջ խտացված արժեքների բաշխումը կոչվում է «նորմալ» բաշխում. սա կոչվում է նաև Գաուսյան բաշխում՝ մաթեմատիկոս Կառլ Ֆրիդրիխ Գաուսի անունով, կամ, եթե ֆրանսիացի ես, Լապլասյան բաշխում՝ Պիեռ-Սիմոն Լապլասի անունով։ 19-րդ դարում այդ երկու մաթեմատիկոսները միաժամանակ աշխատում էին այդպիսի բաշխում սահմանելու վրա։
Այդ բաշխման գրաֆիկն ունի այս տեսքը, որի ոչ ֆորմալ անվանումը զանգակաձև կոր է (bell curve)։
Ստանդարտ զանգակաձև կորի գրաֆիկ
Ստանդարտ զանգակաձև կոր
Կորը ստացվում է միջինից (հաճախ նշանակվում է μ-ով՝ հունական մյու տառը) և ստանդարտ շեղումից (σ՝ հունական սիգմա տառը) կախված մաթեմատիկական ֆունկցիայից, որը սահմանում է տրված արժեքի տեղի ունենալու հավանականությունը։
Միջինը բավականին հեշտ է հասկանալ։ 200-ից 300 միջակայքում ընկած հասակի արժեքների դեպքում երևի կռահում ես, որ միջինը 250 է։ Այնուամենայնիվ, ի՞նչ է նշանակում՝ ստանդարտ շեղումը 3 է կամ 15։ Ի՞նչ է դա նշանակում թվերի դեպքում։ Դա հասկանալու հարցում կարող են օգնել գրաֆիկները։ Վերևի գրաֆիկում ներկայացված բաշխման ստանդարտ շեղումը շատ փոքր է, և արժեքների մեծ մասը խտացած են միջինի շուրջ։ Ներքևի գրաֆիկում ներկայացված բաշխման ստանդարտ շեղումն ավելի մեծ է. արժեքներն ավելի համաչափ են բաշխված միջինի շուրջ։
Ավելի բարձր ստանդարտ շեղում ունեցող զանգակաձև կորի գրաֆիկ
Ավելի բարձր ստանդարտ շեղում ունեցող զանգակաձև կոր
«Ստանդարտ շեղման» գաղափարն անծանո՞թ է։ Մի մտահոգվիր։ Շարունակելուց առաջ կարող ես «Քան» ակադեմիայում վարիացիա և ստանդարտ շեղում սովորել։
Թվերը մեզ հետևյալն են ասում. տրված բնակչության անդամների 68%-ը կգտնվեն միջինից մեկ ստանդարտ շեղման միջակայքում, անդամների 95%-ը՝ երկու ստանդարտ շեղման միջակայքում, անդամների 99,7%-ը՝ երեք ստանդարտ շեղման միջակայքում։ Մեր օրինակի դեպքում, եթե ստանդարտ շեղումը 5 պիքսել է, ապա կապիկների ընդամենը 0,3%-ի հասակը կլինի 235 պիքսելից փոքր (250-ից երեք ստանդարտ շեղում հանած) կամ 265 պիքսելից մեծ (250-ին երեք ստանդարտ շեղում գումարած)։

Միջինի և ստանդարտ շեղման հաշվում
Ենթադրենք՝ ունենք տասը աշակերտից կազմված դասարան, որոնք քննությունից ստացել են հետևյալ գնահատականները (0-ից 100 միջակայքում).
85, 82, 88, 86, 85, 93, 98, 40, 73, 83
Միջինը հաշվելու համար պետք է այդ գնահատականներն իրար գումարել և դրանք բաժանել գնահատականների քանակի վրա։
Միջին = (85+82+88+86+85+93+98+40+73+83)/10=81,3
Ստանդարտ շեղումը հավասար է հաշվարկված միջինից բոլոր արժեքների շեղումների քառակուսիների միջինի քառակուսի արմատին։
Առաջին քայլը յուրաքանչյուր գնահատականի շեղումը՝ միջինից տարբերությունը, և դրանց քառակուսիները հաշվելն է.
ԳնահատականՇեղումՇեղման քառակուսի
858581,3=3,7(3,7)2=13,69
828281,3=0,7(0,7)2=0,49
888881,3=6,7(6,7)2=44,89
868881,3=4,7(4,7)2=22,09
858581,3=3,7(3,7)2=13,69
939381,3=11,7(11,7)2=136,89
989881,3=16,7(16,7)2=278,89
404081,3=41,3(41,3)2=1705,69
737381,3=8,3(8,3)2=68,89
838381,3=1,7(1,7)2=2,89
Հետո պետք է հաշվենք շեղումների քառակուսիները միջինը, որը կոչվում է վարիացիա։ Դա հաշվում ենք վերջին սյունակի թվերն իրար գումարելով և ստացված թիվը տողերի քանակի վրա բաժանելով։
Վարիացիա = 2288,1/10 = 228,81
Վերջապես՝ կարող ենք հաշվել ստանդարտ շեղումը՝ վարիացիայի քառակուսի արմատը հաշվելով։
Ստանդարտ շեղում = 228,81 = 15,13.
Եթե ուզում ես ստանդարտ շեղումն ավելի լավ հասկանալ, կարող ես վարիացիան և ստանդարտ շեղումն ավելի խորը ուսումնասիրել «Քան» ակադեմիայում։

Բարեբախտաբար ծրագրում պատահական թվերի նորմալ բաշխում ստանալու համար այս հաշվարկները կարող ենք ինքներս չանել։ Դրա փոխարեն կարող ենք ProcessingJS-ի կողմից տրված Random օբյեկտը կիրառել։
Random-ը կիրառելու համար պետք է Random օբյեկտի նոր օրինակ ստեղծել՝ դրան փոխանցելով 1 արժեքը։ Այդ փոփոխականն անվանում ենք generator, քանի որ կարելի է ասել, որ այն պատահական թվերի գեներատոր է։
var generator = new Random(1);
Եթե ամեն անգամ draw() ֆունկցիան կանչելիս ուզում ենք նորմալ կամ Գաուսյան բաշխմանը պատկանող պատահական թիվ ընտրել, պետք է ընդամենը nextGaussian() ֆունկցիան կանչենք։
var num = generator.nextGaussian();
println(num);
Իսկ ինչպե՞ս օգտագործենք ստացված արժեքը։ Օրինակ՝ ի՞նչ անենք, եթե ուզում ենք այն կիրառել որպես էկրանի վրա նկարվող պատկերի x կոորդինատ։
nextGaussian() ֆունկցիան վերադարձնում է հետևյալ պարամետրերով նորմալ բաշխման պատկանող պատահական թվեր. միջինը՝ 0, և ստանդարտ շեղումը՝ 1։ Ենթադրենք՝ ուզում ենք, որ միջինը լինի 200՝ 400 լայնությամբ պատուհանի կենտրոնի պիքսելը, իսկ ստանդարտ շեղումը լինի 60 պիքսել։ Մեզ անհրաժեշտ պարամետրերը ստանալու համար կարող ենք բազմապատկել ստանդարտ շեղմամբ և գումարել միջինը։
var standardDeviation = 60;
var mean = 200;
var x = standardDeviation * num + mean;
Այժմ կարող ենք գրել ծրագիր, որը նորմալ բաշխմամբ կիսաթափանցիկ շրջաններ է նկարում։ Ամենամութ հատվածը կլինի կենտրոնին մոտիկ, քանի որ բոլոր արժեքներն այնտեղ կխտանան, բայց ժամանակ առ ժամանակ կենտրոնից աջ կամ ձախ շրջան կնկարվի։

«Բնական նմանակիչներ» դասընթացը ստեղծվել է Դանիել Շիֆմանի «Կոդի բնույթը» գրքի հիման վրա և կիրառվում է ըստ Creative Commons Attribution-NonCommercial 3,0 Unported License-ի։

Ուզո՞ւմ ես միանալ խոսակցությանը։

Առայժմ հրապարակումներ չկան։
Անգլերեն հասկանո՞ւմ ես: Սեղմիր այստեղ և ավելի շատ քննարկումներ կգտնես «Քան» ակադեմիայի անգլերեն կայքում: