একটি বিতরণ চিত্র আঁকুন!


12

চ্যালেঞ্জ

আপনাকে ইনপুট হিসাবে তিনটি পূর্ণসংখ্যা দেওয়া হয় - min_value, max_value, sample_sizeযে আপনি আপনার উত্তরটিতে অ্যারে বা কয়েকটি পরামিতি হিসাবে যেতে পারেন।

আপনার টাস্ক হয় কোনো সুবিধাজনক বিন্যাসে একটি ডায়াগ্রাম আউটপুট যে শো সংখ্যার পৌনঃপুনিকতা, (min_value, max_value)পরিসীমা দেখানো মধ্যে একটি র্যান্ডম সংখ্যা যখন (min_value, max_value)পরিসীমা বাছাই করা হয় sample_sizeবার। আপনার উত্তরের মধ্যে এলোমেলো সংখ্যা ক্রম উত্পন্ন করা উচিত।

বৃহত পরিসীমা এবং নমুনা আকারের সাথে, আপনি যতক্ষণ উপস্থাপনাটি যথাযথ থেকে যান ততক্ষণ আপনার চিত্রটি যে চিত্রগুলি ব্যবহার করে সেগুলি পরিবর্তন করতে মুক্ত।

উদাহরণ

সঙ্গে [1, 5, 10]ইনপুট হিসাবে:

o o o x o
x o x x x
x x x x x
1 2 3 4 5

সঙ্গে [1, 100, 15]হিসাবে ইনপুট (10 পদক্ষেপে, তাই 00 শো 1-9, 10 শো 10-19, ইত্যাদি):

xx oo oo xx oo xx oo oo oo oo
xx oo oo xx oo xx xx oo oo oo
xx xx oo xx xx xx xx xx xx oo
00 10 20 30 40 50 60 70 80 90

স্কোরিং

এটি , তাই বাইট জেতে সংক্ষিপ্ততম কোড।


1
আমি অনুমান করি যে আমাদের প্রয়োজনের তুলনায় আরও বড় উচ্চতা সহ সারণীগুলি আউটপুট দেওয়ার অনুমতি নেই? আপনার [1,5,10]উদাহরণস্বরূপ, উচ্চতা কি হতে পারে 10? তাই কলাম 4 ভালো দেখাবে (উলম্বভাবে উপরে থেকে-নীচের অনুভূমিকভাবে বাম-থেকে-ডান পরিবর্তে): oooooooxxx4
কেভিন ক্রুইজসেন

6
আমাকে প্রস্থের একটি বাক্স নির্বাচন করতে বাধা দেওয়ার কী আছে b-a? এটি বেশ সুবিধাজনক বিন্যাস ...
জিউসেপ

1
গিউসেপ্পের অর্থ হ'ল একটি পরিসরের জন্য a...bডায়াগ্রামে একটি একক বিন রয়েছে যা পুরো পরিসীমাটিকে কভার করে, ফলস্বরূপ নমুনার সংখ্যার সমান উচ্চতার একক বার তৈরি হয়।
স্টিভি গ্রিফিন

1
আমাদের কি অনুভূমিকভাবে হিস্টগ্রাম আঁকার অনুমতি দেওয়া হচ্ছে? এছাড়াও, মানগুলি কি সীমার মধ্যে সমানভাবে বাছাই করতে হবে, বা কোনও ফলাফল যেখানে সমস্ত ফলাফলের বৈধতা পাওয়া সম্ভব?

1
ডিস্ট্রিবিউশন সম্পর্কে @Mnemonic: ঐক্যমত্য এটা যদি না ওপি নির্দিষ্ট করেছে অভিন্ন হতে হবে তা নয় হয়।
স্টিভি গ্রিফিন

উত্তর:


3

জেলি , 13 বাইট

Ṫɓr/;"xẊĠ>ʋ¥G

খুব সুবিধাজনক বিন্যাস ব্যবহার করে:

  • বাম অক্ষে মানগুলি মুদ্রণ করে
  • ব্যবহার 0বন্টন পিক্সেল (মত xগুলি) এবং 1পটভূমি পিক্সেল হিসাবে (মত oগুলি)
  • "পিক্সেল" এর মধ্যে অনেকগুলি অনুভূমিক স্থান ব্যবহার করে যেমন সীমাতে সর্বাধিক দৈর্ঘ্যের সংখ্যায় অক্ষর রয়েছে (যেমন -23 দৈর্ঘ্য 3, আর 23 দৈর্ঘ্য 2)।

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

নোট: ইনপুট একটি অ্যারের থাকতে হবে না করে থাকেন তাহলে এটি হবে 11 বাইট দুটি আর্গুমেন্ট গ্রহণ, [from, to]এবং sampleSizeমাত্র সঙ্গে r/;"xẊĠ>ʋ¥G


আমি মনে করি এটি সম্ভবত 4 বাইটের জন্য খুব দূরে সুবিধাজনক বিন্যাসকরণ ভাতা নিচ্ছে:

Ṗ;1K

এই ধারণাটি (যা সম্বোধন করা উচিত) ব্যবহার করে জিউস্প্পি মন্তব্যগুলিতে একটি একক বিনের সাথে চিহ্নিত করেছেন fromএবং toএকটি স্থান দ্বারা পৃথক করা হয়েছে, অক্ষকে প্রতিনিধিত্ব করে এমন একটি অন্য স্থান এবং 1১০০% উচ্চতার প্রতিনিধিত্বকারী একক ।

... বা এমনকি মাত্র Ṗ12 বাইটের জন্য!


10

অক্টাভা , 34 32 বাইট

@(a,b,n)hist(--a+randi(b-a,n,1))

টিআইওতে কাজ করে না, তবে অক্টেভ-অনলাইনলাইনেমে কাজ করে ।

এটি দেখতে একটি হিস্টোগ্রাম (বার চার্ট) তৈরি করে:

এখানে চিত্র বর্ণনা লিখুন

আমি বলব যে "কোনও সুবিধাজনক বিন্যাস" হিসাবে গণনা করা।

যদি অ-শূন্য বিনগুলি অবশ্যই দেখানো হয়, তবে এটি 38 বাইটে সমাধান করা যেতে পারে:

@(a,b,n)hist(--a+randi(b-a,n,1),a+1:b)

আমি শূন্য উচ্চতার বিনয়ের বিষয়ে স্পষ্টতা চেয়েছিলাম - এটি যদি তারা সমস্ত অ-শূন্যের তুলনায় কঠোরভাবে কম বা কঠোরভাবে বেশি হয় তবে তা দেখাতে ব্যর্থ হয় ( f(1,5,1)উদাহরণস্বরূপ আচরণটি প্রদর্শন করবে)।
জোনাথন অ্যালান

1
আমি যে বাতলান অবশ্যই যে বাধ্য বোধ না একটি হিস্টোগ্রাম , বরং এটি একটি হল বার চার্ট (যা একই জিনিস সবকিছু হয় না)।
কেয়ার্ড কইনারিংহিংহ

2
@Cairdcoinheringaahing এই উইকি পৃষ্ঠাগুলি দিয়ে স্কিমিং করছে আমি দেখতে পাচ্ছি না এটি হিস্টোগ্রাম কী হবে না। এর পরিবর্তে আপনি কেন বার চার্ট মনে করেন তা ব্যাখ্যা করার জন্য যত্নশীল?
ইমাস

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

6

আর , 36 বাইট

function(a,b,n)stem(sample(a:b,n,T))

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

দীর্ঘশ্বাস. একটি স্টেমপ্লট।

দ্বিতীয় বর্ষের বিশ্ববিদ্যালয়ের শিক্ষার্থীদের জন্য [এই নির্দিষ্ট স্টাডির অধ্যয়নের জন্য] পরিসংখ্যানের জন্য কিছু প্রফেসরের কাছ থেকে পরিচিতি গ্রহণের অস্তিত্ব রোধ করা হচ্ছে যারা জানেন না তারা জানেন তবে স্টেম্পলটগুলি একটি ভাল ধারণা কারণ এটি এখনও 14 তম সংস্করণে রয়েছে চতুর্থ সংস্করণটি 1983 সালে প্রকাশিত হওয়ার পর থেকে তারা যে পাঠ্যপুস্তকটি ব্যবহার করছেন তা।


5

কাঠকয়লা , 25 বাইট

≔…·θηθ≔Eζ‽θηEθ№ηι↖←E⮌θ⮌Iι

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

≔…·θηθ

বিতরণ একটি অন্তর্ভুক্ত পরিসীমা তৈরি করুন।

≔Eζ‽θη

পছন্দসই সংখ্যাটির পরিসীমা নমুনা করুন।

Eθ№ηι

নমুনায় প্রতিটি ব্যাপ্তির সংখ্যা গণনা করুন এবং মুদ্রণ করুন।

↖←E⮌θ⮌Iι

লেবেলগুলি মুদ্রণ করুন।


3

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

from random import*
a,b,n=input()
r=range(a,b+1)
s=sample(r*n,n)
for v in r:print'%%0%dd'%len(`b`)%v,s.count(v)*'x'

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


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

কলাম-ভিত্তিক আউটপুট।

from random import*
a,b,n=input()
r=range(a,b+1)
s=sample(r*n,n)
d=len(`b`)
while n:n-=1;print' '.join(d*'ox'[s.count(v)>n]for v in r)
for v in r:print'%%0%dd'%d%v,

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


3

জাভা 11, 184 168 বাইট

(m,M,s)->{int a[]=new int[M],q=M;for(;s>0;q=M)if((q*=Math.random())>m-2){a[q]++;s--;}for(;m<=M;)System.out.printf("%0"+(M+"").length()+"d%s%n",m,"*".repeat(a[m++-1]));}

এটি অনলাইনে চেষ্টা করুন। (দ্রষ্টব্য: একই বাইট-কাউন্ট String.repeat(int)হিসাবে অনুকরণ করা repeat(String,int)হয়েছে, কারণ জাভা 11 টি টিআইও-তে এখনও নেই))

ব্যাখ্যা:

(m,M,s)->{                         // Method with three integer parameters & no return-type
                                   // (`m` = min_value; `M` = max_value; `s` = sample_size)
  int a[]=new int[M],              //  Integer-array, filled with `M` amount of 0s
      q=M;                         //  Temp integer for the random value, set to `M`
  for(;s>0;                        //  Loop as long as `s` isn't 0 yet:
      q=M)                         //    Reset `q` back to `M` after every iteration
    if((q*=Math.random())          //   Pick a random integer in the range [0, `M`)
       >m-2){                      //   If this random integer is larger than `m-2`:
      a[q]++;                      //    Increase the value at that this random index by 1
      s--;}                        //    And decrease `s` by 1
  for(;m<=M;)                      //  Loop in the range [`m`, `M`]
    System.out.printf(             //   Print with trailing new-line
      "%0"+(M+"").length()+"d%s%n",//   and leading zeros if necessary:
      m,                           //    The number
      "*".repeat(a[m++-1]));}      //    appended with "*" repeated the amount of times
                                   //    specified in the random array at index `m-1`

2

আর , 52 বাইট

function(a,b,n)table(cut(sample(a:b,n,T),a:(b+1)-1))

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

একটি ফেরত পাঠায় tableসঙ্গে ফ্রিকোয়েন্সি namesদ্বারা নির্বাচিত অর্ধ খোলা অন্তর সমান cut, তাই (0,1], (1,2], (2,3], এবং তাই ঘোষণা। আরও যুক্তিসঙ্গত বিন্ন নির্বাচন করতে কোনও প্রচেষ্টা করে না।


function(a,b,n)hist(sample(a:b,n,T))প্রশ্নের প্রয়োজনীয়তা পূরণ করবেন না ?
এনজিএম

@ জিএনএম আমার ধারণা ... আমি একটি পাঠ্য আউটপুট করতে চেয়েছিলাম যেহেতু চ্যালেঞ্জটি অন্তরঙ্গ বলে মনে হয়েছিল, তবে আপনি নিজে এটি পোস্ট করার জন্য আপনাকে স্বাগত জানানোর চেয়েও বেশি
জিউস্পে

2

রুবি, 135 বাইট , 117 বাইট

d=->(m,n,s){p=(m..n);t=(1..s).map{rand(p)};p.map{|h|g=t.count(h);"#{h}-#{'x'*g}#{'o'*(t.map{|e|t.count(e)}.max-g)}"}}

Ungolfed:

d =-> (m,n,s) {
  p = (m..n)
  t = (1..s).map{rand(p)}
  p.map{ |h|
    g = t.count(h)
    "#{ h }-#{ 'x' * g }#{ 'o' * (t.map{|e| t.count(e) }.max - g) }"
  }
}

puts d.call(1,5,10)

এটি অনলাইন চেষ্টা করুন! - যদি অন্য কেউ আমার মতো এটি পরীক্ষা করতে চায়!
ডম হেস্টিংস



1

জাভাস্ক্রিপ্ট, 239

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

f=>{x=Math;z=Array;q=_=>x.floor(x.random()*(f[1]-f[0]))+f[0];r=z(f[1]-f[0]).fill(0);z(f[2]).fill``.forEach(_=>r[q()-1]++);u=`${f[1]}`.length;return r.map((e,i)=>`${`${i}`.padEnd(u)}${" x".repeat(e)}`.padEnd(x.max(...r)*2+u," o")).join`\n`}

1

জাপট -R, 14 বাইট

অর্ডার সর্বাধিক, ন্যূনতম, আকারে ইনপুট নেয়। অনুভূমিকভাবে চার্ট আউটপুট করে।

õV
öW
Ë+QpVè¥D

চেষ্টা করে দেখুন


ব্যাখ্যা

             :Implicit input of integers U=max_value, V=min_value & W=sample_size
õV           :Range [U,V]
\n           :Reassign to U
öW           :Get an array of W random elements from U
\n           :Reassign to V
Ë            :Map each integer D in U
 +           :  Append
  Q          :  Quotation mark
   p         :  Repeat
    Vè       :   Count the elements in V
      ¥D     :    That equal D
             :Implicitly join with newlines and output.

0

পাইথ, 19 বাইট

JmOK}FPQeQVK,N*/JNd

এখানে চেষ্টা করুন

ব্যাখ্যা

JmOK}FPQeQVK,N*/JNd
   K}FPQ             Get the inclusive range between the first two inputs as K.
JmO     eQ           Get <last input> random elements as J.
          VK         For each value in the range...
            ,N       ... output a list of the value...
              */JNd  ... and spaces equal to the count in J.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.