পূর্ণসংখ্যার একটি তালিকা রেঙ্ক করুন


21

আপনাকে ইতিবাচক পূর্ণসংখ্যার একটি খালি খালি তালিকা দেওয়া হয়েছে

[6 2 9 7 2 6 5 3 3 4]

আপনার এই সংখ্যাগুলি তাদের মান অনুসারে র‌্যাঙ্ক করা উচিত, তবে লিডারবোর্ডে যথারীতি যদি টাই থাকে তবে সমস্ত বাঁধা সংখ্যা একই র‌্যাঙ্ক পেয়ে যায় এবং উপযুক্ত সংখ্যক র‌্যাঙ্ক এড়িয়ে যায়। উপরের তালিকার জন্য প্রত্যাশিত আউটপুট তাই হবে

[3 9 1 2 9 3 5 7 7 6]

উদাহরণস্বরূপ, ইনপুটটির সর্বোচ্চ মান ছিল 9, সুতরাং এটি একটি 1(প্রথম স্থান) হয়ে যায় । তৃতীয় সর্বোচ্চ মান হ'ল 6উভয়ই 6হয়ে যায় 3এবং র‌্যাঙ্কটি 4পুরোপুরি বাদ যায়।

বিধি

আপনি ইনপুট এবং আউটপুট জন্য যে কোনও সুবিধাজনক, দ্ব্যর্থহীন, ফ্ল্যাট তালিকা ফর্ম্যাট ব্যবহার করতে পারেন। আউটপুটে প্রথম / ক্ষুদ্রতম র‌্যাঙ্কটি সর্বদা 1 হওয়া উচিত ।

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

আপনি যে কোনও প্রোগ্রামিং ভাষা ব্যবহার করতে পারেন তবে নোট করুন যে এই ফাঁকগুলি ডিফল্টরূপে নিষিদ্ধ করা হয়েছে।

এটি , তাই সংক্ষিপ্ততম বৈধ উত্তর - বাইটগুলিতে মাপা - জয়।

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

[8] -> [1]
[1 15] -> [2 1]
[18 14 11] -> [1 2 3]
[11 16 14 8] -> [3 1 2 4]
[15 15 15 15 15] -> [1 1 1 1 1]
[10 2 5 4 15 5] -> [2 6 3 5 1 3]
[5 5 10 10 5 11 18] -> [5 5 3 3 5 2 1]
[2 4 9 4 17 9 17 16] -> [8 6 4 6 1 4 1 3]
[11 17 19 17 10 10 15 3 18] -> [6 3 1 3 7 7 5 9 2]
[2 11 4 8 3 3 12 20 4 18] -> [10 4 6 5 8 8 3 1 6 2]
[12 6 10 2 19 19 6 19 8 6 18] -> [5 8 6 11 1 1 8 1 7 8 4]
[5 6 14 19 13 5 19 9 19 9 9 19] -> [11 10 5 1 6 11 1 7 1 7 7 1]
[9 2 12 3 7 11 15 11 6 8 11 17 11] -> [8 13 3 12 10 4 2 4 11 9 4 1 4]
[3 5 15 7 18 5 3 9 11 2 18 1 10 19] -> [11 9 4 8 2 9 11 7 5 13 2 14 6 1]
[6 11 4 19 14 7 13 16 10 12 7 9 7 10 10] -> [14 6 15 1 3 11 4 2 7 5 11 10 11 7 7]
[11 20 11 1 20 16 11 11 4 8 9 7 11 14 10 14] -> [6 1 6 16 1 3 6 6 15 13 12 14 6 4 11 4]
[4 7 15 2 3 2 3 1 14 2 10 4 7 6 11 2 18] -> [9 6 2 13 11 13 11 17 3 13 5 9 6 8 4 13 1]
[5 1 17 7 1 9 3 6 9 7 6 3 2 18 14 4 18 16] -> [12 17 3 8 17 6 14 10 6 8 10 14 16 1 5 13 1 4]
[5 6 8 10 18 13 20 10 7 1 8 19 20 10 10 18 7 2 1] -> [16 15 11 7 4 6 1 7 13 18 11 3 1 7 7 4 13 17 18]
[12 17 8 2 9 7 15 6 19 5 13 16 14 20 10 11 18 4 3 1] -> [9 4 13 19 12 14 6 15 2 16 8 5 7 1 11 10 3 17 18 20]

1
ঘনিষ্ঠভাবে সম্পর্কিত. পার্থক্য হ'ল এই চ্যালেঞ্জটি গ্যারান্টি দেয় যে ইনপুটটি সাজানো হয়েছে, যার অর্থ বেশিরভাগ উত্তর কোনও indexOfফাংশনের ফর্মের উপর নির্ভর করে । আমি বিশ্বাস করি অরসেটেড ইনপুটটির জন্য অনেক ভাষায় সংক্ষিপ্ত বিকল্প রয়েছে।
মার্টিন এন্ডার


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

আমি একমত নই, এটি স্পষ্টত কোনও সদৃশ নয়।
টিমটেক

আমি টাইমটেকের সাথে একমত, এই চ্যালেঞ্জটি সহজ, তবে কোনও সদৃশ নয়।
tuskiomi

উত্তর:


13

কোড গল্ফ স্ট্যাক এক্সচেঞ্জে মাউস ইনপুট সম্পর্কিত মূর্খ বিধিগুলির জন্য এক্সেলের একচেটিয়া কাজ: (WESRRMICGSE) ২৮ বাইট

rank(RC[1],r1c1:r1024:c1024)

10,23,34,2,উত্স প্রবেশের পরে সংকলকটিতে সিএসভি ( ) হিসাবে ইনপুট তালিকা । কোনও উদ্ধৃতি নেই, বন্ধনী নেই, পিছনে কমা।

WESRRMICGSE হ'ল এক্সেলের প্রোগ্রামিংয়ের মতো, আপনি বাইট সংরক্ষণের জন্য প্রাথমিক '=' চিহ্ন বাদ দিতে পারেন। কার্যকারিতা মধ্যে পার্থক্য এই সত্য থেকে আসে যে WESRRMICGSE হয় কোডটি স্বয়ংক্রিয়ভাবে অনুলিপি করতে এবং একটি একক পূর্ণসংখ্যার ইনপুট সরবরাহিত বিভিন্ন আউটপুট সরবরাহ করতে সূত্রটি নীচে টেনে আনবে। ইনপুট হিসাবে একটি তালিকা সরবরাহ করে, সেই তালিকা বি কলামে যায় (ইনপুট কলাম), এবং সূত্রটি ইনপুট সংখ্যার সাথে মেলে স্বয়ংক্রিয়ভাবে ড্রাগ হয়। (উদাহরণস্বরূপ: 34,21,45 ইনপুটটি সূত্রের সাথে মোট 3 টি কোষের জন্য সূত্রটি 2 কোষের নীচে 'টেনে' নিয়ে যাবে)।

সম্পাদনা: আমি কখনই এই উত্তরটি জনপ্রিয় হওয়ার আশা করিনি। কি দারুন!


21
ভাষার নামটি কিছুটা দু: খজনক ...
কনর ও'ব্রায়েন

আপনি কোন বিধিগুলি উল্লেখ করেন এবং সেগুলি ঠিক কীভাবে নির্বোধ?
লুইস মেন্ডো 21

3
@ লুইস মেনডো এখানে বিধিমালা ঘোষণা করেছেন: meta.codegolf.stackexchange.com/questions/10199/… আমি মনে করি নিয়মটি নির্বোধ কারণ একটি 'দোভাষী' লিখতে আমার 5 মিনিট সময় লেগেছে যা তারা ঠিক কী বিষয়ে কথা বলছে তা আবিষ্কার করে। এই ভাষা যত বেশি চ্যালেঞ্জগুলিতে ব্যবহার করা যেতে পারে, ততই নিয়ম হয়ে ওঠে ill আমি লিঙ্কে এটি অন্তর্ভুক্ত করা নিশ্চিত হবে।
tuskiomi


9

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

lambda l:map(sorted(l+[l])[::-1].index,l)

প্রতিটি মানের জন্য, ক্রমকে ক্রমহ্রাসমান অনুসারে বাছাই করা তালিকায় এর সূচকটি সন্ধান করুন। বৃহত্তম মানটিকে 0 এর পরিবর্তে 1 দেওয়ার জন্য, আমরা তালিকার নিজেরাই অতিরিক্ত "ইনফিনিটি" উপাদানটি ব্যবহার করি, যেহেতু পাইথন 2 সংখ্যার চেয়ে বড় হিসাবে তালিকা বিবেচনা করে।

আরও সরাসরি সমাধানটি 42 বাইট এবং পাইথন 3 এও কাজ করে।

lambda l:[1+sum(y<x for x in l)for y in l]

প্রতিটি উপাদানের জন্য, ছোট উপাদানগুলির সংখ্যা গণনা করে 1 টি 1-সূচকে স্থানান্তরিত করে।



7

আর, 24 25 20 বাইট

অবহেলিত ভেক্টরের উপর "মিনিট" বন্ধন পদ্ধতির সাথে স্ট্যান্ডার্ড র‌্যাঙ্ক ফাংশন ব্যবহার করে। catএটি STDOUT এ আউটপুট যুক্ত হয়েছে। @ গুইসেপ্পে একটি ধন্যবাদ সংরক্ষণ করা হয়েছে

cat(rank(-scan(),,"mi"))

উদাহরণ

> cat(rank(-scan(),,"mi"))
1: 9 2 12 3 7 11 15 11 6 8 11 17 11
14: 
Read 13 items
8 13 3 12 10 4 2 4 11 9 4 1 4
> 

আমি মনে করি এটি catএকটি সম্পূর্ণ প্রোগ্রাম হওয়ার জন্য আপনাকে এটিকে মোড়ানো দরকার ।
অ্যালেক্স এ।

@AlexA। আমি তা দেখে বিস্মিত হলাম. এটি কি বলা উচিত যে এটি নিজের ফাংশন এটি তার নিজের অধিকার এবং সেই ক্ষেত্রে rank(-a,,'min')ঠিক আছে যেখানে ভেক্টর আকারে তালিকার ইনপুটটি রয়েছে?
মিকিটি

সেক্ষেত্রে আমরা এটিকে একটি স্নিপেট হিসাবে বিবেচনা করব, কারণ এটি ধরে নিয়েছে যে নামের ক্ষেত্রে ইতিমধ্যে একটি চলক বিদ্যমান। এটিকে একটি সঠিক ফাংশন জমা দেওয়ার জন্য আপনার প্রয়োজন হবে function(a)rank(-a,,'min')
অ্যালেক্স এ।

"mi"চেয়ে বরং সংক্ষিপ্ত করা যেতে পারে "min"
জিউসেপ

@AlexA। কেন এটি মোড়ানো প্রয়োজন cat? যদি function(a)rank(-a,,'mi')rank(-scan(),,'mi')
মার্ক

4

পাওয়ারশেল v2 +, 43 41 বাইট

($a=$args)|%{@($a|sort -d).indexof($_)+1}

স্বাধীনভাবে বিকাশ হয়েছে তবে আমি দেখতে পাচ্ছি যে এটি @ xnor এর পাইথন দ্রবণ হিসাবে একই / অ্যালগরিদম ।

স্বতন্ত্র কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয় (যেমন, একটি স্থান পৃথকীকরণ তালিকা)। আউটপুট (ডিফল্ট ফর্ম্যাটিং) উপাদানগুলির মধ্যে একটি নতুন লাইন।

ইনপুট তালিকার প্রতিটি উপাদানের জন্য, এটি উত্পন্ন ক্রমের sortইনপুট তালিকাটি বর্তমান উপাদানটি -dগ্রহণ করে .indexOf()এবং যোগ করে 1@(...)একক-অঙ্কের ইনপুটটির জন্য অ্যাকাউন্টের জন্য সুস্পষ্ট অ্যারে কাস্টটি নোট করুন। ফলাফলগুলি পাইপলাইনে রেখে যায় এবং আউটপুট অন্তর্ভুক্ত থাকে।

@ ম্যাটকে ধন্যবাদ 2 বাইট সংরক্ষিত!

উদাহরণ

PS C:\Tools\Scripts\golfing> .\rank-the-integers.ps1 6 2 9 7 2 6 5 3 3 4
3
9
1
2
9
3
5
7
7
6

কোনও কারণ sort -dকি আপনার পক্ষে কাজ করে না? এটা আমার পক্ষে দ্ব্যর্থহীন।
ম্যাট

@ ম্যাট বিজোড় আমার উইন 8.1 আইএসই-তে এটি উল্লেখ করেছে -Descendingএবং -Debugঅস্পষ্ট। তবে Win8.1 এ সোজা শেল এবং উইন 10 এ শেল এবং আইএসই এটি দুর্দান্ত কাজ করে। এই প্রথম আমার বিশেষ Win8.1 ইনস্টল বোকা হয় না ...: - / গল্ফ জন্য ধন্যবাদ!
অ্যাডমবর্কবার্ক

এছাড়াও এটি কি সমস্ত পরীক্ষার ক্ষেত্রে কাজ করে না? $args|%{@($args|sort -d).indexof($_)+1}এটি সংক্ষিপ্ত তবে এটি কার্যকর হয় কিনা তা জানার জন্য আমার ভাল চেহারা হয়নি
ম্যাট

@ ম্যাট এটি কাজ করে না কারণ $argsলুপের স্ক্রিপ্ট ব্লকের জন্য ইনপুট হিসাবে দ্বিতীয় ফাংশনগুলি {...}ঠিক যেমন আপনি কোনও filterবা ব্যবহার করছেন function
অ্যাডমবর্কবার্ক

3

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

@(x)sum(x<x')+1

অক্টাভে আমার এমএটিএল এর বন্দর। এটি মতলব আর ২০১201 বি তেও কাজ করে।

কোড একটি বেনামী ফাংশন সংজ্ঞায়িত করে। এটি কল করতে, এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করুন। Ideone এ ব্যবহার করে দেখুন


3

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

a=>a.map(e=>a.map(d=>r+=e<d,r=1)&&r)

সম্পাদনা: @ বুদ্ধিমানের জন্য 2 টি বাইট সংরক্ষণ করা হয়েছে


.mapa=>a.map(e=>a.map(d=>r+=e<d,r=1)&&r)
এফটিডব্লিউ

3
@ ইথ প্রডাকশনস কেন আপনি সবসময় আমার মজা নষ্ট করতে হয়?
নীল

2

জেলি , 5 বাইট

<S‘ð€

TryItOnline!

কিভাবে?

<S‘ð€ - Main link: listOfValues
   ð  - dyadic chain separation
    € - for each
<     - less than (vectorises) - yields a list of 1s and 0s
 S    - sum - yields number of values the current value is less than (those that beat it)
  ‘   - increment - the place of a value is the number that beat it plus 1.

আমি যে জে কোডটি জমা দিতে চলেছিলাম তার সাথে এটি কতটা মিল? 1+(+/@:<)"0 1~
ডেন

অনুরূপ দেখতে (যোগফলের জন্য একটি হ্রাস ব্যবহার করে?), তবে এটি কোনওভাবেই আপনাকে আপনার কোড পোস্ট করা বন্ধ করতে হবে না!
জোনাথন অ্যালান

আমার ধারণা, আমি জে-অনুপ্রাণিত ভাষায় "ডায়াডিক চেইন বিচ্ছেদ" এবং "প্রত্যেকের জন্য" কী করব তা আমি আরও ভাবছিলাম।
ডেন

আহ, ভাল করে আপনার ব্যাখ্যা থেকে আমি মনে করি যে আপনার কোডটি আরও বেশি পছন্দসই >€µS‘বা সত্যিকারের মতো <@€µS‘( অপারেটরের @পক্ষে যুক্তিগুলি বিপরীত করে <)। J ~এর বাম দিকে শৃঙ্খলে অন্তর্নিহিত µ, যা <যুক্তি (গুলি) তালিকা (গুলি) হলে monadic (বরং dyadic পরিবর্তে) বিচ্ছেদ এবং vectorises হয়।
জোনাথন অ্যালান


2

জাভাস্ক্রিপ্ট, 87 49 বাইট

f=a=>a.slice().map(function(v){return a.sort(function(a,b){return b-a}).indexOf(v)+1 })

a=>[...a].map(v=>a.sort((a,b)=>b-a).indexOf(v)+1)

ধন্যবাদ কনর ও ব্রায়ান এবং ইটিএইচ প্রোডাকশনস!


1
আপনি মানচিত্রে একটি বেনামী ফাংশন ব্যবহার করতে পারেন, অর্থাত্ v=>a.sort((a,b)=>b-a).indexOf(v)+1
কনর ও'ব্রায়েন

আপনার মোটেই প্রয়োজন নেই .slice(), কারণ .mapঅ্যারের অনুলিপিটিতে কাজ করে।
ইটিএইচ প্রডাকশনগুলি

এবং আমাদের সাইটের নীতি হ'ল ফাংশনটির নামকরণের দরকার নেই, তাই আপনি নেতৃস্থানীয়টিকেও মুছে ফেলতে পারেন f=
কনর ও ব্রায়ান

@ ইথ প্রডাকশনগুলি যদি আমি স্লাইসটি সরিয়ে ফেলি তবে[18,13,18][1,1,2][1, 3, 1]
অলিভারের

ওহ, এটি অদ্ভুত ... আমার ধারণা এটি এটি কারণ a.sort()অনুসারে বাছাই করা অ্যারে সঞ্চয় করে a। কিন্তু আপনি পরিবর্তন করতে পারেন a.slice()থেকে [...a]কয়েক বাইট সংরক্ষণ করুন।
ইটিএইচ প্রডাকশনগুলি

2

গণিত, 44 বাইট 42 বাইট 40 বাইট

xPosition[SortBy[x,-#&],#][[1,1]]&/@x

3 বাইট বেসরকারী ব্যবহারের অক্ষর U+F4A1( ওল্ফ্রাম ডক্স পৃষ্ঠা )

সম্পাদনা: বাইট সঞ্চয় করার জন্য জেএইচএমকে ধন্যবাদ ।


1
পরীক্ষার ক্ষেত্রে ব্যর্থ {10,2,5,4,15,5}(আউটপুটটি হওয়া উচিত {2,6,3,5,1,3}নয় {2,5,3,4,1,3}। নোটটি 4এড়িয়ে যেতে হবে কারণ ইনপুটটিতে দুটি 5গুলি রয়েছে)।
JungHwan মিন

যথাযথভাবে সংশোধন করা হয়েছে।
নেজিনিসিস

1
-2 সুইচিং দ্বারা বাইট xএবং #(কার্যকরভাবে প্রথম বন্ধনী পরিত্রাণ): xPosition[SortBy[x,-#&],#][[1,1]]&/@x
জংহওয়ান মিন


2

জে , 14 8 বাইট

1+1#.</~

কিভাবে?

1+1#.</~ - Consumes and returns a list of integers
       ~ - Use the same list for both inputs
     </  - Create a table of less-than comparisons
  1#.    - Treat each row like digits of a base-one number, returning a list of integers
1+       - Increment the results

পূর্ববর্তী সমাধান

1+(+/@:<)"0 1~

হ্যালো, আমি 8 বাইটের জন্য একটি সংক্ষিপ্ত সংস্করণ পেয়েছি 1+1#.</~। বেস -1 রূপান্তর ব্যবহার করে সারি অনুসারে সমষ্টি সম্পাদন করা হয়। আরেকটি বিকল্প হ'ল 1+\:~i.]এটিও 8 বাইট।
মাইল

নিস! আপনি কি নিজের উত্তর পোস্ট করতে চান? আমি অন্যথায় বেস-ওয়ান উন্নতি অন্তর্ভুক্ত করব।
ডেন

2
নাহ, আমি কেবলমাত্র বাইট-সঞ্চয় করার পরামর্শ দিয়েছি। এগুলি ব্যবহার করতে নির্দ্বিধায়
মাইল


1

আশ্চর্য , 28 বাইট

@(->@+1:0iO#0rev sort#I#1)#0

ব্যবহার:

(@(->@+1:0iO#0rev sort#I#1)#0)[6 2 9 7 2 6 5 3 3 4]

ইনপুট অ্যারের উপরে কোনও ফাংশন সহ মানচিত্র যা ইনপুটটির উত্থিত-সাজানো সংস্করণে আইটেমটির প্রথম সূচীতে 1 যোগ করে।



1

গণিত, 37 বাইট

Min@Position[-Sort@-#,i]~Table~{i,#}&

একটি খাঁটি ফাংশন যা সমস্যার নিয়ম অনুসারে এর ইনপুটকে র‌্যাঙ্ক করবে। উদা:

Min@Position[-Sort@-#, i]~Table~{i, #} &[{6, 2, 9, 7, 2, 6, 5, 3, 3, 4}]
(*{3, 9, 1, 2, 9, 3, 5, 7, 7, 6}*)

1

জেলিফিশ , 15 বাইট

p`&& ~i
  >/+`<

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

ব্যাখ্যা

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

     `<

এটি তুলনা অপারেটরের একটি থ্রেড সংস্করণ তৈরি করে, সুতরাং আপনি যদি এটি একটি পূর্ণসংখ্যার এবং একটি তালিকা দেন তবে এটি সেই সংখ্যার এবং তালিকার প্রতিটি উপাদানগুলির মধ্যে তুলনামূলক ফলাফলগুলির একটি তালিকা ফিরিয়ে দেবে।

     ~i
     `<

এটি ইনপুট তালিকা সহ পূর্ববর্তী ফাংশনটির ডান-হাত যুক্তিটি কারিগুলি করে। সুতরাং ফলাফলটি একটি আনরি ফাংশন যা একটি পূর্ণসংখ্যা নেয় এবং আপনাকে প্রোগ্রামের ইনপুট সহ তুলনা ফলাফলগুলির তালিকা দেয়।

   & ~i
   /+`<

এখানে, /+সংযোজন দ্বারা হ্রাস হ'ল যার অর্থ এটি কেবল "এই তালিকার যোগফল" ফাংশন। &পূর্ববর্তী ফাংশন সম্মুখের এই composes, তাই আমরা এখন একটি ইউনারী ফাংশন যা আছে গন্য কিভাবে ইনপুট অনেক মান যে পূর্ণসংখ্যা চেয়ে বড় হয়।

  && ~i
  >/+`<

আমরা এই উপর বর্ধিত ফাংশন রচনা।

 `&& ~i
  >/+`<

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

p`&& ~i
  >/+`<

শেষ পর্যন্ত, এটি ফলাফল মুদ্রণ করে।


1

ব্রেনফাক, 124 বাইট

->,[>>>+>,]<[-<+]+[-->[<[<<<<]>>>+>[>[>>]<[[<<+<<]>+>[->>>>]]<+>>>]+[-<<+]->]<[<
<<<]>+.,>>[>[>->+>>]<<[-<<<<]>-]+[->+]+>>>>]

বিন্যাসকৃত:

->
,[>>>+>,]
<[-<+]
+
[
  -->
  [
    <[<<<<]
    >>>+>
    [
      >[>>]
      <
      [
        [<<+<<]
        >+>[->>>>]
      ]
      <+> >>
    ]
    +[-<<+]
    ->
  ]
  <[<<<<]
  >+.,>>
  [
    >[>->+>>]
    <<[-<<<<]
    >-
  ]
  +[->+]
  +>>>>
]

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

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

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

টেপটি 4-সেল নোডে বিভক্ত করা হয়েছে,

b c 0 0

cউপাদানটি কোথায় এবং bএকটি নেভিগেশন পতাকা যা বর্তমান উপাদানটির জন্য negativeণাত্মক, অন্যথায় একটি।

ফলাফল এবং বর্তমান উপাদানটির একটি অনুলিপি অ্যারের বামে রাখা হয়।


1

জাভা, 215 বাইট

public class G{public static void L(int[]A){int[]r=new int[A.length];for(int i=0;i<A.length;i++){int c=1;for(int j=0;j<A.length;j++){if(A[j]>A[i])c++;}r[i]=c;}for(int i=0;i<r.length;i++)System.out.print(r[i]+",");}}

ব্যাখ্যা:

খুব স্ব বর্ণনামূলক।

মূলত অ্যারেতে প্রতিটি পূর্ণসংখ্যার জন্য এটি তার চেয়ে কত বড় তা পরীক্ষা করে, তারপরে র‌্যাঙ্কিং সহ নতুন অ্যারেটি মুদ্রণ করে।

আমি দুঃখিত এটি খুব সংক্ষিপ্ত নয় তবে এর মধ্যে একটিতে এটি আমার প্রথম চেষ্টা এবং আমি জাভাতে প্রবেশের মুখ দেখেনি। আমি নিশ্চিত যে এটি আরও নিচে চালিত হতে পারে।

এটি কেবল স্থির পদ্ধতির রেফারেন্স তৈরি করে এবং একটি অ্যারে পাস করে চালানো যেতে পারে। আমি মূল ফাংশনটি লেখার প্রয়োজন মনে করি নি তবে এটি যদি হয় তবে ভবিষ্যতে আমি এটি করব।


আপনি কি এই সাদা স্থানটি মুছে ফেলতে পারেন? যেমনটি এটি মোটেও গল্ফ হয় না। (অর্থাত্ স্পেসগুলি r = new)
Rɪᴋᴇʀ

@ ইস্টারলিআইর্ক হ্যাঁ, দুঃখিত আমি এটি করতে অভ্যস্ত নই। আমি মনে করি আমি সমস্ত অনাদায়ী সাদা স্থান থেকে মুক্তি পেয়েছি।
হেনরি

আপনি কি "র‌্যাঙ্ক নাম্বারস গল্ফ" এর নাম "জি" এর মতো ছোট বা কিছু বলে রাখতে পারেন?
Rɪᴋᴇʀ

@ ইস্টারলিআইর্ক হ্যাঁ, ধন্যবাদ
হেনরি

আমি জাভা ভাল না, কিন্তু আপনি তিনটি কিছু জায়গা সরাতে পারেন for (?
আর

0

পিএইচপি, 101 বাইট

কিছুটা ছোট উপায় থাকতে হবে।

function f(&$a){for($r=1;$v++<max($a);$r+=$n,$n=0)foreach($a as$k=>$w)if($w===$v){$a[$k]="$r";$n++;}}

ফাংশনটি পূর্ণসংখ্যার অ্যারের হিসাবে ইনপুট নেয়, সংখ্যার স্ট্রিং হিসাবে র‌্যাঙ্কের সাথে ইনপুট ভেরিয়েবলকে ওভাররাইট করে।

ব্যবহার: $a=[1,2,4,2,2,3];f($a);print_r($a);


0

রুবি, 45 40 বাইট

->a{a.map{|x|a.sort.reverse.index(x)+1}}

এটাকে কীভাবে বলা হয়? আমি এটি পরীক্ষার কেসের সাথে মেলে ধরতে পারি না, সমান র‌্যাঙ্কযুক্ত একটি বাগ রয়েছে বলে মনে হয়। উদাহরণস্বরূপ [10, 2, 5, 4, 15, 5]আমাকে [2, 5, 3, 4, 1, 3]কখন আউটপুট দেয় তা হওয়া উচিত [2, 6, 3, 5, 1, 3]- আমি ঠিক করেছিলাম যে আপনি কেবল সরিয়ে ফেলবেন .uniq- 5 টি বাইট সংরক্ষণ করবেন!
নিল স্লেটার

আমি মনে করি প্রশ্নটি ভুল পড়ে আছে। দাগ দেওয়ার জন্য ধন্যবাদ!
লি ডব্লু

0

ক্লোজার, 48 44 বাইট

আপডেট: forপরিবর্তে ব্যবহারmap

#(for[i %](+(count(filter(partial < i)%))1))

কেবলমাত্র বর্তমান মানের তুলনায় প্রতিটি মান ফিল্টার করে তালিকার দৈর্ঘ্য এবং একের সাথে বৃদ্ধিগুলি গণনা করে।



0

পিএইচপি, 84 বাইট

function r($l){$s=$l;rsort($s);foreach($l as$n)$r[]=array_search($n,$s)+1;return$r;}

ব্যবহার: আপনার পূর্ণসংখ্যার অ্যারে ফাংশনটি পাস করুন এবং এটি স্থান নির্ধারণের পূর্ণসংখ্যার সাথে সম্পর্কিত অ্যারেটি ফিরিয়ে দেবে।

এখানে পরীক্ষা পাস।



0

কে (ওকে) , 11 বাইট

সমাধান:

1+(x@>x)?x:

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

উদাহরণ:

1+(x@>x)?x:6 2 9 7 2 6 5 3 3 4
3 9 1 2 9 3 5 7 7 6
1+(x@>x)?x:5 6 14 19 13 5 19 9 19 9 9 19
11 10 5 1 6 11 1 7 1 7 7 1

ব্যাখ্যা:

বাছাই তালিকায় মূল তালিকার অবস্থান অনুসন্ধান করুন, তারপরে একটি যুক্ত করুন।

1+(x@>x)?x: / the solution
         x: / save input as x
  (  >x)    / return indices of x sorted in descending order
   x@       / apply these indices to x (thus sort x)
        ?   / lookup right in left
1+          / add one
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.