টাইপসেটিং বহুমাত্রিক লেবেল


12

বাষ্প-পাঙ্ক বহুমাত্রিক বিশ্বে, আমাদের বস আমাদের সংস্থার বহুমাত্রিক ফাইল মন্ত্রিসভায় প্রতিটি ড্রয়ারে মুদ্রিত সূচী লেবেল যুক্ত করতে চান।

মনিব একটি একক হিসেবে সম্পূর্ণ লেবেল শীট typeset, একটি ফন্ট পেতে পারেন শুধুমাত্র এই কাজের জন্য কেনা ব্যবহার করে, তাই আমরা অর্ডার আছে চায় প্রকারের (ধাতু প্রতীক টুকরা)। যেহেতু প্রকারগুলি খুব ব্যয়বহুল, তাই আমাদের ক্রমটি প্রতিটি ডিজিটাল-চিহ্নের সঠিক গণনার জন্য।

প্রদত্ত (কোনও উপায়ে) মাত্রা দৈর্ঘ্যের সেট ≥ 0 এর জন্য, আমাদের অর্ডারটি (কোনও উপায়ে) প্রত্যাবর্তন করুন, যা সমস্ত কার্তেসিয়ান স্থানাঙ্ক টাইপসেট করতে প্রয়োজনীয় সংখ্যার ফ্রিকোয়েন্সি টেবিল। এটি অবশ্যই কীবোর্ড ক্রম অনুসারে সাজানো উচিত (9 এর পরে 0) এবং এটি 0 টি ক্রমের অর্ডার অন্তর্ভুক্ত করতে পারে না, তাই কোনও ধরণের বিন্দু বিন্যাস করা না হলে (কারণ মাত্রার দৈর্ঘ্য 0 থাকে); কিছুই মুদ্রণ।

  • আপনার কোড হ্যান্ডেল করতে পারলে -3 প্রকারের বোনাস (যেমন কোনও কিছুই মুদ্রণ নয়) 0 মাত্রাও।
  • চূড়ান্ত নিউলাইন চরগুলি গ্রহণযোগ্য।
  • স্ট্যান্ডার্ড ফাঁসির উপর নিষেধাজ্ঞার প্রয়োগ রয়েছে।
  • যেমনটি উল্লেখ করা হয়েছে, প্রকারগুলি ব্যয়বহুল, এটি তাই

একটি উদার আত্মা স্বয়ংক্রিয় স্কোরিং অন্তর্ভুক্ত করতে এই চ্যালেঞ্জটি সম্পাদনা করতে পারে, সুতরাং শিরোনামের মতো অন্তর্ভুক্ত করুন:
# LanguageName, 123 sorts

পরীক্ষার মামলা

দেওয়া 11, মুদ্রণ:

1 4
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
0 1

কারণ প্রয়োজন লেবেল প্রদর্শিত হয় 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, এবং 11


দেওয়া 2 3, মুদ্রণ:

1 5
2 5
3 2

কারণ প্রয়োজন লেবেল প্রদর্শিত হয় 1 1, 1 2, 1 3, 2 1, 2 2, এবং 2 3


প্রদত্ত 2 0, একটি খালি লাইন মুদ্রণ করুন:

অথবা কিছুই না.


দেওয়া 1 2 3, মুদ্রণ:

1 11
2  5
3  2

কারণ প্রয়োজন লেবেল প্রদর্শিত হয় 1 1 1, 1 1 2, 1 1 3, 1 2 1, 1 2 2, এবং1 2 3


দেওয়া 5 5 5 5, মুদ্রণ:

1 500
2 500
3 500
4 500
5 500

এবং না, আমি সমস্ত 625 টি লেবেল তালিকাতে যাচ্ছি না।


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

1
@ রিটোকোরাদি ফর্ম্যাটটি দেখানো অনুসারে কম-বেশি দেখতে হবে তবে এটি একটি ইন্টারেক্টিভ সেশন, একটি ফাইল, একটি পপ-আপ, এসটিডিআউট ইত্যাদিতে থাকতে পারে আপনার কী পরামর্শ রয়েছে যে আমি কীভাবে এটি পরিষ্কার করে তুলতে পারি? ?
অ্যাডম

উত্তর:


6

ডায়ালগ এপিএল, 10 7

কোডটি 10 ​​বাইট দীর্ঘ এবং বোনাসের জন্য যোগ্যতা অর্জন করে।

ইউজার 46915 কে 3 বাইটের জন্য ধন্যবাদ!

,∘≢⌸∊⍕¨∊⍳⎕

দ্রষ্টব্য যে (ইনপুট) ট্রাইএপিএলে কাজ করে না; আপনি এখানে ফাংশন ফর্ম চেষ্টা করতে পারেন ।

            ⎕      Get input
           ⍳       Index vector
       ∊⍕¨∊        Flatten, stringify, flatten again
      ⌸            From the key, display the
{⍺,  }             elements concatenated with the
   ≢⍵              number of times they occur

আমি অপারেটরটিকে পুরোপুরি বুঝতে পারি না , তবে {⍺}⌸নেওয়া অনন্য মানগুলি {⍵}⌸তালিকাভুক্ত করে এবং যুক্তিতে তাদের স্থানগুলি তালিকাভুক্ত করে।

এটিতে সঠিক ক্রম রয়েছে কারণ এটি এমন ক্রম যেখানে লেবেলের বহুমাত্রিক অ্যারেতে অঙ্কগুলি উপস্থিত হয়।


1
হ্যাঁ, এটি আমার মনে থাকা সমাধান। এটি কী অপারেটরটি বুঝতে সহায়তা করতে পারে ।
অ্যাডম

1
কোডগল্ফ এপিএল সবসময় জিততে পারে না ?
vy32

@ vy32 নং এপিএল সর্বাধিক সংক্ষিপ্ত সাধারণ উদ্দেশ্য ভাষা হতে পারে, তবে এখানে সর্বদা ডোমেন-নির্দিষ্ট ভাষাগুলি থাকবে যা কোনও সাধারণ উদ্দেশ্য ভাষার চেয়ে নির্দিষ্ট সীমাবদ্ধ ডোমেনে আরও ভাল। কোড-গল্ফিংয়ের নির্দিষ্ট ডোমেনের মধ্যে পাইথ এবং সিজেমের মতো গল্ফিং ভাষা সাধারণত জিততে পারে। তবে এটি লক্ষণীয় যে এপিএল, খুব বড় সংস্থাগুলির উত্পাদনে ব্যবহৃত বাণিজ্যিক ভাষা হওয়ায় এটি আরও কাছে আসে close এছাড়াও, কিছুটা ভার্বোজের দামের জন্য, গল্ফিংয়ের ভাষাগুলির চেয়ে এপিএল পড়া শিখার পক্ষে মানুষের পক্ষে সম্ভবত সহজ easier
Adám

অপেক্ষা করুন, সুতরাং আপনার মানে আমি ,∘≢⌸কোনও অনন্য এবং এই জাতীয় কোনও বাইরের পণ্য ছাড়াই কেবল পুরো হিস্টোগ্রামটি তৈরি করতে পারি ?! ডায়ালগ নিশ্চিত দুর্দান্ত। এর ,∘≢⌸চেয়ে ছোটও {⍺,≢⍵}⌸
user46915

3
@ এনবিজেড, আমি এপিএল মিস করছি। 1982 সালে ফিরে আমি এপিএলে একটি গ্রাফিক্স প্যাকেজ লিখেছিলাম যা একটি ডেইজি হুইল প্রিন্টার চালিত করে। এটি শিল্পের কাজ ছিল, যদিও আমি এক মাস পরে কী লিখেছি তা বুঝতে পারি নি।
vy32


2

গণিত, 111 85 বাইট

Grid[Thread@{Range@10~Mod~10,DigitCount@Tuples@Range@#~Total~2}~DeleteCases~{_,‌​0}]&

এখানে বেশিরভাগ কাজই সম্পন্ন করে DigitCount


Grid[Thread@{Range@10~Mod~10,DigitCount@Tuples@Range@#~Total~2}~DeleteCases~{_,0}]&
আলেফাল্ফ

2

আর, 110 বাইট

অ্যালেক্স এ এর ​​4 টি ধন্যবাদ সংরক্ষণ করা (ধন্যবাদ!)

U=unlist
X=table(U(strsplit(as.character(U(expand.grid(Map(seq_len,scan())))),"")))
z=Map(cat,names(X),X,"\n")

আপনি শুধুমাত্র ব্যবহার xএকবার যাতে আপনি শুধু এক সংঘটন প্রতিস্থাপন করতে সক্ষম হওয়া উচিত xসঙ্গে scan()। এছাড়াও নিয়োগ কেন z?
অ্যালেক্স এ।

ধন্যবাদ। রাজি সম্পর্কে ব্যবহার করছেন না x। আমি Mapএকটি zভেরিয়েবলের আউটপুট বরাদ্দ করেছি অন্যথায় Mapতার আউটপুট stdout এ মুদ্রণ করবে। Mapঅভ্যন্তরে মোড়ানো একটি ভাল অনুশীলন হবে invisible()তবে এটি প্রচুর অক্ষর ...
ফ্লোডেল

1

রুবি, 92 বাইট

f,*r=$*.map{|n|[*1..n.to_i]}
a=f.product(*r)*''
puts a.chars.uniq.map{|c|[c,a.count(c)]*" "}

কমান্ড লাইন আর্গুমেন্ট হিসাবে দৈর্ঘ্য নেয়:

$ ruby foo.rb 1 2 3
1 11
2 5
3 2

0

সিজেম, 31 বাইট

Laq~{,m*}/e_:)s{_'0=A*+}$e`{(S\N}%

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

কোডটি 34 বাইট, এবং খালি ইনপুট তালিকার সাথে কাজ করার জন্য 3 বাইট বোনাস নেয়। ইনপুটটি সিজেএম ফর্ম্যাটে একটি তালিকা, যেমন:

[1 2 3]

ব্যাখ্যা:

La    Push list containing empty list to seed Cartesian products.
q~    Get and interpret input.
{     Loop over values in input list.
  ,     Built range from 0 to value-1.
  m*    Form Cartesian product with the list we already have.
}/    End loop over values in input list.
e_    Resulting list has extra nesting. Flatten it.
:)    Increment all values in list, since it is 0-based, and we need 1-based.
s     Convert it to string, so we can operate on digits.
{     Block to calculate source key, needed to get 0 to the end.
  _     Copy the digit.
  '0=   Compare with '0.
  A*    Multiply comparison result by 10...
  +     ... and add it to digit.
}$    End of sort key block.
e`    RLE.
{     Start of loop over RLE entries, for generating output in specified format.
  (     Pop off the first value, which is the count.
  S     Push a space...
  \     ... and swap it with the count.
  N     Push a newline.
}%    End of loop over RLE entries.


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