স্ট্যান্ডার্ড বিচ্যুতি গণনা করুন


19

চ্যালেঞ্জ

সংখ্যার একটি তালিকা দেওয়া হয়েছে, তালিকার জনসংখ্যার মান বিচ্যুতি গণনা করুন।

জনসংখ্যার স্ট্যান্ডার্ড বিচ্যুতি গণনার জন্য নিম্নলিখিত সমীকরণটি ব্যবহার করুন:

ইনপুট

ইনপুটটি কোনও বিন্যাসে (তালিকা, স্ট্রিং ইত্যাদি) পূর্ণসংখ্যার একটি তালিকা তৈরি করবে। কিছু উদাহরণ:

56,54,89,87
67,54,86,67

সংখ্যাগুলি সর্বদা পূর্ণসংখ্যার হবে।

ইনপুটটি STDIN বা ফাংশন আর্গুমেন্টে হবে।

আউটপুট

আউটপুট অবশ্যই একটি ভাসমান পয়েন্ট সংখ্যা হতে হবে।

বিধি

আপনি স্ট্যান্ডার্ড বিচ্যুতি সন্ধান করতে ফাংশন ইন বিল্ট ব্যবহার করতে পারেন।

আপনার উত্তরটি পুরো প্রোগ্রাম বা কোনও কার্য হতে পারে।

উদাহরণ

10035, 436844, 42463, 44774 => 175656.78441352615

45,67,32,98,11,3 => 32.530327730015607

1,1,1,1,1,1 => 0.0

জয়লাভ

সংক্ষিপ্ততম প্রোগ্রাম বা ফাংশন জয়ী।

লিডারবোর্ড


1
আপনার অর্থ আউটপুটটি অবশ্যই একটি ভাসমান পয়েন্ট বা পূর্ণসংখ্যা হতে হবে?
মুটোডোর

3
আমি মনে করি বেশিরভাগ বিল্ড-ইন স্ট্যান্ডার্ড বিচ্যুতি ফাংশনগুলি নমুনার স্ট্যান্ডার্ড বিচ্যুতি গণনা করে।
মুত্তাদর

175656.78441352615 আমার ফলাফল 175656.78441352614 ফলাফল কী?
রোজলুপি

@ রোসলুপি আপনাকে এ নিয়ে কোনও চিন্তা করতে হবে না
বিটা ডিকায়

1
@ a13a22 পিপিসিজির মান নিয়ম অনুসারে, ফাংশন আর্গুমেন্টের মাধ্যমে আপনি ইনপুট নেওয়া ভাল
বিটা

উত্তর:


18

ক্লিপ , ৩

.sk

.sস্ট্যান্ডার্ড বিচ্যুতি, kফর্ম ইনপুট পার্স করে {1,2,3}


স্ট্যান্ডার্ড বিচ্যুতির জন্য কোন সূত্র ব্যবহার করা হয়? আমি এটি রেফারেন্স খুঁজে পাইনি।
flawr

@ ফ্লোয়ার এটি এই চার্টটি , নীচের দিকে।
কনর ও'ব্রায়েন

@ CᴏɴᴏʀO'Bʀɪᴇɴ আমি এটি দেখেছি, তবে কোনও সূত্র দেওয়া হয়নি।
flawr

ওহ, আমি দেখছি সম্ভবত তখন এটি দোভাষীর উপর নির্ভর করে যদি এমন কোন কিছু বিদ্যমান থাকে।
কনার ও'ব্রায়েন

2
@ CᴏɴᴏʀO'Bʀɪᴇɴ আমি 493 লাইনে এটি এখানে পেয়েছি , মনে হচ্ছে এটি ঠিক আছে!
flawr

11

গণিত, 24 22 বাইট

ভাল, ম্যাথমেটিকার একটি অন্তর্নির্মিত StandardDevi...ওহ ... যা নমুনা স্ট্যান্ডার্ড বিচ্যুতি গণনা করে, জনসংখ্যার মানক বিচ্যুতি নয়।

তবে আমরা যদি Variance... ওহ ... একই জিনিস ব্যবহার করি তবে কী হবে।

তবে আরও একটি অন্তর্নির্মিত সম্পর্কিত রয়েছে:

CentralMoment[#,2]^.5&

হ্যাঁ. :)

এটি 22 বাইটের জন্যও কাজ করে:

Mean[(#-Mean@#)^2]^.5&

এবং এটি 27 এর জন্য:

N@RootMeanSquare[#-Mean@#]&

10

অক্টাভা, 14 বাইট

g=@(a)std(a,1)

আদর্শে এটি চেষ্টা করুন ।


2
g=ফাংশন হ্যান্ডেলটির কোনও বৈধ জমা দেওয়ার জন্য কোনও নাম প্রয়োজন না হওয়ায় আপনি দুটি বাইট সরিয়ে দিয়ে সংরক্ষণ করতে পারেন ।
অ্যালেক্স এ।

10

kdb + , 3 বাইট

dev

APL derviates এক ছিল যেমন একটি বিল্ট-ইন এই আছে।

টেস্ট রান

q)dev 56, 54, 89, 87
16.53028
q)f:dev
q)f 10035, 436844, 42463, 44774
175656.8
q)f 45,67,32,98,11,3
32.53033

8

ডায়ালগ এপিএল, 24 23 21 20 19 17 বাইট

*∘.5∘M×⍨-M×M←+/÷≢

এটি একটি নামবিহীন, monadic ফাংশন ট্রেন সংজ্ঞায়িত করে, যা নিম্নলিখিত ফাংশনের সমান।

{.5*⍨M(×⍨⍵)-M⍵×(M←{(+/⍵)÷≢⍵})⍵}

ট্রাইএপিএলে অনলাইনে চেষ্টা করুন

কিভাবে এটা কাজ করে

কোডটিতে বেশ কয়েকটি ট্রেন রয়েছে।

M←+/÷≢

এই পরমাণুসদৃশ্য 3-ট্রেন (কাঁটাচামচ) সংজ্ঞায়িত করে Mযে, executes +/(সমস্ত উপাদানের সমষ্টি) এবং (দৈর্ঘ্য) ডান যুক্তি জন্য, তারপর প্রযোজ্য ÷ফলাফলে (বিভাগ), ইনপুট এর গাণিতিক গড় ফিরিয়ে আনে।

M×M

এটি অন্য একটি কাঁটাচামচ যা Mসঠিক যুক্তিতে প্রযোজ্য , এটি দ্বিতীয়বার পুনরাবৃত্তি ×করে এবং ফলাফলকে (পণ্য) প্রয়োগ করে μ 2 প্রদান করে

×⍨-(M×M)

এটি আরও একটি কাঁটাচামচ যা গণিতের গড়ের বর্গক্ষেত্র গণনা করে যা পূর্বে ×⍨বর্ণিত হয়েছে, সঠিক যুক্তিতে (নিজের সাথে পণ্য) প্রয়োগ করে এবং শেষ পর্যন্ত -ফলাফলগুলিতে (পার্থক্য) প্রয়োগ করে।

ইনপুট (x 1 ,…, এক্স এন ) এর জন্য , এই ফাংশনটি (x 1 - μ 2 ,…, এক্স এন - μ 2 ) প্রদান করে

*∘.5∘M

এই রচিত ফাংশনটি Mতার ডান যুক্তির পরে প্রযোজ্য *∘.5। আধুনিক ব্যবহারের অধিকার যুক্তি সংবাহন মানচিত্র ইনপুট প্রয়োগ করতে aকরতে a*0.5(এর বর্গমূল a)।

(*∘.5∘M)(×⍨-(M×M))

অবশেষে, আমাদের কাছে এই monadic 2-ট্রেন (উপরে) রয়েছে, যা প্রথমে ডান ফাংশন প্রয়োগ করে, তারপরে বামটিকে তার ফলাফলের জন্য, নিম্নরূপে মানক বিচ্যুতি গণনা করছে।

সূত্র


5

আর, 41 40 39 36 30 28 বাইট

কোড

বেকার , অ্যালেক্স এ এবং মিকিটিকে অনেকগুলি বাইটের জন্য ধন্যবাদ ।

cat(sd(c(v=scan(),mean(v))))   

পুরানো কোডগুলি

v=scan();n=length(v);sd(v)/(n/(n-1))**0.5
m=scan();cat(sqrt(sum(mean((m-mean(m))^2))))
m=scan();cat(mean((m-mean(m))^2)^.5) 

এটির জনসংখ্যার মানক বিচ্যুতি হওয়া উচিত।


1
আমি আর জানি না, তবে অ্যারের গড় দিয়ে ইনপুট অ্যারে বাড়ানো কি সম্ভব? মনে হচ্ছে এটি সংক্ষিপ্ত হতে পারে।
বেকার

1
এই সাইটে আমরা স্পষ্টভাবে প্রশ্ন দ্বারা অনুমতি না দেওয়া না হলে আমরা সাধারণত একটি REPL পরিবেশ ধরে নিতে পারি না। সুতরাং এই ক্ষেত্রে আপনার catকনসোলে মুদ্রণ করতে ব্যবহার করতে হবে।
অ্যালেক্স এ 18

1
এছাড়াও, আর ব্যবহার ^exponentiation জন্য, যা তুলনায় বাইট খাটো **
অ্যালেক্স এ 18

1
meanকোনও স্কেলার ফিরিয়ে দেওয়ার কারণে আপনার গড় পরিমাণ যোগ করতে হবে না ; sumকোন প্রভাব আছে। 36 বাইট:x=scan();cat(mean((x-mean(x))^2)^.5)
অ্যালেক্স এ 18

1
@ আন্দ্রেমাতা ক্ষমা চেয়েছেন, যখন আমি এটি পরীক্ষা করেছিলাম তখন আমার চারপাশে একটি এক্স ঝুলছিল।
মিকিটি

5

পাইথ, 20 19 17 13 বাইট

@.O^R2-R.OQQ2

4 বাইট বন্ধ করে গল্ফ করার জন্য @ ফ্রাইআমডেজিমনকে ধন্যবাদ!

এটি অনলাইনে চেষ্টা করুন।

কিভাবে এটা কাজ করে

        .OQ    Compute the arithmetic mean of the input (Q).
      -R   Q   Subtract the arithmetic mean of all elements of Q.
   ^R2         Square each resulting difference.
 .O            Compute the arithmetic mean of the squared differences.
@           2  Apply square root.

আমি পছন্দ করি পাইথ প্রোগ্রামের পচন কীভাবে স্কিউড প্যারাবোলার মতো দেখাচ্ছে।
কনর ও'ব্রায়েন

5

সিজেম, 24 22 21 বাইট

q~_,_@_:+d@/f-:mh\mq/

1 বাইট বন্ধ করে গল্ফ করার জন্য @ অ্যাডিটসুকে ধন্যবাদ!

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

কিভাবে এটা কাজ করে

q~                    e# Read all input and evaluate it.
  _,                  e# Copy the array and push its length.
    _@                e# Copy the length and rotate the array on top.
      _:+d            e# Copy the array and compute its sum. Cast to Double.
          @/          e# Rotate the length on top and divide the sum by it.
            f-        e# Subtract the result (μ) from the array's elements.
              :mh     e# Reduce by hypotenuse.
                      e# a b mh -> sqrt(a^2 + b^2)
                      e# sqrt(a^2 + b^2) c mh -> sqrt(sqrt(a^2 + b^2)^2 + c^2)
                      e#                           = sqrt(a^2 + b^2 + c^2)
                      e# ⋮
                 \mq/ e# Divide the result by the square root of the length.

আমি মনে করি আপনি কেবল দৈর্ঘ্যে দ্বিগুণ রূপান্তর করতে পারেন
aditsu

@ অ্যাডিটসু অবশ্যই ধন্যবাদ!
ডেনিস

5
:mhপ্রতিভা
বিটিডব্লু

2
Reduce by hypotenuse.আপনি প্রতিদিন দেখেন এমন কিছু নয়।
lirtosiast

4

এপিএল, 24 বাইট

{.5*⍨+/(2*⍨⍵-+/⍵÷≢⍵)÷≢⍵}

চেয়ে একটু ভিন্ন পদ্ধতি ডেনিস 'Dyalog APL সমাধান । এটি কোনও এপিএল বাস্তবায়নের সাথে কাজ করা উচিত।

এটি একটি নামবিহীন monadic ফাংশন তৈরি করে যা ভেক্টরকে x ( x - µ ) 2 হিসাবে গণনা করে 2*⍨⍵-+/⍵÷≢⍵, এটি এন ( ÷≢⍵) দ্বারা ভাগ করে +/, ব্যবহার করে এই ভেক্টরের যোগফল গ্রহণ করে এবং তারপরে বর্গমূল (.5*⍨ ) গ্রহণ করে।

এটি অনলাইনে চেষ্টা করুন


না যে APL বাস্তবায়ন সমর্থন {dfns }, অথবা । তবে, প্রতিটি সংস্করণ সমর্থন করেR←F Y R←(+/((Y-+/Y÷⍴Y)*2)÷⍴Y)*.5
Adám

4

জুলিয়া, 26 19 বাইট

x->std([x;mean(x)])

এটি একটি নামবিহীন ফাংশন তৈরি করে যা একটি অ্যারে গ্রহণ করে এবং একটি ফ্ল্যাট ফেরত দেয়।

অসম্পূর্ণ, আমার ধারণা:

function f(x::Array{Int,1})
    # Return the sample standard deviation (denominator N-1) of
    # the input with the mean of the input appended to the end.
    # This corrects the denominator to N without affecting the
    # mean.
    std([x; mean(x)])
end

4

টিআই-বেসিক, 7 বাইট

stdDev(augment(Ans,{mean(Ans

আমি থেকে নমুনা স্ট্যানডার্ড ডেভিয়েশন থেকে জনসংখ্যার স্ট্যানডার্ড ডেভিয়েশন পেতে অ্যালগরিদম ধার এখানে

সংক্ষিপ্ততম সমাধানটি আমি ছাড়া augment(9 টি বাইটে খুঁজে পেতে পারি :

stdDev(Ans√(1-1/dim(Ans

আমি আন্দ্রে মুতার সাথে একমত, এটি প্রয়োজনীয় ফলাফল দেয় না, এখানে দেখুন।
flawr

1
@ আন্দ্রেমুটা @ ফ্লোয়ার টিআই এর বিল্টিন stdDev(নমুনা এসডি গণনা করে; stdDev(augment(Ans,{mean(Ansজনসংখ্যার এসডি গণনা করে। এটি আপনার লিঙ্ক করা পৃষ্ঠায়।
lirtosiast

3

হাস্কেল, 61 বাইট

d n=1/sum(n>>[1])
f a=sqrt$d a*sum(map((^2).(-)(d a*sum a))a)

সোজা, sum(n>>[1])হাস্কেলের কঠোর প্রকারের সিস্টেমটিকে চালিত করতে আমার কাস্টম দৈর্ঘ্যের ফাংশন ব্যতীত ।


আপনি ব্যবহার করতে পারেন sum(1<$n)এবং <$>জন্য map
লাইকনি

আমার কাছে কেবল এটি ঘটেছে যে এই উত্তরগুলির সময় এই পুরানো জিএইচসি সংস্করণের কারণে এই ফাংশনগুলি উপস্থিত নাও হতে পারে, তবে এই পরামর্শ অনুসারে তারা মার্চ ২০১৫-এ উপস্থাপিত হয়েছিল এবং নতুন ভাষাকে অনুমতি দেওয়ার জন্য সাইটের নীতিটি যেভাবেই পরিবর্তিত হয়েছে বৈশিষ্ট্যগুলিও উপস্থিত রয়েছে।
লাইকোনি

3

পাইথন 3.4+, 30 বাইট

from statistics import*;pstdev

বিল্টিন ফাংশন আমদানি করে pstdev, যেমন

>>> pstdev([56,54,89,87])
16.53027525481654

আমার মনে pstdevহয় ঠিক প্রথম লাইন ঠিক আছে পরে? আমি বিশ্বাস করি কিছুদিন আগে xnor এটি করেছিল sum। এটা তোলে ইন্দ্রিয় wrt সাজানোর কিভাবে বেনামী lambdas অর্থাত ব্যবহার করা হবে p=pstdevবাmap(pstdev, [...])
FryAmTheEggman

আমি একই কথা বলতে যাচ্ছিলাম। মেটা পোস্টগুলি কেবল একটি ফাংশনকে আক্ষরিক রেখে দেওয়ার পক্ষে সমর্থন করে বলে মনে হচ্ছে।
xnor

আমি মনে করি আপনার এখনও আক্ষরিক লিখতে হবে pstdev, যেমন from statistics import*;pstdev। অন্যথায়, এটি এই লাইব্রেরি থেকে কোনও ফাংশন হতে পারে।
xnor

@ এক্সনর সম্পাদিত। tbh আমি এই পরিস্থিতিতে রায় সম্পর্কে সত্যই নিশ্চিত নই ...
Sp3000

সম্ভবত একটি মেটা প্রশ্ন সহায়ক হবে? :)
বিটা ক্ষয়

2

জাভাস্ক্রিপ্ট (ES6), 73 বাইট

a=>Math.sqrt(a.reduce((b,c)=>b+(d=c-eval(a.join`+`)/(l=a.length))*d,0)/l)

আউটপুটটির নির্ভুলতা সম্পর্কে @ বেটাডেক? আমার আসলটি আসলে এটি সঠিক ছিল না, এবং আমি ঠিক পরে এটি স্থির করেছিলাম, কেবলমাত্র ভাসমান পয়েন্টটি আবিষ্কার করার জন্য এটি ঠিক আছে ... তাই এখন যেমন আছে ঠিক তেমন ভাল?
Mwr247

হ্যাঁ ঠিক আছে :)
বিটা ক্ষয়

7
পিএসএস ... আপনি eval(a.join`+`)পরিবর্তে এই সংমিশ্রণ পদ্ধতিটি ব্যবহার করে 5 বাইট শেভ করতে পারেনa.reduce((e,f)=>e+f)
জর্জ রিথ

পছন্দ করুন আমি পরে এটি মনে রাখতে পারি ...
Mwr247

2

জেলি , অ-প্রতিযোগিতামূলক

11 বাইট এই উত্তরটি প্রতিদ্বন্দ্বিতামূলক, কারণ এটি এমন একটি ভাষা ব্যবহার করে যা চ্যালেঞ্জকে পোস্টডেট করে।

S÷L
Dz_²ÇN½

এটি জেলি আমার এপিএল উত্তরের সরাসরি অনুবাদ । এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

S÷L        Helper link. Argument: z (vector)

S          Compute the sum of z.
  L        Compute the length of z.
 ÷         Divide the former by the latter.
           This computes the mean of z.

Dz_²ÇN½    Main link. Argument: z (vector)

Ç          Apply the previous link, i.e., compute the mean of z.
 ²         Square the mean.
   ²       Square all number in z.
  _        Subtract each squared number from the squared mean.
    Ç      Take the mean of the resulting vector.
     N     Multiply it by -1.
      ½    Take the square root of the result.

2

জে, 18 বাইট

[:%:@M*:-M*M=:+/%#

এটি আমার এপিএল উত্তরের প্রত্যক্ষ অনুবাদ জে

এটি অনলাইন চেষ্টা করুন!


আমার কোনও Mপূর্বনির্ধারিত অন্তর্নির্মিত ধারণা ছিল না
কনর ও'ব্রায়ান

এটা না। M=:+/%#একটি ইনলাইন ফাংশন সংজ্ঞা।
ডেনিস

তবে এটি পূর্বনির্ধারিত, তাই না? সম্ভবত বিল্টিনটি ভুল শব্দটি
কনর ও'ব্রায়ান

না, এটি পূর্বনির্ধারিত নয়। M=:+/%#ক্রিয়াটি +/%#ভিতরে সংরক্ষণ করে M, তারপরে এটি কল করে।
ডেনিস

আমি দুঃখিত XD আমি শেষ অংশটি দেখতে পেলাম না
কনার ও'ব্রায়ান

1

সিম্প্লেক্স v.0.5 , 43 বাইট

শুধু 'চু। আমি সত্যিই এই আরও একটি বাইট গল্ফ করা প্রয়োজন।

t[@u@RvR]lR1RD@wA@T@{j@@SR2ERpR}u@vR@TR1UEo   
t[      ]                                     ~~ Applies inner function to entire strip (left-to-right)
  @                                           ~~ Copies current value to register
   u                                          ~~ Goes up a strip level
    @                                         ~~ Dumps the register on the current byte
     R                                        ~~ Proceeds right (s1)
      v                                       ~~ Goes back down
       R                                      ~~ Proceeds right (s0)
                                              ~~ Go right until an empty byte is found
         lR1RD                                ~~ Push length, 1, and divide.
              @                               ~~ Store result in register (1/N)
               wA                             ~~ Applies A (add) to each byte, (right-to-left)
                 @T@                          ~~ Puts 1/N down, multiplies it, and copies it to the register
                    {          }              ~~ Repeats until a zero-byte is met
                     j@@                      ~~ inserts a new byte and places register on it
                        SR                    ~~ Subtract it from the current byte and moves right
                          2E                  ~~ Squares result
                            RpR               ~~ Moves to the recently-created cell, deletes it, and continues
                                u@v           ~~ takes 1/N again into register
                                   R@T        ~~ multiplies it by the new sum
                                      R1UE    ~~ takes the square root of previous
                                          o   ~~ output as number

1

প্রোলোগ (এসডাব্লুআই), ১১৯ বাইট

কোড:

q(U,X,A):-A is(X-U)^2.
p(L):-sumlist(L,S),length(L,I),U is S/I,maplist(q(U),L,A),sumlist(A,B),C is sqrt(B/I),write(C).

ব্যাখ্যা:

q(U,X,A):-A is(X-U)^2.   % calc squared difference of X and U
p(L):-sumlist(L,S),      % sum input list
      length(L,I),       % length of input list
      U is S/I,          % set U to the mean value of input list
      maplist(q(U),L,A), % set A to the list of squared differences of input and mean
      sumlist(A,B),      % sum squared differences list
      C is sqrt(B/I),    % divide sum of squares by length of list
      write(C).          % print answer

উদাহরণ:

p([10035, 436844, 42463, 44774]).
175656.78441352615

এটি এখানে অনলাইনে চেষ্টা করে দেখুন


1

পার্ল 5, 39 38


 16 টি স্ক্রিপ্টের
জন্য +22 Mস্যুইচটির জন্য
+1 1-এ Eস্যুইচ
= 39

perl -MStatistics::Lite=:all -E"say stddevp@ARGV" .1 .2 300

স্ট্রবেরি 5.20.2 পরীক্ষিত।


ওহ, তবে তখন আমি বুঝতে পেরেছিলাম যে আপনি বলেছিলেন যে আমাদের উত্তরগুলি প্রোগ্রামগুলির পরিবর্তে ফাংশন হতে পারে। এই ক্ষেত্রে,

{use Statistics::Lite":all";stddevp@_}

মাত্র 38. স্ট্রবেরি পরীক্ষিত 5.20.2 হিসাবে

print sub{use Statistics::Lite":all";stddevp@_}->( .1, .2, 300)

0

পাইথন, 57 বাইট

lambda l:(sum((x-sum(l)/len(l))**2for x in l)/len(l))**.5

তালিকা হিসাবে ইনপুট নেয়

ধন্যবাদ @ এক্সনর


আমি মনে করি আপনি বাইট সংরক্ষণ করার .5জায়গায় করতে পারেন 0.5। আপনি কি len(x)পরিবর্তে মানে len(l)?
অ্যালেক্স এ।

@AlexA। ওহ, না আমি তাই মনে করি না ...
বিটা ডেকে

1
দুঃখিত, বিভ্রান্ত হয়ে পড়েছেন। উপেক্ষা করুন xএবং lআজেবাজে কথা। তবে আপনি এখনও .5বাইট সংরক্ষণ করতে পারেন ।
অ্যালেক্স এ।

1
@BetaDecay এটা একটা তালিকা-Comp ব্যবহার করতে চেয়ে ল্যামডা ম্যাপ খাটো আছে: sum((x-sum(l)/len(l))**2for x in l)
xnor

1
একটি ভিন্ন তৈয়ার একই দৈর্ঘ্য দিয়েছেন: lambda l:(sum(x*x*len(l)for x in l)-sum(l)**2)**.5/len(l)
xnor

0

পাওয়ারশেল, 122

:\>type stddev.ps1
$y=0;$z=$args -split",";$a=($z|?{$_});$c=$a.Count;$a|%{$y+=$_};$b=$y/$c;$a|%{$x+
=(($_-$b)*($_-$b))/$c};[math]::pow($x,0.5)

ব্যাখ্যা

<#
$y=0                            init
$z=$args -split","              split delim ,
$a=($z|? {$_})                  remove empty items
$c=$a.Count                     count items
$a|%{$y+=$_}                    sum
$b=$y/$c                        average
$a|%{$x+=(($_-$b)*($_-$b))/$c}  sum of squares/count
[math]::pow($x,0.5)             result
#>

ফলাফল

:\>powershell -nologo -f stddev.ps1 45,67,32,98,11,3
32.5303277300156

:\>powershell -nologo -f stddev.ps1 45,  67,32,98,11,3
32.5303277300156

:\>powershell -nologo -f stddev.ps1 45,  67,32, 98 ,11,3
32.5303277300156

:\>powershell -nologo -f stddev.ps1 10035, 436844, 42463, 44774
175656.784413526

:\>powershell -nologo -f stddev.ps1 1,1,1,1,1,1
0

0

ফরট্রান, 138 বাইট

ফোর্টরানে সমীকরণের কেবল একটি সরল বাস্তবায়ন:

double precision function std(x)
integer,dimension(:),intent(in) :: x
std = norm2(dble(x-sum(x)/size(x)))/sqrt(dble(size(x)))
end function

0

স্মাইলব্যাসিক, 105 বাইট (একটি ফাংশন হিসাবে)

আমি কেবল লক্ষ্য করেছি এটি একটি ফাংশন হতে অনুমতি দেওয়া হয়। ওফফ, এটি আমার উত্তর নাটকীয়ভাবে হ্রাস করে। এটি একটি ফাংশন সংজ্ঞায়িত করেS যা একটি অ্যারে নেয় এবং জনসংখ্যার মানক বিচ্যুতি ফিরিয়ে দেয়। ব্যাখ্যার জন্য অন্যটি পড়ুন, তবে পার্সিং অংশটি এড়িয়ে যান। আমি আর এটি করতে চাই না।

DEF S(L)N=LEN(L)FOR I=0TO N-1U=U+L[I]NEXT
U=1/N*U FOR I=0TO N-1T=T+POW(L[I]-U,2)NEXT RETURN SQR(1/N*T)END

প্রোগ্রাম হিসাবে, 212 বাইট

দুর্ভাগ্যক্রমে, আমাকে ইনপুট তালিকাটি স্ট্রিং হিসাবে নিতে হবে এবং এটি নিজেই পার্স করতে হবে। এটি উত্তরে 100 বাইটেরও বেশি যোগ করে, তাই যদি কমা-বিচ্ছিন্ন তালিকা ব্যতীত কিছু ইনপুট ফর্ম্যাট অনুমোদিত হয় তবে আমি এটি শুনে খুশি হব। এছাড়াও নোট করুন কারণ VALকৌতুকপূর্ণ, কমা হওয়ার আগে একটি জায়গা থাকা বা স্ট্রিংকে অনুসরণ করার পরে প্রোগ্রামটি ব্রেক হয়ে যায়। কমা পরে বা স্ট্রিংয়ের শুরুতে ঠিক আছে।

DIM L[0]LINPUT L$@L I=INSTR(O,L$,",")IF I>-1THEN PUSH L,VAL(MID$(L$,O,I-O))O=I+1GOTO@L ELSE PUSH L,VAL(MID$(L$,O,LEN(L$)-O))
N=LEN(L)FOR I=0TO N-1U=U+L[I]NEXT
U=1/N*U FOR I=0TO N-1T=T+POW(L[I]-U,2)NEXT?SQR(1/N*T)

অবহেলিত এবং ব্যাখ্যা:

DIM L[0]  'define our array
LINPUT L$ 'grab string from input

'parse list
'could've used something cleaner, like a REPEAT, but this was shorter
@L
I=INSTR(O,L$,",")                 'find next comma
IF I>-1 THEN                      'we have a comma
 PUSH L,VAL(MID$(L$,O,I-O))       'get substring of number, parse & store
 O=I+1                            'set next search location
 GOTO @L                          'go again
ELSE                              'we don't have a comma
 PUSH L,VAL(MID$(L$,O,LEN(L$)-O)) 'eat rest of string, parse & store
ENDIF                             'end

N=LEN(L) 'how many numbers we have

'find U
'sum all of the numbers, mult by 1/N
FOR I=0 TO N-1
 U=U+L[I]
NEXT
U=1/N*U

'calculate our popstdev
'sum(pow(x-u,2))
FOR I=0 TO N-1
 T=T+POW(L[I]-U,2)
NEXT
PRINT SQR(1/N*T) 'sqrt(1/n*sum)

0

অ্যাক্সিয়াম, 137 বাইট

m(a:List Float):Complex Float==(#a=0=>%i;reduce(+,a)/#a)
s(a:List Float):Complex Float==(#a=0=>%i;n:=m(a);sqrt(m([(x-n)^2 for x in a])))

এম () ফাংশনটি ইনপুটটিতে তালিকার গড়টি ফিরে আসবে। ত্রুটিযুক্ত উভয় ফাংশন% i কাল্পনিক ধ্রুবক স্কয়ার্ট (-1) প্রদান করে। পরীক্ষা এবং ফলাফলের জন্য কোড। [তবে ফলাফল যদি ঠিক থাকে তবে এটি একটি জটিল সংখ্যার আসল অংশ]

(6) -> s([45,67,32,98,11,3])
   (6)  32.5303277300 15604966

(7) -> s([10035,436844,42463,44774])
   (7)  175656.7844135261 4035

(8) -> s([1,1,1,1,1,1])
   (8)  0.0


0

পিট , 13 বাইট

←Đ↔Ł↔е-²Ʃ⇹/√

স্ট্যান্ডার্ড বিচ্যুতির সূত্র কার্যকর করে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.