রোসটা স্টোন চ্যালেঞ্জ: যাইহোক গড়পড়তা কী?


38

রোজটা স্টোন চ্যালেঞ্জের লক্ষ্য হ'ল যতটা সম্ভব ভাষায় সমাধান লিখুন। আপনার প্রোগ্রামিং বহুভাষিকতা দেখান!

চ্যালেঞ্জ

লোকেরা যখন "গড়" শব্দটি ব্যবহার করে, তখন তারা সাধারণত গাণিতিক গড় বোঝায়, যা সংখ্যার সংখ্যার দ্বারা বিভক্ত সংখ্যার যোগফল। আছে, তবে, শব্দ আরো অনেক অর্থ সহ "গড়" সমন্বয়পূর্ণ গড় , জ্যামিতিক গড় , গাণিতিক গড় , দ্বিঘাত গড় , এবং contraharmonic গড়

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

ইনপুট

ইনপুটটি ইতিবাচক সংখ্যার একটি তালিকা হবে।

1,2,3,4,5
1.7,17.3,3.14,24,2.718,1.618
8.6
3,123456
10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602
3,4,4,6.2,6.2,6.2

আউটপুট

উপরের তালিকাভুক্ত ক্রমের পাঁচটি উপায় আউটপুট হবে (সুরেলা, জ্যামিতিক, গাণিতিক, চতুর্ভুজ, বিপরীতে) সুবিধাজনকভাবে, এটি ক্রমবর্ধমান ক্রমের সমান।

2.18978,2.6052,3,3.31662,3.66667
3.01183,4.62179,8.41267,12.2341,17.7915
8.6,8.6,8.6,8.6,8.6
5.99985,608.579,61729.5,87296.6,123453.
5.95799,14.3041,22.5453,27.9395,34.6243
4.5551,4.74682,4.93333,5.10425,5.28108

আই / ও ফর্ম্যাটে কিছু যুক্তিসঙ্গত প্রচ্ছন্নতা থাকবে তবে আমি বেশ কয়েকটি দশমিক যথাযথ স্থান চাই। যেহেতু আমি ভাসমান-পয়েন্ট আউটপুট চাই তাই আপনি ভাসমান-পয়েন্ট ইনপুট ধরে নিতে পারেন।

উদ্দেশ্য বিজয়ী মানদণ্ড

একটি উদ্দেশ্যমূলক বিজয়ী মানদণ্ড হিসাবে, এখানে: প্রত্যেকটি ভাষা স্বল্পতম এন্ট্রি লিখতে পারে সে সম্পর্কে পৃথক প্রতিযোগিতা, তবে সামগ্রিক বিজয়ী ব্যক্তি এই উপ-প্রতিযোগিতাগুলির মধ্যে সবচেয়ে বেশি জয়ী হবেন। এর অর্থ হ'ল যে ব্যক্তি বহু অস্বাভাবিক ভাষায় উত্তর দেন সে সুবিধা অর্জন করতে পারে। কোড-গল্ফ বেশিরভাগ ক্ষেত্রেই যখন একটি ভাষায় একাধিক সমাধান থাকে তখন একটি টাইব্রেকার: সংক্ষিপ্ততম প্রোগ্রাম সহ ব্যক্তি সেই ভাষার জন্য কৃতিত্ব পান।

যদি কোনও টাই থাকে, তবে বিজয়ী ব্যক্তি হবেন সবচেয়ে বেশি দ্বিতীয় স্থান অধিকারী (এবং আরও কিছু) with

বিধি, বিধিনিষেধ এবং নোটস

আপনার প্রোগ্রাম 2 শে সেপ্টেম্বর, 2014 এর পূর্বে বিদ্যমান যে কোনও ভাষায় লেখা যেতে পারে। আরও কিছু অস্বাভাবিক / রহস্যময় ভাষায় রচিত কিছু প্রতিক্রিয়া যাচাই করার জন্য সম্প্রদায়ের উপরও নির্ভর করতে হবে, যেহেতু আমার পরীক্ষা করার সম্ভাবনা নেই তাদের।

দয়া করে আপনার সমস্ত ভিন্ন জমাটি একক উত্তরের মধ্যে রেখে দিন।

এছাড়াও, সামান্য ভিন্ন ভাষার উপভাষায় মূলত একই উত্তর সহ কোনও শেনানিগান নেই। কী জমা দেওয়ার পক্ষে যথেষ্ট আলাদা তা আমি বিচারক হব।


বর্তমান লিডারবোর্ড

ভাষার সংখ্যা এবং প্রত্যেকটিতে কে নেতৃত্ব দিচ্ছেন তা প্রদর্শনের জন্য এই বিভাগটি পর্যায়ক্রমে আপডেট করা হবে।

  • আলগোয়েড (337) - বিটা ক্ষয়
  • এপিএল (42) - অ্যালগরিদমশর্ক
  • আওক (78) - ডেনিস
  • বিবিসি বেসিক (155) - বিটা ক্ষয়
  • সি (136) - ডেনিস
  • সি ++ (195) - জিটা
  • সি # (197) - মার্টিন বাটনার
  • সিজেম (43) - ডেনিস
  • ক্লোজার (324) - মাইকেল ইস্টার
  • কোবরা (132) - আমাদের
  • কফিস্ক্রিপ্ট (155) - মার্টিন বাটনার
  • কমোডোর বেসিক (104) - চিহ্ন
  • কমন লিস্প (183) - ডিএলকস
  • এরলং (401) - চিহ্ন
  • ফরট্রান (242) - কাইল কানোজ
  • ফোর্টরান 77 (286) - বিটা ক্ষয়
  • জিএনইউ বিসি (78) - ডেনিস
  • গল্ফস্ক্রিপ্ট (83) - ডেনিস
  • গ্রোভি (157) - মাইকেল ইস্টার
  • হাস্কেল (140) - জিটা
  • জে (28) - অ্যালগরিদমশর্ক
  • জাভা (235) - মাইকেল ইস্টার
  • জাভাস্ক্রিপ্ট (ES6) (112) - ডেনিস
  • জেউবি (538) - মাইকেল ইস্টার
  • জুলিয়া (79) - মার্টিন বাটনার
  • লুয়া (113) - AndoDan
  • গণিত (65) - মার্টিন বাটনার
  • মতলব ()৩) - মার্টিন বাটনার
  • অক্টাভা (68) - ডেনিস
  • Openscript (849?) - কোতো
  • পাস্কাল (172) - চিহ্ন
  • পার্ল (76) - গ্রিমি
  • পিএইচপি (135) - ডেনিস
  • পিওভ-রে 3.7 (304) - চিহ্ন
  • প্রোলোগ (235) - ডিএলকস
  • পাইথ (52) - ডেনিস
  • পাইথন 2 (96) - ডেনিস
  • পাইথন 3 (103) - ডিএলকস
  • প্রশ্ন (53) - অ্যালগরিদমশর্ক
  • কিউনিয়াল (68) - অ্যালগরিদমশর্ক
  • কিউব্যাসিক (96) - ডিএলকাস
  • আর (91) - প্ল্যানাপাস
  • রুবি (118) - মার্টিন বাটনার
  • মরিচা (469) - vi।
  • স্কালা (230) - মাইকেল ইস্টার
  • টি-এসকিউএল (122) - মিকিটি
  • টিআই-বেসিক (85) - Ypnypn
  • টাইপস্ক্রিপ্ট (393) - rink.attendant.6
  • ভিবিএ (এক্সেল) (387) - স্ট্রেচ পাগল
  • wxMaxima (134) - কাইল কানস

বর্তমান ব্যবহারকারী র‌্যাঙ্কিং

  1. ডেনিস (10)
  2. মার্টিন বাটনার (6)
  3. মাইকেল ইস্টার (5)
  4. চিহ্ন, ডিএলকস, অ্যালগরিদমশর্ক (4)
  5. বিটা ক্ষয় (3)
  6. জিতা, কাইল কানোজ (২)
  7. আরিয়াস, আন্দোডান, সিওটিও, গ্রিমি, প্ল্যানাপাস, ভি।, মিকিটি, ইপনিপেন, রিঙ্ক.এটেন্ডেন্টেন্ট .6, স্ট্রেচ পাগল (১)

(যদি আমি উপরের র‌্যাঙ্কিংয়ে ভুল করে থাকি তবে আমাকে জানান এবং আমি এটি ঠিক করে দেব Also এছাড়াও, টাইব্রেকারটি এখনও প্রয়োগ করা হয়নি।)


আপনি যখন বলছেন যে আপনি I / O- এ হালকা আছেন, তার মানে কি ফাংশনগুলিও অনুমোদিত, বা সমস্ত কিছুর একটি প্রোগ্রাম হতে হবে (যতক্ষণ না কিছু ভাষায় এই ধারণাটি বোঝা যায়)?
মার্টিন এন্ডার

আপনি আমার প্রিয় গড়টি মিস করেছেন: লগারিদমিক মানে (a-b)/ln(a/b)। আমি স্বীকার করব যে কেবল আজই আমি এটি জানতে পেরেছিলাম যে এটি কীভাবে দুটির বেশি :
স্তর নদী সেন্ট

1
2 শে সেপ্টেম্বর, আহ?
অমলয়

1
এছাড়াও - লিনাক্সে যখন কমান্ডগুলি তৈরি করার কথা আসে bc, awkআপনি কি "ইত্যাদি" ভাষা "বা" কমান্ড "হিসাবে বিবেচনা করেন - তাই শেল থেকে এটি প্রয়োগের বিভিন্ন উপায়গুলি কি বিভিন্ন ভাষায় গণনা করা যায়?
ফ্লোরিস

2
@ ফ্লোরিস যদি সন্দেহ হয়: meta.codegolf.stackexchange.com/a/2073/8478
মার্টিন এন্ডার

উত্তর:


22

ভাষা: 1

ওপেনস্ক্রিপ্ট (বহু শত)

(আমার প্রিয় অস্পষ্ট এবং দু: খজনকভাবে প্রোগ্রামিং ভাষা অদৃশ্য হয়ে গেছে, কারণ আমি অনেক বছর আগে এটিতে প্রোগ্রামিং শিখেছি;)

openFile "inputs.txt"
readFile "inputs.txt" to EOF

put it into my input_string

closeFile "inputs.txt"

local inputs[]

fill the inputs with my input_string in [item] order

put 0 into the harmonic_mean
put 0 into the geometric_mean
put 0 into the arithmetic_mean
put 0 into the quadratic_mean

put the length of the inputs into n

step i from 1 to n
    get inputs[i]
    increment the harmonic_mean by 1/it
    increment the geometric_mean by log( it )
    increment the arithmetic_mean by it
    increment the quadratic_mean by it*it
end

get "outputs.txt"
createFile it

writeFile n/harmonic_mean                & "," to it 
writeFile exp( geometric_mean/n )        & "," to it
writeFile arithmetic_mean/n              & "," to it
writeFile sqrt( quadratic_mean/n )       & "," to it
writeFile quadratic_mean/arithmetic_mean to it

closeFile it

21
put the length of the inputs into n? ও_ও আমি এই ভাষাটি ইতিমধ্যে ভালবাসি।
DLosc

2
বাক্যবিন্যাস আমাকে শেফের কথা মনে করিয়ে দেয় ।
কমিন্টার্ন

2
সিনট্যাক্সটি আমাকে সিওবিওএল সম্পর্কে মনে করিয়ে দেয়।
আমদান

3
একটি এমনকি আরও চরম (এবং ব্যবহারের নির্দিষ্ট) "স্বাভাবিক" খুঁজছেন ভাষার ক্ষেত্রে, বোঝাও 7. খুঁজে বার করো
Beska

3
অবহিত করা 7 একটি আসল ভাষা - এটি কেবলমাত্র I / O একটি পাঠ্য অ্যাডভেঞ্চার। লোকেরা এতে দাবা ইঞ্জিন লিখে রেখেছে
জেরি যেরেমিয়া

18

ভাষা: 13

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

সি, 196 190 171 165 বাইট

main(int c,char**v){float n=c-1,x,h,g=1,q,a=h=q=0;for(;c-1;h+=1/x,g*=pow(x,1/n),a+=x/n,q+=x*x/n)sscanf(v[--c],"%f",&x);printf("%f,%f,%f,%f,%f",n/h,g,a,sqrt(q),q/a);}

স্বতন্ত্র কমান্ড লাইন আর্গুমেন্ট হিসাবে ইনপুটটি পড়ে এবং STDOUT- এর উপায়গুলির একটি কমা-বিভাজিত তালিকা লিখে।

কুইন্টিনের কিছু উন্নতির জন্য ধন্যবাদ।

সি ++, 200 বাইট

এটি উপরের সি কোডের সমান, প্লাস দুটি অন্তর্ভুক্ত। আমি এটি অন্তর্ভুক্ত করছি কারণ এটি বিজয়ী সি ++ জমা দেওয়ার চেয়ে দীর্ঘতর, সুতরাং আমি অনুমান করি যে কোনও ক্ষতি করা হয়নি, এবং আমি এই পোস্টটিটি আমার জানার প্রতিটি ভাষায় থাকতে চাই to :)

#include <cmath>
#include <cstdio>
main(int c,char**v){float n=c-1,x,h,g=1,q,a=h=q=0;for(;c-1;h+=1/x,g*=pow(x,1/n),a+=x/n,q+=x*x/n)sscanf(v[--c],"%f",&x);printf("%f,%f,%f,%f,%f",n/h,g,a,sqrt(q),q/a);}

সি #, 220 197 বাইট

namespace System{using Linq;class F{double[]f(double[]l){double n=l.Length,a=l.Sum()/n,q=l.Sum(x=>x*x)/n;return new[]{n/l.Sum(x=>1/x),l.Aggregate((p,x)=>p*Math.Pow(x,1.0/n)),a,Math.Sqrt(q),q/a};}}}

ক্লাসে একটি ফাংশন সংজ্ঞা দেয় Listযা ডাবলস গ্রহণ করে এবং পাঁচটি দিয়ে ডাবলসের একটি অ্যারে প্রদান করে।

ভিজ্যুয়াল মেলন এবং ববকে কিছু উন্নতির জন্য ধন্যবাদ।

সিজেম, 52 বাইট

ea_,:L;:d_Wf#:+L\/\_:*1Ld/#\_:+L/:A\2f#:+L/:QmqQA/]p

কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয় এবং STDOUT এ পাঁচটি মান সহ একটি তালিকা মুদ্রণ করে।

কফিস্ক্রিপ্ট, 155 বাইট

এটি আরও নিচে জাভাস্ক্রিপ্ট সমাধানের সমান (এবং প্রথমদিকে আমি এ কারণে এটি গণনা করি নি), তবে ওপি এটিকে যাইহোক স্কোরবোর্ডে অন্তর্ভুক্ত করেছিল, তাই আমি এটিকে সম্পূর্ণ জমা দেওয়ার জন্য প্রচার করেছি। তারা হয় সব পরে টেকনিক্যালি বিভিন্ন ভাষায়।

f=(l)->l.r=l.reduce;n=l.length;[n/l.r(((s,x)->s+1/x),0),Math.pow(l.r(((p,x)->p*x),1),1/n),a=l.r(((s,x)->s+x),0)/n,Math.sqrt(q=l.r(((s,x)->s+x*x),0)/n),q/a]

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

f=l=>{l.r=l.reduce;n=l.length;return[n/l.r((s,x)=>s+1/x,0),Math.pow(l.r((p,x)=>p*x,1),1/n),a=l.r((s,x)=>s+x,0)/n,Math.sqrt(q=l.r((s,x)=>s+x*x,0)/n),q/a]}

একটি সংখ্যার অ্যারে নিয়ে ফাংশন সংজ্ঞা দেয় এবং পাঁচটি অর্থ দিয়ে একটি অ্যারের ফিরিয়ে আনবেন।

উইলিয়াম বারবোসায় কিছু উন্নতির জন্য ধন্যবাদ।

জুলিয়া, 79 বাইট

f(l)=(n=length(l);[n/sum(1/l),prod(l)^(1/n),a=mean(l),q=norm(l)/sqrt(n),q*q/a])

সংখ্যার একটি তালিকা নিয়ে ফাংশন সংজ্ঞা দেয় এবং পাঁচটি অর্থ দিয়ে একটি তালিকা ফেরত দিন।

লুয়া, 120 বাইট

f=function(l)h=0;q=0;a=0;g=1;for i=1,#l do x=l[i]h=h+1/x;a=a+x/#l;g=g*x^(1/#l)q=q+x*x/#l end;return#l/h,g,a,q^.5,q/a end

সংখ্যার তালিকা নিয়ে ফাংশন সংজ্ঞায়িত করে এবং এর জন্য 5 টি পৃথক মান প্রদান করে।

গণিত, 73 67 65 বাইট

f[l_]:={1/(m=Mean)[1/l],GeometricMean@l,a=m@l,Sqrt[q=m[l*l]],q/a}

ভাসমান পয়েন্ট সংখ্যাগুলির তালিকা গ্রহণ এবং পাঁচটি দিয়ে একটি তালিকা ফেরত ফাংশনকে সংজ্ঞায়িত করে।

মজাদার ঘটনা: গাণিতিকের সমস্ত 5 টি অর্থ অন্তর্নির্মিত (এবং এটি ছিল আমার আসল জমা), তবে তাদের তিনটিই তাদের ফাংশনের নামের চেয়ে কম অক্ষরে প্রয়োগ করা যেতে পারে।

মতলব, 65 63 বাইট

l=input('');a=mean(l);q=rms(l);harmmean(l)
geomean(l)
a
q
q*q/a

ব্যবহারকারীর কাছ থেকে সংখ্যার অ্যারে হিসাবে ইনপুটটি অনুরোধ করে এবং পৃথকভাবে পাঁচটি অর্থ আউটপুট করে।

ডেনিস জহেরুদ্দিনের কিছু উন্নতির জন্য ধন্যবাদ

পিএইচপি ≥ 5.4, 152 149 143 বাইট

function f($l){$g=1;$n=count($l);foreach($l as$x){$q+=$x*$x/$n;$h+=1/$x;$g*=pow($x,1/$n);}return[$n/$h,$g,$a=array_sum($l)/$n,sqrt($q),$q/$a];}

পূর্ববর্তীগুলির হিসাবে একই কার্যকরী বাস্তবায়ন।

ইসমাইল মিগুয়েলে কিছু উন্নতির জন্য ধন্যবাদ।

পাইথন 2, 127 বাইট

def f(l):n=len(l);a=sum(l)/n;q=sum(x*x for x in l)/n;return[n/sum(1/x for x in l),reduce(lambda x,y:x*y,l)**(1./n),a,q**.5,q/a]

পূর্ববর্তীগুলির হিসাবে একই কার্যকরী বাস্তবায়ন।

রুবি, 129 118 বাইট

f=->l{n=l.size
r=->l{l.reduce :+}
[n/r[l.map{|x|1/x}],l.reduce(:*)**(1.0/n),a=r[l]/n,(q=r[l.map{|x|x*x}]/n)**0.5,q/a]}

পূর্ববর্তীগুলির হিসাবে একই কার্যকরী বাস্তবায়ন।


আমি বুঝতে পারি এটি সত্যের পরে, তবে আপনি তার norm(l)/n^.5জায়গায় ব্যবহার করে 3 জুলিয়া বাইট হারাতে পারেন norm(l)/sqrt(n)
অ্যালেক্স এ।

13

4 টি ভাষা

জে - 32 28 চর!

এটির একক যুক্তি হিসাবে সংখ্যার তালিকা গ্রহণ করা একটি ক্রিয়া।

%a,^.a,[a(,,]%%)*:a=.+/%#&.:

a এখানে একটি ক্রিয়াকলাপটি যা দ্বিতীয় আদেশের ক্রিয়াকলাপে জে'র গ্রহণ।

  • +/ % # জে র একটি ট্রেন, যার অর্থ যোগ বিভাজক গণনা, পাটিগণিত গড়ের সংজ্ঞা।
  • &.:আন্ডার নামক একটি সংমিশ্রণ, যেখানে u&.:v(y)এর সমতুল্য vi(u(v(y)))এবং viএর কার্যকরী বিপরীত v। হ্যাঁ, জে কার্যকর ক্রিয়াকলাপ নিতে পারে
  • পরিশেষে, জে এর একটি কার্যকর বৈশিষ্ট্য হ'ল নির্দিষ্ট ফাংশনগুলি স্বয়ংক্রিয়ভাবে তালিকাগুলির উপরে লুপ করতে পারে, কারণ জে জানে সেগুলি পুরোপুরি যুক্তিতে প্রয়োগ করা যদি বুদ্ধিমান না হয় তবে সেগুলি বিন্দুগতভাবে প্রয়োগ করতে জানে। সুতরাং একটি তালিকার বর্গ হল বর্গক্ষেত্রের একটি তালিকা, উদাহরণস্বরূপ।

এইভাবে aবামে একটি ফাংশন নেয় এবং একটি অর্থ প্রদান করে যে ফাংশন দ্বারা মানগুলি "অ্যাডজাস্ট" করে, গাণিতিক গড় গ্রহণ করে এবং তারপরে সামঞ্জস্যতাটিকে বিপরীত করে।

  • %aহারমোনিক গড়, কারণ %অর্থ পারস্পরিক, এবং এটির নিজস্ব বিপরীত।
  • ^.aজ্যামিতিক গড়, কারণ ^.প্রাকৃতিক লোগারিদম এবং এর বিপরীতমুখী হ'ল ঘনিষ্ঠ।(Π x)^(1/n) = exp(Σ log(x)/n)
  • [aপাটিগণিত গড়, কারণ [পরিচয় ফাংশন।
  • *:a*:চতুষ্কোণ গড়, কারণ এটি স্কোয়ার এবং এর বিপরীতটি বর্গমূল।
  • Contraharmonic আমাদের সমস্যার পুরো হোস্ট দেয় the বর্গাকার গড়কে ভাগ করে দেয় — সুতরাং এটি পাওয়ার জন্য আমরা কিছুটা গণিত করি: ( *:aদ্বারা [aবিভক্ত ( বিভক্ত *:a))। এই মত দেখাচ্ছে [a(]%%)*:a। আমরা এটির সময়ে, আমরা প্রতিটি মাধ্যমকে আগেই অর্থ প্রদান করি [a(,,]*%~)*:a,।

অবশেষে, আমরা বাকি ফলাফলগুলি একসাথে যুক্ত করতে কমা ব্যবহার করি। আমাদের আর কোনও প্যারেন দরকার নেই কারণ কনটেক্সটেশন (এই ক্ষেত্রে কমপক্ষে) সহযোগী।

জে আরপিএল-তে ব্যবহৃত:

   (%a,^.a,[a(,,]%%)*:a=.+/%#&.:) 1,2,3,4,5   NB. used inline
2.18978 2.60517 3 3.31662 3.66667
   f =: %a,^.a,[a(,,]%%)*:a=.+/%#&.:          NB. named
   f 1.7,17.3,3.14,24,2.718,1.618
3.01183 4.62179 8.41267 12.2341 17.7915
   f 8.6
8.6 8.6 8.6 8.6 8.6
   f 3,123456
5.99985 608.579 61729.5 87296.6 123453
   f 10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602
5.95799 14.3041 22.5453 27.9395 34.6243
   f 3,4,4,6.2,6.2,6.2
4.5551 4.74682 4.93333 5.10425 5.28108

প্রশ্ন - 53 চর

একক যুক্তি ফাংশন। আমরা কেবল আমাদের চাই সমস্ত উপায়ের একটি তালিকা তৈরি করি।

{s:(a:avg)x*x;(1%a@1%x;exp a log x;a x;sqrt s;s%a x)}

কে এর অন্যান্য সংস্করণে একই জিনিস নীচে।

  • k4, 51 চর: {s:(a:avg)x*x;(%a@%x;exp a log x;a x;sqrt s;s%a x)}
  • k2, 54 চর: {s:(a:{(+/x)%#x})x*x;(%a@%x;(*/x)^%#x;a x;s^.5;s%a x)}

এপিএল - 42 চর

যুক্তি হিসাবে ফাংশন তালিকা।

{(÷M÷⍵)(*M⍟⍵)A(S*.5),(S←M⍵*2)÷A←(M←+/÷≢)⍵}

বিস্ফোরণ দ্বারা ব্যাখ্যা:

{                                         } ⍝ function with argument ⍵
                                   +/÷≢     ⍝ Sum Divide Length, aka mean
                                 M←         ⍝ assign function to M for Mean
                              A←(M     )⍵   ⍝ arithmetic Mean, assign to A
                     (S←M⍵*2)               ⍝ Mean of squares, assign to S
                      S      ÷A             ⍝ S divide A, aka contraharmonic mean
              (S*.5)                        ⍝ sqrt(S), aka quadratic mean/RMS
                    ,                       ⍝ concatenate into a list
             A                              ⍝ prepend A (APL autoprepends to lists)
        *M⍟⍵                                ⍝ exp of Mean of logs, aka geometric
       (    )                               ⍝ prepend (auto)
  ÷M÷⍵                                      ⍝ recip of Mean of recips, aka harmonic
 (    )                                     ⍝ prepend (auto)

কিউনিয়াল - 68 চর

আপনি এই একটি ভালবাসেন করতে যাচ্ছেন।

op\{$is/[+,tally];^is$*[pass,pass];[1/$(1/),exp$ln,$,sqrt^,/[^,$]]\}

Q'Nial অন্য অ্যারের ওরিয়েন্টেড ভাষা, একটি বাস্তবায়ন Nial , যা স্যাম পথ Haskell, উপর বিভাগ তত্ত্ব ভিত্তি করে একটি অস্পষ্ট এরে তত্ত্ব উপর ভিত্তি করে। (এটি এখানে পাবেন )) এটি অন্য তিনটির থেকে একেবারেই আলাদা left এটি প্রথমে বাম থেকে ডানটিকে পার্স করে — তবে এটি অন্য যে কোনও ভাষার চেয়ে আরও বেশি সম্পর্কিত them


আমি জানতাম এপিএলে এটি করার আরও ভাল উপায় ছিল। সুতরাং আমি তার ডানদিকে সংজ্ঞায়িত একটি পরিবর্তনশীলকে ডিফার করতে পারি ; আমি নিজেই ভাবিনি ... - এই জে কোডটি চিত্তাকর্ষক! যতবার আমি আপনার উত্তরগুলির একটি দেখতে পাচ্ছি, আমি নিজেকে বলি আপনাকে সেই ভাষাটি শিখতে হবে। , তবে তারপরে আমি কিছু ডকুমেন্টেশন / টিউটোরিয়াল পড়া শুরু করি এবং হঠাৎ আমি জানতে পারি না আমি ইংরেজি ক্লাসে বা ট্রেন স্টেশনে আছি কিনা ...: পি
ডেনিস

@ ডেনিস ইয়ে, এপিএল / জে / কে অ্যাসাইনমেন্টগুলি মানগুলি ফেরত দেয় (বেশিরভাগ সময়!)। এবং ধন্যবাদ. :) জে শিখার সময়, আপনার ঘরের ভাষার কোন অংশের সাথে কী মিল রয়েছে তা বিভ্রান্ত হওয়া শুরু করতে পারে, তাই আপনাকে নতুন করে শুরু করতে বাধ্য করার জন্য ডকস লেখার সময় আইভারসন মূলত এফ-শব্দ (ফাংশন) নিষিদ্ধ করেছিলেন। এটির সাথে ঘূর্ণায়মান এবং পরে নিজের নিজস্ব উপমাটি নিয়ে আসার এটি করার সহজতম উপায়।
অ্যালগরিদমশর্ক

আমি এখনও এপিএল বজায় রাখি এখন পর্যন্ত সবচেয়ে পঠনযোগ্য অ্যারে ভাষা। "লেখার জন্য কেবল" ছিনতাইয়ের জন্য এত কিছু! খুব খারাপ জিএনইউ এপিএল আধুনিক সিনট্যাক্সগুলির (নেস্টেড ডি-ফানস, লেক্সিকাল স্কোপিং, কন্ডিশনাল রিটার্ন, হুকস এবং ট্রেন ... নরক, এটি আঁকড়ে ধরেছে /⍨) সমর্থন করে না ) এটি সম্ভবত পুরানো কোড পোর্ট করার জন্য বোঝানো হয়েছিল। তুমি কি ব্যবহার কর? Dyalog? NARS2000? আমি মনে করি এটি সত্যিই দুর্ভাগ্য যে জে ASCII শব্দদণ্ড গ্রহণ করেছে took এই ভাষার বাস্তবায়ন অন্যথায় প্রতিভা একটি কাজ। তবে আমি মানসিকভাবে পার্স করতে বিরক্ত হতে পারি না]a(,,]*%~)*:a
টোবিয়া

@ টোবিয়া আমি সংক্ষেপে ডায়ালগ ব্যবহার করেছি, তবে আমি আসলে খুব সহজেই এপিএলটি জানি। আমি বেশিরভাগই জে / কে ফ্যানবয় কারণ এএসসিআইআই বহনযোগ্য, এবং র‌্যাঙ্কের মডেলগুলি এপিএলের চেয়ে বেশি বুদ্ধিমান। ( [0.5]? প্রাক।) অনুশীলনের সাথে, আপনি যদিও জেতে অভ্যস্ত হন। এটি এর চেয়ে অনেক খারাপ হয়ে যায়।
অ্যালগরিদমশর্ক

12

12 টি ভাষা


সিজেম, 45 44 43 বাইট

q~:Q,:LQWf#:+/Q:*LW##Q:+L/_Q2f#:+L/_mq\@/]`

[1.0 2.0 3.0 4.0 5.0]এসটিডিআইএন থেকে একটি অ্যারে ফ্লোট (উদাহরণস্বরূপ ) পড়ে। এটি অনলাইনে চেষ্টা করুন।


এপিএল, 67 61 53 52 50 বাইট

{(N÷+/÷⍵)(×/⍵*÷N)A(Q*÷2),(Q←+/(⍵*2)÷N)÷A←+/⍵÷N←⍴⍵}

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


পাইথ, 55 52 বাইট

JyzKlJ=YcsJK=Zcsm^d2JK(cKsmc1kJ ^u*GHJc1K Y ^Z.5 cZY

1 2 3 4 5STDIN থেকে স্থান-বিভাজিত সংখ্যাগুলি (যেমন, ) পড়ুন।


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

#!/usr/bin/octave -qf
[mean(I=input(''),"h") mean(I,"g") a=mean(I) q=mean(I.*I)**.5 q*q/a]

শেবাং গুনছে না। [1 2 3 4 5]STDIN থেকে একটি অ্যারে (যেমন, ) পড়ে Read


জিএনইউ বিসি, by 78 বাইট

#!/usr/bin/bc -l
while(i=read()){h+=1/i;g+=l(i);a+=i;q+=i*i;n+=1}
n/h;e(g/n);a/n;sqrt(q/n);q/a

শেবাংকে 1 বাইট ( -lস্যুইচ) হিসাবে গণনা করা হচ্ছে । একটি শূন্যের পরে এসটিডিআইএন থেকে সাদা স্থান পৃথকীকরণের ফ্লোটগুলি পড়ে।


ওও, 78 বাইট

#!/usr/bin/awk -f
{h+=1/$0;g+=log($0);a+=$0;q+=$0^2;n++}END{print n/h,exp(g/n),a/n,(q/n)^.5,q/a}

শেবাং গুনছে না। STDIN থেকে প্রতি লাইনে একটি নম্বর পড়ে।


গল্ফস্ক্রিপ্ট, 86 83 বাইট

n%{~.2.-1:$??./*\`,10\?/\+\;}%..,:^0@{$?+}//p.{*}*^$??p.{+}*^/.p\0\{.*+}/^/.2$??p\/

গল্ফস্ক্রিপ্টের ফ্লোটগুলির জন্য কোনও অন্তর্নির্মিত সমর্থন নেই, তাই কোডটি তাদের পার্স করছে। অতএব, ইনপুট বিন্যাস বরং নিয়ন্ত্রণমূলক হল: আপনি ইনপুট অবশ্যই 1.0এবং 0.1বদলে 1, 1.বা .1

এসটিডিআইএন থেকে একের পর এক ভাসমান (উপরে বর্ণিত হিসাবে) পড়ুন। এটি অনলাইনে চেষ্টা করুন।


পার্ল, 90 85 বাইট

#!/usr/bin/perl -n
$h+=1/$_;$g+=log;$a+=$_;$q+=$_**2}{$,=$";print$./$h,exp$g/$.,$a/$.,($q/$.)**.5,$q/$a

শেবাংকে 1 বাইট ( -nস্যুইচ) হিসাবে গণনা করা হচ্ছে । STDIN থেকে প্রতি লাইনে একটি নম্বর পড়ে।


পাইথন 2, 102 96 বাইট

#!/usr/bin/python
h=a=q=n=0;g=1
for i in input():h+=1/i;g*=i;a+=i;q+=i*i;n+=1
print n/h,g**n**-1,a/n,(q/n)**.5,q/a

শেবাং গুনছে না। 1.0,2.0,3.0,4.0,5.0STDIN থেকে ভাসমান (যেমন, ) এর একটি তালিকা পড়ে।


ECMAScript 6 (জাভাস্ক্রিপ্ট), 114 112 বাইট

m=I=>{for(g=1,h=a=q=n=0,p=Math.pow;i=I.pop();h+=1/i,g*=i,a+=i,q+=i*i)n++;
return[n/h,p(g,1/n),a/n,p(q/n,.5),q/a]}

এলএফ গণনা করা হচ্ছে না। [1,2,3,4,5]আর্গুমেন্ট হিসাবে একটি অ্যারের (যেমন, ) প্রত্যাশা করে ।


পিএইচপি, 135 (বা 108?) বাইট

#!/usr/bin/php
<?for($c=1;$c<$argc;$c++){$i=$argv[$c];$h+=1/$i;$g+=log($i);$a+=$i;$q+=$i*$i;$n++;}
print_r([$n/$h,exp($g/$n),$a/$n,sqrt($q/$n),$q/$a]);

শেবাং বা এলএফ গণনা করা হচ্ছে না। কমান্ড-লাইন আর্গুমেন্ট হিসাবে ভাসমানগুলি পড়ে।

আমার একটি সংক্ষিপ্ত সমাধান রয়েছে তবে আমি কীভাবে বাইটগুলি গণনা করতে পারি তা জানি না:

php -R '$i=$argn;$h+=1/$i;$g+=log($i);$a+=$argn;$q+=$i^2;$n++;' \
-E 'print_r([$n/$h,exp($g/$n),$a/$n,sqrt($q/$n),$q/$a]);'

প্রতিটি কোড স্ট্রিংয়ে বাইটগুলি গণনা করা এবং এর জন্য দুটি যুক্ত করা -Rএবং -Eএই পদ্ধতির 108 স্কোর হবে।


সি, 172 140 139 137 136 বাইট

float i,h,g=1,a,q,n;main(){for(;scanf("%f",&i)+1;n++)h+=1/i,g*=i,a+=i,q+=i*i;
printf("%f %f %f %f %f",n/h,pow(g,1/n),a/n,sqrt(q/n),q/a);}

এলএফ গণনা করা হচ্ছে না। সঙ্গে সংকলন gcc -lm। STDIN থেকে সাদা স্থান পৃথকীকরণের ফ্লোট পড়ুন।


আপনি সি: while(cond)...,n++;বনামfor(;cond;n++)...;
জেটা

আমাদের কি সত্যিই আমাদের গণনাগুলিতে শেবাং লাইনগুলি অন্তর্ভুক্ত করা দরকার?
অরেগন ট্রেইল

@ অরেগন ট্রেইল: আমি কোডটিতে শেবাংগুলিকে অন্তর্ভুক্ত করেছি যেহেতু প্রতিটি জমা দেওয়ার জন্য এটি চালানোinterpreter switches script ব্যাখ্যা করার চেয়ে সহজ । কনভেনশনটি হ'ল শেবাং লাইন গণনা করা হয় না, যদি না অ-ডিফল্ট সুইচ থাকে। আমার উত্তরে বলা হয়েছে, আমি #!/usr/bin/awk -fশূন্য বাইট হিসাবে গণনা করেছি ( -fফাইল থেকে প্রোগ্রাম পড়ার অর্থ), তবে #!/usr/bin/perl -nএকটি বাইট হিসাবে ( -nইনপুট লাইনের উপরে পুনরাবৃত্তি)।
ডেনিস

আপনি -qঅষ্টাভে এবং -lmসি জন্য গণনা করা উচিত নয় ?
nyuszika7h

-qনিখুঁত আউটপুট হয়। -lmজিসিসি দ্বারা প্রয়োজন। অন্যান্য সংকলকগুলির noy এর প্রয়োজন হতে পারে।
ডেনিস

6

জে (50):

এই ধরণের জিনিসটি জেতে ভাল:

(#%+/@:%),(#%:*/),(+/%#),%:@(%@#*+/@:*:),+/@:*:%+/

বরাবরের মতো: স্মাইলি কারখানায় বিস্ফোরণ। যাইহোক, কিছু স্মাইলি এবার আশেপাশে অক্ষত ছিল: :)এবং :*:(এটি চারটি চোখ এবং তার মুখের মধ্যে একটি রত্ন এমবেডেড একটি লোক) আমার ইন্টারেক্টিভ সেশন যা এটি তৈরি করতে ব্যবহৃত হয়েছিল: http://pastebin.com/gk0ksn2b

পদক্ষেপে:

   f=:(#%+/@:%),(#%:*/),(+/%#),%:@(%@#*+/@:*:),+/@:*:%+/
   f 1,2,3,4,5
2.18978 2.60517 3 3.31662 3.66667
   f 1.7,17.3,3.14,24,2.718,1.618
3.01183 4.62179 8.41267 12.2341 17.7915
   f 8.6
8.6 8.6 8.6 8.6 8.6
   f 3,123456
5.99985 608.579 61729.5 87296.6 123453
   f 10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602
5.95799 14.3041 22.5453 27.9395 34.6243
   f 3,4,4,6.2,6.2,6.2
4.5551 4.74682 4.93333 5.10425 5.28108

ব্যাখ্যা:

আপনি যেমনটি আশা করতে পারেন, সেখানে 5 টি ফাংশন রয়েছে যা কাঁটাচামচ এবং হুকের একটি ট্রেনের সাথে তালিকায় একত্রিত হয়। (এটি নিয়ে চিন্তা করবেন না, এটি একক তালিকায় একাধিক ফাংশন আউটপুট তৈরি করার সহজ উপায়)।

এই উত্তরটি জেনারেট করার জন্য আমি যে লাইনগুলি ব্যবহার করেছি তা কিছুটা পরিষ্কার হতে পারে:

   f=:harmonic , Geometric , arithmatic , rms , contraharmonic
   f
harmonic , Geometric , arithmatic , rms , contraharmonic
   f f.
(# % +/@:%) , (# %: */) , (+/ % #) , %:@(%@# * +/@:*:) , +/ %~ +/@:*:

আসুন তাদের আলাদাভাবে দেখুন।

সুরেলা

(# % +/@:%)
  • # - দৈর্ঘ্য (অ্যারের)
  • % - দ্বারা বিভক্ত
  • +/@:%- যোগফল ( +/, বা +অ্যারেরে ভাঁজ ( +/1 2 3 4== 1+2+3+4)) বিভাজনের উপরে, তবে এবার মোনাডিক ক্ষেত্রে। এখানে এর অর্থ কী, জে স্বয়ংক্রিয়ভাবে "অনুমান" করে যে 1 সবচেয়ে দরকারী মান হবে।

জ্যামিতিক

(# %: */)
  • # - দৈর্ঘ্য (অ্যারের)
  • %:- মূল ( 4 %: 7সাতটির চতুর্থ (বা সংক্ষিপ্ত) মূলের অর্থ হবে)
  • */- পণ্য ( এটির জন্য পূর্বের ফাংশনটির */অর্থ একই হয় +/)

পাটীগণিত

(+/ % #)
  • +/ - যোগফল, এখন জানা উচিত
  • % - দ্বারা বিভক্ত
  • # - দৈর্ঘ্য

রুট অর্থ বর্গ

%:@(%@# * +/@:*:)

আহ, হ্যাঁ ...

  • %: - এর মূল
    • %@# - দৈর্ঘ্যের বিপরীত
    • * - টাইমস
    • +/@:*:- স্কোয়ারের যোগফল ( *:স্কোয়ারযুক্ত, যদিও *~পাশাপাশি রয়েছে))

Contraharmonic

+/@:*: % +/
  • +/@:*: - বর্গাকার যোগফল
  • % - দ্বারা বিভক্ত
  • +/ - যোগফল.

আমি প্রকৃতপক্ষে জানতে পেরেছিলাম যে আমার ফাংশনটি এটির ব্যাখ্যা দিয়ে খুব দীর্ঘ এক বাইট দুটি বাইট ছিল, তাই ভাল!

যদি জে যদি স্ট্রিং প্রসেসিংয়ের ক্ষেত্রে কেবল এটিই ভাল থাকত তবে আমরা আরও অনেক গল্ফিং প্রতিযোগিতা জিততে চাই ...


এটা কি রেজিএক্স ?? : পি
ছোট শিশু

নিবন্ধন করুন এটি জে। ( Jsoftware.com )

5
@ লিটলচিল্ড: খুশি হও এটি এপিএল নয়
স্ল্যাবটম্যান

@ (...: - জে অবশ্যই উভয় terseness একটি মহান পেশা আছে এবং স্মাইলি ডিপার্টমেন্টে আমিও% পাওয়া যায়) এবং
Desty

5

ভাষা: 5

পিওভ-রে 3.7 দৃশ্য বর্ণনা ভাষা: 304 বাইট

#fopen I"i"read#declare S=0;#declare N=0;#declare Q=0;#declare P=1;#declare R=0;#while(defined(I))#read(I,V)#declare S=S+V;#declare N=N+1;#declare Q = Q+V*V;#declare P=P*V;#declare R=R+1/V;#end#warning concat(str(N/R,0,5),",",str(pow(P,1/N),0,5),",",str(S/N,0,5),",",str(sqrt(Q/N),0,5),",",str(Q/S,0,5))

(পিওভ-রে এসডিএলের কনসোল ইনপুট ফাংশন নেই, তাই আমি ফাইল ইনপুটটি প্রতিস্থাপন করেছি Out আউটপুটটি কনসোলের কাছে রয়েছে তবে প্রোগ্রাম স্ট্যাটাস আউটপুটটির একটি ভাল চুক্তি রয়েছে)

কমোডোর বেসিক: 111 104 বাইট

1 P=1:O┐1,0
2 I/#1 V:IF V=0T|G┌4
3 S=S+V:N=N+1:Q=Q+V*V:P=P*V:R=R+1/V:G┌2
4 ?N/R,P↑(1/N),S/N,(Q/N)↑.5,Q/S

(এই প্রোগ্রামের সমস্ত চরিত্রই ইউনিকোডে উপস্থাপন করা যায় না represent |প্রতিনিধিত্ব করতে SHIFT+H, উপস্থাপন করতে SHIFT+O, উপস্থাপন করতে SHIFT+P, /উপস্থাপন করতে ব্যবহৃত হয় SHIFT+NCom কমোডোর বেসিক I / O এর সীমাবদ্ধতার কারণে ইনপুটটি একবারে একটি সংখ্যাতে প্রবেশ করে, -1 এর ইনপুটটির শেষটি নির্দেশ করতে Out আউটপুটটি ট্যাব-বিস্মৃত হয়)

কিউব্যাসিক: 96 বাইট

P=1:INPUT V:WHILE V:S=S+V:N=N+1:Q=Q+V*V:P=P*V:R=R+1/V:INPUT V:WEND:?N/R;P^(1/N);S/N;(Q/N)^.5;Q/S

ডিএলসকের প্রবেশ হিসাবে একই আই / ও স্কিম ব্যবহার করে; আমি INPUT Vখালি লাইনটি ইনপুট (0 কমপক্ষে এমএস-ডস কিউব্যাসিক 1.1 - যখন এটি কিউবি 64 তেও কাজ করে) জানি না তবে 0 (যা মিথ্যাতে মূল্যায়ন করে) ফিরে আসে এই সত্যটি ব্যবহার করে আমি গল্ফড করেছিলাম it

পাস্কাল (এফপিসি সংকলক): 172 বাইট

program M;uses math;var v,p,s,n,q,r:real; begin p:=1;while not eoln do begin read(v);s:=s+v;n:=n+1;q:=q+v*v;p:=p*v;r:=r+1/v end;write(n/r,p**(1/n),s/n,(q/n)**0.5,q/s);end.

ইনপুটটি কমা দ্বারা নয়, ফাঁকা জায়গাগুলির দ্বারা পৃথক করা হয় এবং নতুন লাইন সমাপ্ত হয়। আউটপুট স্থান পৃথক।

এরলং: 401 বাইট

-module(means).
-import(io).
-import(math).
-import(string).
-import(lists).
-export([means/6]).

means(S,N,Q,P,R,[]) -> io:fwrite("~f,~f,~f,~f,~f~n", [N/R,math:pow(P,(1/N)),S/N,math:sqrt(Q/N),Q/S]);
means(S,N,Q,P,R,[V|T]) -> means(S+V,N+1,Q+V*V,P*V,R+1/V,T).

means:means(0,0,0,1,0,lists:map(fun({F,R}) -> F end, lists:map(fun(X) -> string:to_float(X) end, string:tokens(io:get_line(""), ",\n")))).

এরলংয়ে স্ট্রিং হ্যান্ডলিং একটি রাজকীয় ব্যথা। ফলস্বরূপ, সমস্ত ভাসমান-পয়েন্ট নম্বর দশমিক পয়েন্টের পরে কমপক্ষে একটি অঙ্কের সাথে প্রবেশ করাতে হবে - string:to_float/1রূপান্তরিত হবে না 1, তবে রূপান্তর করবে 1.0

(আরও অনেক কিছু আসার কথা, বিশেষত যদি আমি রোবটকে কীভাবে এটি করতে পারি তা যদি ভাসমান-পয়েন্ট অপারেশন বা I / O নয় এমন একটি ভাষা)


আমি আমার কমোডর 64
একোয়া অ্যালেক্স


একজন সহযোগী কিউবাসিক ফ্যান! বৈধ ইনপুট হিসাবে আমাদের 0 টি হ্যান্ডেল করতে হবে না তা বুঝতে পেরে আমি স্বাধীনভাবে একই জিনিসটি নিয়ে এসেছি। ;) আমি দেখতে পেয়েছি (Q/N)^.5আপনি আমার সাথে ব্যবহার করেছেন SQR(q/n)তবে এটি দৈর্ঘ্যের উপর প্রভাব ফেলবে না। আমরা নেতৃত্ব ভাগ করতে পারে? (আমি বাইট গণনাটি
make৯ টি করি, এর পরেও

@ ডিএলকাস, আমার বাইট কাউন্টারে ( wc) বদ্ধমূল নিউলাইন অন্তর্ভুক্ত রয়েছে, যা আমি মনে করি যে আমাদের উভয়কেই নেতৃত্ব দেয় - কমপক্ষে আমি কীভাবে সেই অনুলিপিটি থেকে মুক্তি পাব তা নির্ধারণ না করা পর্যন্ত INPUT V
চিহ্নিত করুন

শুভকামনা। : ^) আমি GOTOলুপের পরিবর্তে কিছু অভিনব জিনিস চেষ্টা করেছি , তবে আর কোনও হ্রাস পেলাম না।
ডিএলসক

5

ভাষা: 3

অন্যথায় উল্লিখিত না হলে, সংখ্যাগুলি স্পেস দ্বারা পৃথক করা প্রয়োজন।

সি: 181 163

ইনপুট শেষ পর্যন্ত সংখ্যা নেয় T

#include<math.h>
main(){double h=0,g=1,a=0,q=0,k,n=0;for(;scanf("%lf",&k);++n)h+=1/k,g*=k,a+=k,q+=k*k;printf("%f %f %f %f %f\n",n/h,pow(g,1/n),a/n,sqrt(q/n),q/a);}

(আইএসও) সি ++: 195

ইনপুট শেষ পর্যন্ত সংখ্যা নেয় T

#include<iostream>
#include<cmath>
int main(){double h=0,g=1,a=0,q=0,k,n=0;for(;std::cin>>k;++n)h+=1/k,g*=k,a+=k,q+=k*k;std::cout<<n/h<<" "<<pow(g,1/n)<<" "<<a/n<<" "<<sqrt(q/n)<<" "<<q/a<<"\n";}

হাস্কেল: 185 180 164 159 149 140

নিউলাইন দ্বারা বিভক্ত সংখ্যাগুলির তালিকা ইচ্ছাকৃতভাবে নেয়।

বাস্তবায়ন

m=map
f x=let{s=sum;n=s$m(\_->1)x;t=s$m(^2)x}in[n/s(m(1/)x),product x**(1/n),s x/n,sqrt$t/n,t/s x]
main=getLine>>=print.f.m read.words>>main

50 41 (ধন্যবাদ শিয়ানা) বাইটগুলি কেবল আইও: / এর জন্য।

উদাহরণ

(পাওয়ারশেলের echoওরফে Write-Outputপ্রতিটি প্যারামিটার একক লাইনে প্রিন্ট করে)

PS> প্রতিধ্বনি "1 2 3 4 5" "1.7 17.3 3.14 24 2.718 1.618" | রানহাস্কেল এস.ও.এস.এস.
[2.18978102189781,2.605171084697352,3.0,3.3166247903554,3.6666666666666665]
[3.011834514901806,4.621794669196026,8.412666666666668,12.234139719108438,17.791525635945792]

আপনার হ্যাকেল উত্তরের কয়েকটি সংজ্ঞা ইনলাইন করতে সক্ষম হওয়া উচিত। উদাহরণস্বরূপ, ;c=t/aলেট ক্লজে লেখার পরিবর্তে , [h,g,a/z,r,t/a]পরে লিখুন in
গর্বিত হাসেলেলার

@ প্রফেসহেস্কিলার: ভালো কথা, ধন্যবাদ!
জিটা 13

এছাড়াও, লেখার s$m(1/)xচেয়ে ছোট s.m(1/)$xহয় s$m(^2)x
গর্বিত হাস্কেলর

টুইটার কেউ সম্ভবত বলতে পারেন যে কোডটি ধীরে ধীরে একটি অ-গল্ফযুক্ত সংস্করণ থেকে বিকশিত হয়েছিল। fromIntegral.length$xসঙ্গে প্রতিস্থাপন foldr(\_ x->x+1)0x
জেটা

সুন্দর কৌশল! কিন্তু এখন আপনি আমাকে তৈরি এটি তাকান, আমি এই পাওয়া যায়নি: s$m(const 1)x
গর্বিত হাসেলেলার

4

ভাষা - 4

আমি সবসময় ভাল পুরানো খুঁজে বের করার একটি অজুহাত ভালবাসি

কিউবাসিক, 112 96 বাইট

g=1:INPUT x:WHILE x:h=h+1/x:g=g*x:a=a+x:q=q+x^2:n=n+1:INPUT x:WEND:?n/h;g^(1/n);a/n;SQR(q/n);q/a

কিউব্যাসিক পরিবর্তনশীল সংখ্যার ইনপুটগুলির সাথে ভাল নয়, সুতরাং প্রোগ্রামটির জন্য প্রতি লাইনে একটি নম্বর প্রয়োজন, 0 বা খালি লাইন দিয়ে সমাপ্ত। আউটপুট স্পেস দিয়ে পৃথক করা হয়।

(একবার সংক্ষিপ্ত করে আমি বুঝতে পারলাম যে 0 কোনও বৈধ সংখ্যা নয় এবং ইনপুট সমাপ্তির জন্য ব্যবহার করা যেতে পারে))

কিউবি 64 ব্যবহার করে পরীক্ষিত :

কিউব্যাসিক পরীক্ষা করার অর্থ প্রোগ্রাম

কমন লিস্প, 183 বাইট

(defun m(l)(let((a(apply #'+ l))(q(apply #'+(map'list #'(lambda(x)(* x x))l)))(n(length l)))(list(/ n(apply #'+(map'list #'/ l)))(expt(apply #'* l)(/ n))(/ a n)(sqrt(/ q n))(/ q a))))

কিছু কারণে আমি এটি আরও কম হবে বলে আশা করি। আমি কোনও ধরণের লিস্প বিশেষজ্ঞ নই, তাই পরামর্শগুলি প্রশংসিত। অবরুদ্ধ সংস্করণ:

(defun means (l)
  (let ((a (apply #'+ l))                                    ; sum of numbers
        (q (apply #'+ (map 'list #'(lambda (x) (* x x)) l))) ; sum of squares
        (n (length l)))
    (list                                 ; Return a list containing:
      (/ n (apply #'+ (map 'list #'/ l))) ; n over sum of inverses
      (expt (apply #'* l) (/ n))          ; product to the power of 1/n
      (/ a n)                             ; a/n
      (sqrt (/ q n))                      ; square root of q/n
      (/ q a)                             ; q/a
    )
  )
)

সম্ভবত পরীক্ষার সর্বোত্তম উপায় হ'ল ফাংশনটি clispআরপিএলে আটকানো , যেমন:

$ clisp -q
[1]> (defun m(l)(let((a(apply #'+ l))(q(apply #'+(map'list #'(lambda(x)(* x x))l)))(n(length l)))(list(/ n(apply #'+(map'list #'/ l)))(expt(apply #'* l)(/ n))(/ a n)(sqrt(/ q n))(/ q a))))
M
[2]> (m '(1 2 3 4 5))
(300/137 2.6051712 3 3.3166249 11/3)
[3]> (m '(8.6))
(8.6 8.6 8.6 8.6 8.6)
[4]> (m '(3 123456))
(246912/41153 608.5787 123459/2 87296.58 5080461315/41153)

আমি পছন্দ করি লিস্প কীভাবে দুটি পূর্ণসংখ্যা ভাগ করার সময় ভাসমানগুলির পরিবর্তে সঠিক ভগ্নাংশ ব্যবহার করে।

প্রোলোগ, 235 বাইট

প্রোলগ গণিতে দুর্দান্ত নয়, তবে আমরা এটি যেভাবেই করব। এসডাব্লুআই-প্রোলোগের সাথে পরীক্ষিত। আমি মনে করি sumlistপ্রাকটিক মানক প্রোলগ নাও হতে পারে তবে যাই হোক না কেন, আমি এটি ব্যবহার করছি।

m(L,H,G,A,Q,C):-length(L,N),h(L,I),H is N/I,p(L,P),G is P^(1/N),sumlist(L,S),A is S/N,q(L,R),Q is sqrt(R/N),C is R/S.
p([H|T],R):-p(T,P),R is H*P.
p([],1).
q([H|T],R):-q(T,P),R is H*H+P.
q([],0).
h([H|T],R):-h(T,P),R is 1/H+P.
h([],0).

Ungolfed:

m(L, H, G, A, Q, C) :-
        length(L, N),   % stores the length into N
        h(L, I),        % stores the sum of inverses into I
        H is N/I,
        p(L, P),        % stores the product into P
        G is P^(1/N),
        sumlist(L, S),  % stores the sum into S
        A is S/N,
        q(L, R),        % stores the sum of squares into R
        Q is sqrt(R/N),
        C is R/S.

% Helper predicates:

% p calculates the product of a list
p([H|T], R) :-
        p(T, P),     % recursively get the product of the tail
        R is H*P.    % multiply that by the head
p([], 1).            % product of empty list is 1

% q calculates the sum of squares of a list
q([H|T], R) :-
        q(T, P),     % recursively get the sum of squares of the tail
        R is H*H+P.  % add that to the square of the head
q([], 0).            % sum of empty list is 0

% h calculates the sum of inverses of a list
h([H|T], R) :-
        h(T, P),     % recursively get the sum of inverses of the tail
        R is 1/H+P.  % add that to the inverse of the head
h([], 0).            % sum of empty list is 0

লিনাক্সে, একটি ফাইলের কোড সহ means.pro, যা পরীক্ষা করা হয়:

$ swipl -qs means.pro
?-  m([1,2,3,4,5],H,G,A,Q,C).
H = 2.18978102189781,
G = 2.605171084697352,
A = 3,
Q = 3.3166247903554,
C = 3.6666666666666665.

যখন কেবল একটি সংখ্যা রয়েছে তখন একটি সঠিক তবে মজাদার ফলাফল দেয়:

 ?- m([8.6],H,G,A,Q,C).
 H = G, G = A, A = Q, Q = C, C = 8.6.

পাইথন 3, 103 বাইট

h=a=q=n=0;g=1
for x in eval(input()):h+=1/x;g*=x;a+=x;q+=x*x;n+=1
print(n/h,g**(1/n),a/n,(q/n)**.5,q/a)

ডেনিসের পাইথন 2 সংস্করণ হিসাবে একই কৌশল । কমা দ্বারা পৃথক করা সংখ্যার তালিকা গ্রহণ করে; ints এবং ভাসমান উভয়ই পরিচালনা করে। একটি একক সংখ্যার ইনপুট অবশ্যই বর্গাকার ধনুর্বন্ধনী মধ্যে আবৃত করা আবশ্যক (এবং সর্বদা সংখ্যার একটি তালিকা হতে পারে); একটি ফিক্সের জন্য 4 বাইট লাগবে।


4

8 টি ভাষা

ফোর্টরান 77 - 286

      READ*,l
      b1=0
      b2=1
      b3=0
      b4=0
      DO 10 i=1,l
        READ*,j
        b1=b1+1/j
        b2=b2*j
        b3=b3+j
        b4=b4+j**2
   10 CONTINUE
      h=l/b1
      g=b2**(1/l)
      a=b3/l
      q=(b4/l)**0.5
      c=b4/b3
      PRINT*,h,g,a,q,c
      END

বিবিসি বেসিক - 131

INPUT l
b=0:d=1:e=0:f=0
FOR i=1 TO l
  INPUTj:b+=1/j:d*=j:e+=j:f+=j^2
NEXT l
h=l/b:g=d^(1/l):a=e/l:q=(f/l)^0.5:c=f/e
PRINTh,g,a,q,c

আউটপুট:

5 
5
100
12
15
1
9.7914836236097695 26.600000000000001 45.596052460711988 78.15789473684211  

সি ++ - 292

#include <iostream>
#include <cmath>
using namespace std;int main(){cout << "Length of sequence?: ";cin >> l;int b=0;int d=1;int e=0;int f=0;int j;int seq[l];for(int i=0;i<l;i++){cin >> j;b+=1/j;d*=j;e+=j;f+=pow(j,2);}
    h=l/b;g=pow(d,(1/l));a=e/l;q=pow((f/l),0.5);c=f/e;cout << h,g,a,q,c;}

পাইথন 3 - 151

s=input().split(',');l=len(s);b=0;d=1;e=0;f=0
for i in s:i=float(i);b+=1/i;d*=i;e+=i;f+=i**2
h=l/b;g=d**(1/l);a=e/l;q=(f/l)**0.5;c=f/e
print(h,g,a,q,c)

আউটপুট:

5,100,12,15,1       # Input
3.6764705882352944 9.7914836236097695 26.600000000000001 45.596052460711988 78.15789473684211

জাভা - 421

class Sequences {
    public static void main( String[] args){
        System.out.println("Length of sequence?: ");Scanner reader = new Scanner(System.in);l=reader.nextInt();int b=0;int d=1;int e=0;int f=0;int j;int seq[l];
        for(int i=0;i<l;i++){j=reader.nextInt();b+=1/j;d*=j;e+=j;f+=Math.pow(j,2);}
        h=l/b;g=Math.pow(d,(1/l));a=e/l;q=Math.sqrt(f/l);c=f/e;System.out.println(h+' '+g +' '+ a+' '+q+' '+c);}}

জাভাস্ক্রিপ্ট - 231

আমি জাভাস্ক্রিপ্টার নই তাই কোনও পরামর্শ টির খুব প্রশংসা হবে

console.log("Length of sequence?: ");
var l=readline(),b=0,d=1,e=0,f=0;
for(var i = 0;i<l;i++) {var j=readline();b+=1/j;d*=j;e+=j;f+=pow(j,2);}
h=l/b;g=pow(d,(1/l));a=e/l;q=sqrt(f/l);c=f/e;
console.log(h+' '+g+' '+a+' '+q+' '+c);

আলগোয়েড - 337

এটি খোঁজা উপর Google Play Store- কে বা রাস্পবেরী Pi স্টোর

text.clear();
set l=text.inputNumber("Length of sequence?: ");set b=0;set d=1;set e=0;set f=0;set seq=array{};
for(set i=1; i<=l; i++){set j=text.inputNumber(i..": ");b+=1/j;d*=j;e+=j;f+=math.pow(j,2);}
set h=l/b;set g=math.pow(d,(1/l));set a=e/l;set q=math.sqrt(f/l);set c=f/l;set str=h.." "..g.." "..a.." "..q.." "..c;text.output(str);

var'aQ - 376

এটি সিনথেটিকভাবে সঠিক এবং সমস্ত, তবে সমস্ত বর্তমান দোভাষী কেবল কাজ করেন না ...

0 ~ b cher
1 ~ d cher
0 ~ e cher
0 ~ f cher
'Ij mI'moH ~ l cher
l {
    'Ij mI'moH ~ j cher
    b 1 j wav boq ~ b cher
    d j boq'egh ~ d cher
    e j boq ~ e cher
    f j boqHa'qa boq ~ f cher
} vangqa'
l b boqHa''egh ~ h cher
d 1 l boqHa''egh boqHa'qa  ~ g cher
e l boqHa''egh ~ a cher
f l boqHa''egh loS'ar ~ q cher
f e boqHa''egh c cher
h cha'
g cha'
a cha'
q cha'
c cha'

1
ব্যবহার করে আপনি 1 টি অক্ষর সংরক্ষণ করতে পারবেন sqrt(b4/l)পরিবর্তে (b4/l)**0.5ব্যবহার করার মাধ্যমে এবং আরো অনেক a, b, c, dপরিবর্তে b1-4। আপনি আরও আধুনিক F90 + এর পরিবর্তে 77 ব্যবহার করে আমাকে কাঁদছেন।
কাইল কানোজ

@ কাইল হাহা, আমি তখন F99 শিখতে শুরু করব
বিটা

আমি এই বিষয়টি দেখে আরও মুগ্ধ হয়েছি যে এমনকি মার্টিনের প্রোগ্রামিং ট্রেনটি দেখার পরেও আপনি এখনও 6 টি (আরও?) ভাষায় যাওয়ার সিদ্ধান্ত নিয়েছেন ... নাহ, মজা করছেন মাত্র। আমি বেশ কয়েকটি ভাষাগুলির চেয়ে বেশি লোকজন জানতে পেরে সবচেয়ে বেশি প্রভাবিত।
AndoDaan

1
জাতীয়, আপনি পুনরাবৃত্তি এড়ান করতে কমা অপারেটর ব্যবহার করতে পারেন var: var l=readline(),b=0,d=1,e=0,f=0;readlineযদিও ফাংশন তা নিশ্চিত নয় ।
ওরিওল

1
বাদ দিয়ে Length of sequence?বা কমপক্ষে এটি আরও ছোট করে আপনার কিছু বাইট সংরক্ষণ করতে সক্ষম হবেন ।
nyuszika7h

3

ভাষা: 3

সিজেম, 58

qS%:d:A{1\/}%:+A,\/SA:*1.A,/#SA:+A,/:BSA{2#}%:+A,/:CmqSCB/

টিআই-বেসিক, 85

Input L1:{dim(L1)/sum(1/(L1),dim(L1)√prod(L1),mean(L1),√(mean(L1²)),mean(L1²)/mean(L1

জাভা, 457

import java.util.*;class C{public static void main(String[]s){List r=new ArrayList();double[]d=Arrays.stream(new Scanner(System.in).nextLine().split(",")).mapToDouble(Double::new).toArray();double x=0,y,z;for(double D:d){x+=1/D;}r.add(d.length/x);x=1;for(double D:d){x*=D;}r.add(Math.pow(x,1./d.length));r.add(y=Arrays.stream(d).average().getAsDouble());x=1;for(double D:d){x+=D*D;}r.add(Math.sqrt(z=x/d.length));r.add(z/y);r.forEach(System.out::println);}}

আপনি জাভা জন্য নমুনা আউটপুট যোগ করতে পারেন? ওপিতে আউটপুটটির তুলনায় নির্ভুলতার কত দশমিক স্থান দেয়?
মাইকেল ইস্টার 9

টিআই-বেসিকের জন্য তুচ্ছ সংক্ষিপ্ত আকারটি{dim(Ans)/sum(Ansֿ¹),dim(Ans)√(prod(Ans)),mean(Ans),√(mean(Ans²)),mean(Ans²)/mean(Ans
লিটারোসিয়াসট

3

ভাষা - 2

কোবরা - 132

def f(l as number[])
    a,b,c,d=0d,1d,0d,0d
    for i in l,a,b,c,d=a+1/i,b*i,c+i,d+i**2
    print (e=l.length)/a,b**(1/e),c/e,(d/e)**0.5,d/c

পাইথন - 129

def f(l):a,b,c=len(l),sum(i*i for i in l),sum(l);print(a/sum(1/i for i in l),eval('*'.join(map(str,l)))**(1/a),c/a,(b/a)**.5,b/c)

পাইথন সংস্করণ পাইথন 2 এবং 3 উভয় ক্ষেত্রেই কাজ করে তবে মনে রাখবেন যে আউটপুট ফর্ম্যাটটি হুবহু এক নয়।
nyuszika7h

3

1 ভাষা


আর, 92 91

f=function(x){n=length(x);s=sum;d=s(x^2);c(n/s(1/x),prod(x)^(1/n),mean(x),(d/n)^.5,d/s(x))}

মানের একটি ভেক্টর নেয় এবং উপায়গুলির একটি ভেক্টর আউটপুট দেয়।


যদি আপনি ব্যবহার আপনি একটি চরিত্র সংরক্ষণ করতে পারবেন d=s(x^2)এবং শেষ দুটি ব্যবহারসমূহ প্রতিস্থাপন s(x^2)সঙ্গে d
কাইল কানোজ

সত্যিই, ধন্যবাদ!
প্ল্যানাপাস

3

1 ভাষা

গল্ফস্ক্রিপ্ট, 162

n/:@,:^;'(1.0*'@'+'*+')/'+^+'('@'*'*+')**(1.0/'+^+')'+^'/(1.0/'+@'+1.0/'*+')'+'(1.0/'^+'*('+@'**2+'*+'**2))**0.5'+'('@'**2+'*+'**2)/'+4$+'*'+^+]{'"#{'\+'}"'+~}%n*

হ্যাঁ, এটি বিশাল। এবং এটি অবশ্যই আরও ছোট করা যেতে পারে। যা আমি কিছুক্ষণ পরে করব। এখানে চেষ্টা করে দেখুন ।

এটি প্রত্যাশা করে যে ইনপুটটি নতুন লাইনটি পৃথক হবে। যদি এটি অনুমোদিত না হয় তবে আমি এটিকে ঠিক করব (+২ অক্ষর)। এটি তালিকাটিকে আলাদা করে আলাদা করে ফেলেছে।

এখানে আরও কিছু পাঠযোগ্য সংস্করণ:

n/:@,:^;
'(1.0*'@'+'*+')/'+^+
'('@'*'*+')**(1.0/'+^+')'+
^'/(1.0/'+@'+1.0/'*+')'+
'(1.0/'^+'*('+@'**2+'*+'**2))**0.5'+
'('@'**2+'*+'**2)/'+4$+'*'+^+
]{'"#{'\+'}"'+~}%
n*

গল্ফস্ক্রিপ্টের চেয়ে বেশি রুবির মতো দেখাচ্ছে। : পি
ডেনিস

@ ডেনিস এটি ;-)
জাস্টিন

আপনি কেন উপায় বাছাই করছেন?
ডেনিস

@ ডেনিস আমার কি দরকার নেই? "সুবিধাজনকভাবে, ফলাফল ক্রমবর্ধমান ক্রমে হবে।"
জাস্টিন

4
এটি একটি মন্তব্য, প্রয়োজন নয়। হারমোনিক গড়টি জ্যামিতিক গড়ের সাথে কম বা সমান, যা পাটিগণিতের গড়ের সাথে কম বা সমান way ইত্যাদি By ফল কয়েক l*lগুণ বেশি হওয়া উচিত , যেখানে lভাসমান সংখ্যা।
ডেনিস

3

ভাষা 2

ফরট্রান: 242

আমি স্বচ্ছতার জন্য এটিকে অবরুদ্ধ করেছি, তবে গল্ফযুক্ত সংস্করণটিই গণনা করা হয়। আপনাকে প্রথমে সংখ্যার সংখ্যার যোগ করতে হবে, তারপরে মানগুলি।

program g
   real,allocatable::x(:)
   read*,i
   allocate(x(i));read*,x
   print*,m(x)
 contains
   function m(x) result(p)
      real::x(:),p(5)
      n=size(x)
     p(1:4)=[n/sum(1/x),product(x)**(1./n),sum(x)/n,sqrt(sum(x**2)/n)]
     p(5)=p(4)**2/p(3)
   endfunction
end

wxMaxima 134

এডিটরটিতে এটি অনুলিপি করুন ctrl+enterএবং তারপরে m([1,2,3,4,5]),numerভাসমান পয়েন্ট আউটপুট পেতে কল করুন (অন্যথায় আপনি প্রতীকী আউটপুট পাবেন)।

m(x):=block([n:length(x),d:0,c:mean(x)],for i:1 thru n do(g:x[i],d:d+g*g),return([1/mean(1/x),apply("*",x)^(1/n),c,sqrt(d/n),d/n/c]));

1
হতে পারে আপনি অতিরিক্তভাবে গল্ফযুক্ত সংস্করণটি অন্তর্ভুক্ত করতে পারেন, যাতে লোকেরা গণনা পরীক্ষা করতে পারে?
পাওলো ইবারম্যান

3

পার্ল, 86 76

$,=$";$h+=1/uc,$g+=log,$a+=lc,$q+=$_**2for<>;print$./$h,exp$g/$.,$a/$.,sqrt$q/$.,$q/$a

ইনপুট: প্রতি লাইনে একটি নম্বর।

সম্পাদনা: এটি একটি অক্ষর দীর্ঘ, তবে যেহেতু দৃশ্যত শেবাং লাইনগুলি মোটের দিকে গণনা করা হয় না, এটি শেষ পর্যন্ত ভাল হয়:

#!perl -pl
$"+=1/uc,$,+=log,$}+=lc,$;+=$_**2}for($./$",exp$,/$.,$}/$.,sqrt$;/$.,$;/$}){

এটি দুটি শেকড়কে দুটি বাইট হিসাবে অ-ডিফল্ট সুইচযুক্ত শেবাং গণনা করার প্রথাগত। বলা হচ্ছে, খুব চিত্তাকর্ষক সমাধান!
ডেনিস

3

টি-এসকিউএল, 136 122

তালিকাটি সনাক্ত করতে I (পূর্ণসংখ্যা) সহ সারণি এস-এ সঞ্চিত নম্বর তালিকাগুলি এবং ভি (ভাসা) মানটি উল্লেখ করে।

SELECT COUNT(*)/SUM(1/V),EXP(SUM(LOG(V))/COUNT(*)),AVG(V),SQRT((1./COUNT(*))*(SUM(V*V))),SUM(V*V)/SUM(V) FROM S GROUP BY I

SQLFiddle

Alchymist ধন্যবাদ 14 সংরক্ষণ করা হয়েছে


1
এসকিউএল সমাধানে আমাকে এটি মারধর করুন। আপনি শেষ 2 তে স্কয়ার্ট (যোগফল (ভি v) / গণনা ( )) এবং যোগফল (v * v) / যোগ (ভি) দিয়ে বেশ কয়েকটি অক্ষর সংরক্ষণ করতে পারেন এছাড়াও, ওরাকল এসকিউএল-তে আপনি অন্য একটি চরিত্রটি ফাংশন হিসাবে সংরক্ষণ করতে পারেন লগ চেয়ে লেন হয়।
অ্যালকিমিস্ট

@ আলচিমিস্ট অনেক ধন্যবাদ মুখের তালু :)
মিকিটি

3

ভাষা: 5

কিছু এন্ট্রি ভাসা / ডাবলের পরিবর্তে জাভার বিগডিসিমাল ব্যবহার করে (চার দশমিক স্থানে) গোল করার ত্রুটিগুলি এড়াতে সচেষ্ট হন এবং প্রতি ওপিতে আইও নিয়ম মেনে নেন।

নতুন এন্ট্রিগুলি আইও নিয়ম এবং বিগডিসিমাল উভয়ই শিথিল করে।

গ্রোভি - 409 400 164 157 অক্ষর

float i=0,j=1,k=0,l,n=0,m=0,p;args.each{x=it as float;i+=1/x;j*=x;k+=x;m+=x*x;n++};l=k/n;p=m/n;println "${n/i},${Math.pow(j,1f/n)},$l,${Math.sqrt p},${p/l}"

নমুনা রান:

bash$ groovy F.groovy 10.1381 29.8481 14.7754 9.3796 44.3052 22.2936 49.5572 4.5940 39.6013 0.9602
5.957994213465398,14.304084339049883,22.545269,27.939471625408938,34.62429631138658

জাভা - 900 235 অক্ষর

class F{public static void main(String[]a){float i=0,j=1,k=0,l,n=0,m=0,p;for(String s:a){float x=Float.valueOf(s);i+=1/x;j*=x;k+=x;m+=x*x;n++;}l=k/n;p=m/n;System.out.println(n/i+","+Math.pow(j,1f/n)+","+l+","+Math.sqrt(p)+","+p/l);}}

নমুনা রান:

bash$ java F 10.1381 29.8481 14.7754 9.3796 44.3052 22.2936 49.5572 4.5940 39.6013 0.9602
5.957994,14.304084906138343,22.545269,27.939471625408938,34.6243

ক্লোজার - 524 324 অক্ষর

(defn r[x](/ (reduce + 0.0 x)(count x)))
(defn s[x](reduce #(+ %1 (* %2 %2)) 0.0 x))
(defn f[x](let[n (* 1.0 (count x))][(/ n(reduce #(+ %1 (/ 1.0 %2)) 0.0 x))(Math/pow(reduce * x)(/ 1.0 n))(r x)(Math/sqrt(/(s x) n))(/(/(s x) n)(r x))]))
(doseq [x(f(map #(Float/valueOf %) *command-line-args*))](print(str x ",")))
(println)

নমুনা রান (এটির শেষে একটি পেছনের কমা রয়েছে):

bash$ java -jar clojure-1.6.0.jar m2.clj 10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602
5.957994368133907,14.30408424976292,22.545269936323166,27.93947151073554,34.62429460831333,

স্কালা - 841 663 230 অক্ষর

import java.math._
object F{def main(a:Array[String]){
var i,j,k,l,m,p=0f;var n=0
a.foreach{y=>var x=y.toFloat;i+=1/x;j*=x;k+=x;m+=x*x;n+=1}
l=k/n;p=m/n;System.out.println(n/i+","+Math.pow(j,1f/n)+","+l+","+Math.sqrt(p)+","+p/l)}}

নমুনা রান:

bash$ scala F.scala 10.1381 29.8481 14.7754 9.3796 44.3052 22.2936 49.5572 4.5940 39.6013 0.9602
5.957994,0.0,22.545269,27.939471625408938,34.6243

জেরুবি - 538 অক্ষর

JRuby রুবির থেকে পৃথক কিনা তা স্পষ্ট নয়: এটি অবশ্যই জেভিএম-তে চালানো উচিত। তবুও এটি রুবি সিনট্যাক্স। যেভাবেই হোক না কেন, আমি এটি একটি রোসটা স্টোন এর চেতনায় অন্তর্ভুক্ত করছি।

require 'java'
java_import 'java.math.BigDecimal'
o=BigDecimal::ONE
z=BigDecimal::ZERO
def b(s) java.math.BigDecimal.new s end
def p(x,y) java.lang.Math::pow(x.doubleValue,y.doubleValue) end
def d(x,y) x.divide y,5,BigDecimal::ROUND_UP end
def r(x,n) d(x.inject(b(0)){|a,v|a.add v},n) end
def s(x) x.inject(b(0)){|a,v|a.add(v.multiply v)} end
x=[]
ARGV[0].split(",").each{|i|x<<b(i)}
n=b x.size
puts "#{d n,x.inject(z){|a,v|a.add(d o,v)}},#{p x.inject(o){|a,v|a.multiply v},d(o,n)},#{r(x,n)},#{p d(s(x),n),b("0.5")},#{d d(s(x),n),r(x,n)}"

নমুনা রান (স্টাডারকে একটি সতর্কতা মুদ্রণ করে):

bash$ jruby Mean.rb 10.1381,29.8481,14.7754,9.3796,44.3052,22.2936,49.5572,4.5940,39.6013,0.9602
5.95781,14.30408436301878,22.54527,27.939471541172715,34.62430

2

ভাষা ঘ

লুয়া - 113

e=arg s=#e h,g,a,r=0,1,0,0 for i=1,s do x=e[i]h=h+1/x g=g*x a=a+x/s r=r+x^2/s end print(s/h,g^(1/s),a,r^.5,r/a)

2

ভাষা - ২

খাঁজকাটা:

def input = [1.7,17.3,3.14,24,2.718,1.618];
def arithmeticMean
def harmonicMean
def geometricMean
def quadraticMean
def contraharmonicMean

def sum = 0
def product = 1
// Arithmetic Mean
for(each in input){
    sum += each
}
arithmeticMean = sum / input.size()

// Harmonic Mean
sum = 0
for(each in input){
    sum += (1/each)
}
harmonicMean = input.size() / sum

// Geometric Mean
for(each in input){
    product *= each
}
geometricMean = Math.pow(product,1/input.size());

// Quadratic Mean
sum = 0
for(each in input){
    sum += (each*each)
}
quadraticMean = Math.pow(sum/input.size() ,(1/2))

// Contraharmonic Mean
sum = 0
def sum2 = 0
for( each in input ){
    sum += each
    sum2 += (each * each)
}
contraharmonicMean = (sum2/input.size()) / (sum/input.size())

println "Arithmetic Mean: $arithmeticMean"
println "Harmonic Mean: $harmonicMean"
println "Geometric Mean: $geometricMean"
println "Quadratic Mean: $quadraticMean"
println "Contraharmoic Mean: $contraharmonicMean"

5
উদ্দেশ্যটি হ'ল প্রতিটি ভাষার জন্য সংক্ষিপ্ততম কোডটি লেখা, যাতে আপনি সম্ভবত একক-অক্ষর শনাক্তকারী ব্যবহার করতে এবং যেখানে সম্ভব হোয়াইটস্পেস বাদ দিতে চান।
পিটার টেলর

1
@ পিটারটেলর ওহ, ঠিক আছে! তা জানতেন না। এখানে নতুন.
ছোট শিশু

@ লিটলচিল্ড আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হতে সম্পাদনা করতে নির্দ্বিধায় মনে হয়। আপনার পোস্টের শীর্ষে আপনি যে অক্ষর ব্যবহার করেছেন তা লিখতে ভুলবেন না।
mbomb007

2

2 টি ভাষা

জাভা - 243 বাইট

class M{public static void main(String[]a){float h=0,l=a.length,p=1,s=0,q=0;for(int i=0;i<l;i++){float v=Float.valueOf(a[i]);q+=v*v;s+=v;h+=1/v;p*=v;}System.out.println(l/h+"\n"+Math.pow(p,1.0/l)+"\n"+s/l+"\n"+Math.sqrt((1.0/l)*q)+"\n"+q/s);}}

সম্প্রসারিত:

class Means {
    public static void main(String[] a) {
        float h = 0, l = a.length, p = 1, s = 0, q = 0;
        for (int i = 0; i < l; i++) {
            float v = Float.valueOf(a[i]);
            q += v * v;
            s += v;
            h += 1 / v;
            p *= v;
        }
        System.out.println(l / h + "\n" + Math.pow(p, 1.0 / l) + "\n" + s / l
                + "\n" + Math.sqrt((1.0 / l) * q) + "\n" + q / s);
    }
}

ভিবিএ - এক্সেল, 387 বাইট

প্রথম কলামে মান পূরণ করুন, তারপরে বোতামটি টিপুন (যা এই কোডটিকে ট্রিগার করে) এবং এটি দ্বিতীয় কলামে মানগুলি আউটপুট করে।

Private Sub a_Click()
Dim d,s,q,h,p As Double
Dim y As Integer
h=0
q=0
s=0
p=1
y=1
While Not IsEmpty(Cells(y,1))
s=s+Cells(y,1)
q=q+Cells(y,1)*Cells(y,1)
h=h+1/Cells(y,1)
p=p*Cells(y,1)
y=y+1
Wend
y=y-1
Cells(1,2)=y/h
Cells(2,2)=p^(1/y)
Cells(3,2)=s/y
Cells(4,2)=((1/y)*q)^0.5
Cells(5,2)=q/s
End Sub

2

1 ভাষা

মরিচা - 469

( rustc 0.11.0-pre (3851d68 2014-06-13 22:46:35 +0000))

use std::io;use std::from_str::from_str;use std::num;fn main(){loop{let a:Vec<f64>=io::stdin().read_line().ok().expect("").as_slice().split(',').map(|x|std::from_str::from_str(x.trim_chars('\n')).expect("")).collect();let n:f64=num::from_uint(a.len()).expect("");let s=a.iter().fold(0.0,|a,b|a+*b);let q=a.iter().fold(0.0,|a,b|a+*b* *b);println!("{},{},{},{},{}",n / a.iter().fold(0.0,|a,b|a+1.0/ *b),(a.iter().fold(1.0,|a,b|a**b)).powf(1.0/n),s/n,(q/n).sqrt(),q/s,);}}

অবরুদ্ধ সংস্করণ:

use std::io;
use std::from_str::from_str;
use std::num;

fn main() {
    loop {
        let a : Vec<f64>  = io::stdin().read_line().ok().expect("").as_slice().split(',')
                               .map(|x|std::from_str::from_str(x.trim_chars('\n')).expect("")).collect();
        let n : f64 = num::from_uint(a.len()).expect("");
        let s = a.iter().fold(0.0, |a, b| a + *b);
        let q = a.iter().fold(0.0, |a, b| a + *b * *b);
        println!("{},{},{},{},{}",
                 n / a.iter().fold(0.0, |a, b| a + 1.0 / *b),
                 (a.iter().fold(1.0, |a, b| a * *b)).powf(1.0/n),
                 s / n,
                 (q / n).sqrt(),
                 q / s,
                 );
    }
}

প্লে - রাস্টে পরীক্ষার জন্য লুপ বা ইনপুট ছাড়াই 430-বাইট সংস্করণ সংযোগ করা :

use std::from_str::from_str;use std::num;fn main(){let a:Vec<f64>="1,2,3,4".as_slice().split(',').map(|x|std::from_str::from_str(x.trim_chars('\n')).expect("")).collect();let n:f64=num::from_uint(a.len()).expect("");let s=a.iter().fold(0.0,|a,b|a+*b);let q=a.iter().fold(0.0,|a,b|a+*b**b);println!("{},{},{},{},{}",n / a.iter().fold(0.0, |a, b| a + 1.0 / *b),(a.iter().fold(1.0, |a, b| a * *b)).powf(1.0/n),s/n,(q/n).sqrt(),q/s);}

নতুন জং জন্য আপডেট করা:

Ungolfed:

use std::io;                 
fn main(){
    let mut s=String::new();
    io::stdin().read_line(&mut s);
    let a:Vec<f64>=s
        .split(',')
        .map(|x|x.trim().parse().expect(""))
        .collect();
    let n:f64=a.len() as f64;
    let s=a.iter().fold(0.0,|a,b|a+*b);
    let q=a.iter().fold(0.0,|a,b|a+*b**b);
    println!("{},{},{},{},{}",
        n / a.iter().fold(0.0, |a, b| a + 1.0 / *b),
        (a.iter().fold(1.0, |a, b| a * *b)).powf(1.0/n),s/n,
        (q/n).sqrt(),q/s);
}

গল্ফড (402 বাইট):

use std::io;fn main(){ let mut s=String::new(); io::stdin().read_line(&mut s); let a:Vec<f64>=s .split(',') .map(|x|x.trim().parse().expect("")) .collect(); let n:f64=a.len() as f64; let s=a.iter().fold(0.0,|a,b|a+*b); let q=a.iter().fold(0.0,|a,b|a+*b**b); println!("{},{},{},{},{}", n / a.iter().fold(0.0, |a, b| a + 1.0 / *b), (a.iter().fold(1.0, |a, b| a * *b)).powf(1.0/n),s/n, (q/n).sqrt(),q/s);}

1

ভাষা: 4

কফিস্ক্রিপ্ট, 193

কমা দ্বারা পৃথক ইনপুটটির স্ট্রিং নেয়:

m=(q)->m=Math;q.r=q.reduce;q=q.split(',').map Number;l=q.length;x=q.r ((p,v)->(p+v)),0;y=q.r ((p,v)->(p+v*v)),0;[l/q.r(((p,v)->(p+1/v)),0),m.pow(q.r(((p,v)->(p*v)),1),1/l),x/l,m.sqrt(y/l),y/x];

জাভাস্ক্রিপ্ট (ES5), 256

আবার ইনপুটটির একটি কমা-বিচ্ছিন্ন স্ট্রিং নেয়:

function m(q){m=Math,q=q.split(',').map(Number),q.r=q.reduce,l=q.length,x=q.r(function(p, v){return p+v;},0),y=q.r(function(p,v){return p+v*v},0);return[l/q.r(function(p,v){return p+1/v},0),m.pow(q.r(function(p,v){return p*v},1),1/l),x/l,m.sqrt(y /l),y/x]}

পিএইচপি, 252

একই ধারণা:

<?function m($q){$r=array_reduce;$q=explode(',',$q);$l=count($q);$x=array_sum($q);$y=$r($q,function($p,$v){return $p+$v*$v;});return[$l/$r($q,function($p,$v){return $p+1/$v;}),pow($r($q,function($p,$v){return $p*$v;},1),1/$l),$x/$l,sqrt($y/$l),$y/$x];}

টাইপস্ক্রিপ্ট, 393 *

যেহেতু টাইপসক্রিপ্টটি জাভাস্ক্রিপ্টের একটি সুপারস্টেট, তাই আমি কেবল একই কোডটি জমা দিতে পারতাম তবে এখন তা সত্যিই সঠিক হবে না। সমস্ত ফাংশন, ভেরিয়েবল এবং পরামিতি পুরোপুরি টাইপযুক্ত এখানে একটি সংক্ষিপ্ত টাইপস্ক্রিপ্ট কোড রয়েছে:

function m(q:String):number[]{var a:number[]=q.split(',').map(Number),l:number=a.length,x:number=a.reduce(function(p:number,v:number):number{return p+v},0),y:number=a.reduce(function(p:number,v:number):number{return p+v*v},0);return[l/a.reduce(function(p:number,v:number):number{return p+1/v},0),Math.pow(a.reduce(function(p:number,v:number):number{return p*v},1),1/l),x/l,Math.sqrt(y/l),y/x]}

প্রতারক এবং প্রকারটি ব্যবহার করতে anyপারে ... কিন্তু, আপনি জানেন।


0

এক্সেল - 120

এটি "প্রোগ্রামিং" ভাষা হিসাবে গণ্য হয়েছে কিনা তা নিশ্চিত নন তবে ভেবেছিলেন লোকেরা আসলে এই ধরণের জিনিসটির জন্য একটি স্প্রেডশিট ব্যবহার করতে পারে

A2: J2 এর সংখ্যার সাথে

L2 (harmonic) =HARMEAN(A2:J2)
M2 (geometric) =GEOMEAN(A2:J2)
N2 (arithmetic) =AVERAGE(A2:J2)
O2 (quadratic) =SQRT(SUMSQ(A2:J2)/COUNT(A2:J2))
P2 (contraharmonic) =(SUMSQ(A2:J2)/COUNT(A2:J2))/AVERAGE(A2:J2)

2
আমার কাছে এক্সেল নেই তবে আমি মনে করি আপনি A:Aপুরো কলামটি লক্ষ্য করে রেঞ্জটি ব্যবহার করতে পারেন A
ডেনিস

0

ভিবিএ (এক্সেল) - 105

a=1:for each n in i:a=a*n:b=b+1/n:c=c+n:d=d+n*n:next:x=ubound(i)+1:?x/b","a^(1/x)","c/x","(d/x)^0.5","d/c

অসমাপ্ত:

a=1:               set a variable to 1 (for the geometric mean)
for each n in i:   loop through the list
    a=a*n:            product of the list
    b=b+1/n:          sum of inverses of the list
    c=c+n:            sum of the list
    d=d+n*n:          sum of squares of the list
next:              end loop
x=ubound(i)+1:     get the number of elements in the list
?                  prepare to print
 x/b","               harmonic = count / sum(inverses)
 a^(1/x)","           geometric = product^(1/count)
 c/x","               arithmetic = sum / count
 (d/x)^0.5","         quadratic = square root of ( sum of squares / count )
 d/c                  contraharmonic = sum of squares / sum

এই কোডটি তাত্ক্ষণিক উইন্ডোতে চালিত করতে হবে এবং অ্যারেরটি অবশ্যই i বলা উচিত । যেহেতু কোনও ত্রুটি সংগ্রহ নেই, কোনও পরিষ্কার নেই, কোনও ভেরিয়েবল ড্রপিং / রিলিজিং নেই, আপনি যদি এই কোডটি পরীক্ষা করতে চান তবে নীচের কোডটি ব্যবহার করতে পারেন (কেবলমাত্র তাত্ক্ষণিক উইন্ডোতে পেস্ট করুন এবং লাইনগুলি যথাযথভাবে চালান):

b=0:c=0:d=0:set i = nothing:i= array(1,2,3,4,5)
a=1:for each n in i:a=a*n:b=b+1/n:c=c+n:d=d+n*n:next:x=ubound(i)+1:?x/b","a^(1/x)","c/x","(d/x)^0.5","d/c

খুব বিশেষ কিছু নয়, কেবলমাত্র তাত্ক্ষণিক উইন্ডোটি ব্যবহার করার পছন্দ : লাইন ব্রেকগুলি প্রতিস্থাপনের জন্য, যা উপ বা ফাংশন স্থাপন এবং এটি বন্ধ করে বনাম কয়েকটি বাইট সংরক্ষণ করে; ব্যবহার ? ডিবাগ.প্রিন্টের পরিবর্তে মুদ্রণ করতে (কেবলমাত্র তাত্ক্ষণিক উইন্ডোতে); এবং ভিবিএ কীভাবে অন্তর্নিহিত মানগুলি নির্ধারণ করে (একটি আন-সেট ভেরিয়েবলের সাথে একটি মান যুক্ত করে মান ফেরত দেয়) এবং অন্তর্নিহিত ক্রিয়াকলাপ (স্ট্রিংয়ের সাথে জড়িত যে কোনও কিছুই স্পষ্টভাবে সংক্ষিপ্তকরণ হয়) এর উপর নির্ভর করে।

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