বারবার সংখ্যা সহ একটি অ্যারে তৈরি করুন


19

চ্যালেঞ্জ

এই প্রশ্নে আপনার কাজটি এমন একটি প্রোগ্রাম বা একটি নামকৃত ফাংশন লিখুন যা nSTDIN, ARGV বা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট হিসাবে ধনাত্মক পূর্ণসংখ্যার (0 এর চেয়ে বেশি) লাগে এবং STDOUT বা ফাংশন রিটার্ন মানটির মাধ্যমে একটি অ্যারে আউটপুট করে।

যথেষ্ট সহজ লাগছে? এখন এখানে বিধি

  • অ্যারে শুধুমাত্র থেকে পূর্ণসংখ্যার উপস্থিত থাকবে 1করারn
  • থেকে প্রতিটি পূর্ণসংখ্যা বারবার 1করা nউচিত xযেখানে xপ্রতিটি পূর্ণসংখ্যার মান হয়।

উদাহরণ স্বরূপ:

ইনপুট:

5

আউটপুট:

[1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]

অ্যারে বাছাই করা বা নাও হতে পারে।

এটি তাই বিজয়ী বাইটের মধ্যে সংক্ষিপ্ততম কোড।

বোনাস

0.5আপনার আউটপুট অ্যারেতে যদি দুটি সংলগ্ন পূর্ণসংখ্যা এক হয় না তবে আপনার স্কোরকে গুণান ।

উদাহরণস্বরূপ n = 5, এই জাতীয় একটি কনফিগারেশন হবে

[5, 4, 5, 4, 3, 4, 5, 2, 5, 3, 1, 2, 3, 4, 5]

উত্তর:


6

এপিএল, 4 টি অক্ষর

/⍨⍳⎕

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

ব্যবহারকারীর ইনপুট পড়ে। আউটপুট হিসাবে, এপিএল ডিফল্টরূপে প্রতিটি লাইন থেকে ফলাফল মুদ্রণ করে।

⍳n1 থেকে পূর্ণসংখ্যা হয় n। উদাহরণ:⍳3←→ 1 2 3

/অর্থ প্রতিলিপি । ডান যুক্তি থেকে প্রতিটি উপাদান বাম আর্গুমেন্ট থেকে তার সম্পর্কিত উপাদান দ্বারা নির্দিষ্ট হিসাবে অনেক বার পুনরাবৃত্তি হয়। উদাহরণ:2 0 3/'ABC'←→ 'AACCC'

হয় যাতায়াতের অপারেটর । এটি একটি ফাংশন ডানদিকে ঘটে যখন, এটা তার আচরণ পরিবর্তন, তাই পারেন অদলবদল আর্গুমেন্টগুলি ( A f⍨ B ←→ B f A, অত "যাতায়াতের") বা উভয় পক্ষের একই যুক্তি (উপলব্ধ f⍨ A ←→ A f A, একটি "শেলফি")। পরের ফর্মটি এই দ্রবণটিতে ব্যবহৃত হয়।


বোনাস:

6-∊⌽⍳¨⍳⎕(8 টি অক্ষর, ধন্যবাদ @ ফিল-এইচ )

⍳5(আওতা পাঁচ) হয় 1 2 3 4 5

⍳¨ ⍳5(প্রতিটি আইওটা পাঁচটি আইওটা) হ'ল (,1)(1 2)(1 2 3)(1 2 3 4)(1 2 3 4 5), ভেক্টরগুলির ভেক্টর। প্রতিটি ( ¨) অপারেটর, এটি বামে একটি ফাংশন নেয় এবং ডানদিকে অ্যারে থেকে প্রতিটি আইটেমটিতে এটি প্রয়োগ করে।

অ্যারে বিপরীত, তাই আমরা পেতে (1 2 3 4 5)(1 2 3 4)(1 2 3)(1 2)(,1)

হয় পক্ষভুক্ত (ওরফে চেপ্টা )। পুনরাবৃত্তভাবে আর্গুমেন্টকে পিছনে ফেলে এবং এটি থেকে ভেক্টর হিসাবে সাধারণ স্কেলারগুলি ফিরিয়ে দেয়।


কীভাবে একটি 4-চরিত্রের এক্সপ্রেশন ? /⍨⍳n
ngn

আপনি যেমন চান স্যার, আমি লেখাটি আপডেট করেছি। তবে অবশ্যই আপনার আপত্তি অবশ্যই অন্যান্য সমাধানগুলিতে প্রয়োগ করতে হবে যা কার্যগুলিতে আবৃত নয়?
ngn

3
ডায়ালগ এপিএল দুটি স্বাদে আসে: "ক্লাসিক" এবং "ইউনিকোড"। ক্লাসিক সংস্করণটি কয়েক দশক ধরে বিদ্যমান, ইউনিকোড স্ট্যান্ডার্ড প্রদর্শিত হওয়ার আগে থেকে এবং এপিএল চরিত্রের সেটটির জন্য কাস্টম বাইট-প্রতি-চরিত্রের এনকোডিং ব্যবহার করে। এটি এখনও সমর্থিত, যদিও এর ব্যবহার নিরুৎসাহিত করা হয়েছে। সুতরাং, আমি এটি একটি অজুহাত হিসাবে ব্যবহার করতে চাই। আরও বিস্তৃতভাবে, আমি মনে করি গল্ফিংয়ে আমাদের বাইটগুলি নয়, চরিত্রগুলি গণনা করা উচিত। ইউনিকোডের সর্বনিম্ন কোড পয়েন্টগুলি ইংরেজি কেন্দ্রিক ASCII দ্বারা দখল করা হয়েছে এমন একটি accidentতিহাসিক দুর্ঘটনা যা আজকের বিষয় বিবেচনা করা উচিত নয়। মজার বিষয় হচ্ছে, এএসসিআইআই বের হওয়ার আগে এপিএল ধারণা করা হয়েছিল।
এনএনজি

3
@ এনজিএন গণনা চরগুলি একটি ভাল ধারণা নয় , কারণ উত্তরগুলি সাধারণত বর্ণমালার স্যুপ ডিকোডে পরিণত হবে। এপিএল অক্ষরগুলি বাইট হিসাবে গণনা করা হয় কারণ সেই এনকোডিংটি বিদ্যমান; এটি ভাল এই সাইটে প্রতিষ্ঠিত। এটি প্রশ্ন করার পূর্বে বিদ্যমান যে কোনও বাইট এনকোডিংয়ের সাথে কাজ করে।
FryAmTheEggman

1
@ জিএনএন: আপনি কি আপনার বোনাস উত্তরটি ব্যাখ্যা করতে পারেন? কারণ এটি এর মাধ্যমে করা যেতে পারে: 5 4 3 2 1 5 4 3 2 5 4 3 5 4 5 বা 6 বিয়োগ 1 প্রতিটি 3 2 5 4 5 1 2 3 4 1 2 3 1 2 1, যা মনে হয় এটি খুব দূরের নয় আপনার প্রাথমিক উত্তর থেকে
ফিল এইচ

11

রুবি (রিকার্সিভ), 41 বাইট * 0.5 = 20.5

def n(n,i=1);i>n ?[]:n(n,i+1)+[*i..n];end

বা ল্যাম্বডা ব্যবহার (হিস্টোক্র্যাট এবং ভেন্টোরোর প্রস্তাবিত): 34 বাইট * 0.5 = 17

r=->n,i=n{i>0?[*i..n]+r[n,i-1]:[]}

(ব্যবহার করে কল করুন r[argument])


2
এটি একটি দুর্দান্ত সমাধান। আপনি এটি একটি ল্যামডা পরিবর্তে একটি পদ্ধতি (উপার্জন করে কিছু বাইট সংরক্ষণ করতে পারবেন n=->x,i=1{...n[x,i+1]...) এবং সঙ্গে আরো কয়েকটি [*i..n]
হিস্টোক্র্যাট

1
যুক্তিটি r=->n,i=n{i>0?[*i..n]+r[n,i-1]:[]}
উল্টিয়ে আপনি তিনপাশে

11

পাইথ , 9 বাইট * 0.5 = 4.5

smrhQhdUQ

@ ফ্রাইআমডেজিগম্যানের সহায়তায়

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


ব্যাখ্যা

s             reduce + on list
 m            map
  rhQhd       lambda d: reversed(range(d+1, Q+1)), over
       UQ     range(Q)

Qইনপুট কোথায়


5
আপনাকে সহায়তা করা উচিত ছিল না: ডি
ফ্রাইআম দ্য এজিগম্যান

8

হাস্কেল, ৩১ টি অক্ষর = ১৫.৫ স্কোর

f n=[y|x<-[n,n-1..1],y<-[x..n]]

বোনাস ছাড়াই 27 টি অক্ষর

f n=[x|x<-[1..n],_<-[1..x]]

অভিমান হাসেল্লারের হাতে মারধর


আপনার প্রথম সমাধানটি সঠিক নয়। সম্ভাব্য g n = [y|x<-[n,n-1..1],y<-[x..n]]
ফিক্সটি

@ কারাকফা ওফস: - / এবং ঠিক করার জন্য ধন্যবাদ
জন ডিভোরাক

আমার হাস্কেলের উত্তরটি আপনার থেকে মাত্র একটি ছোটো
গর্বিত হাসেলেলার

আমি কি আমার সমাধান থেকে এটি যুক্ত করতে পারি, এটি প্রচার করার জন্য?
জন ডিভোরাক

@ জনডভোরাক আমি আসলেই চাই, ...
গর্বিত হাসেলেলার

7

সি, 22 = 44 বাইট * 0.5

ফাংশন hদুটি পরামিতি লাগে। প্রথমটি একটি intনির্দিষ্ট করা এন । দ্বিতীয়টি হ'ল int*আউটপুট বাফার।

h(n,o)int*o;{for(n&&h(~-n,o+=n);*--o=n--;);}

পরীক্ষা প্রোগ্রাম

main(){
int wow[999],*i;
memset(wow,0,sizeof(wow));
h(6, wow);
for(i=wow;*i;i++)printf("%d ", *i);
}

আমি পাই না। দয়া করে ব্যাখ্যা করুন?
বেকসুবিলে

@ ব্যাকছুবিলে ওকে .. এটি পুনরাবৃত্তভাবে এন থেকে শুরু করে 0 অবধি ক্রমগুলি লিখেছেন। সংক্ষিপ্ত ক্রমগুলি পুনরাবৃত্তির গভীর স্তরে শীঘ্রই লেখা হয়। যদি আর্গুমেন্ট n 0 হয়, তবে n মিথ্যা হয় তাই কোনও পুনরাবৃত্তি হয় না এবং কেবল একটি 0 লেখা থাকে যা অ্যারের শেষটি চিহ্নিত করতে পরিবেশন করে।
ফেয়ারসুম

7

পাইথ - 15 10 * .5 = 5

smr-QdhQUQ

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

স্টিডিনে ইনপুট আশা করে। স্বতন্ত্রভাবে অ্যালগরিদম আবিষ্কার হয়েছে। আমাকে সেখানে শেষ প্রশ্নটি আটকে রাখতে সাহায্য করার জন্য @ এসপি 3000 ধন্যবাদ: পি এছাড়াও, বিড়বিড়? XD

ব্যাখ্যা:

Q=eval(input())       : implicit
s                     : The sum of...
 m      UQ            : map(...,range(Q))
  r-QdhQ              : range(Q-d,Q+1)

2
সুন্দর সমাধান। কখনও কি এমন পরিস্থিতি আছে যেখানে পাইথ কোড গল্ফ জিততে পারে না ? :)
অ্যালেক্স এ।

2
@ অ্যালেক্স সমস্যার প্রকৃতির উপর নির্ভর করে গল্ফিংয়ের উপর ভিত্তি করে তৈরি ভাষা (গল্ফস্ক্রিপ্ট, সিজাম) এটি ক্রিম করতে পারে, এটি গ্রন্থাগারের স্টাফগুলিতেও হারাতে পারে ( কাশি বাশ কাশি );)
ফ্রাইআম দ্য এজিগম্যান

6

সিজেম, 12 15 বাইট * 0.5 = 7.5

li_,f{),f-W%~}`

এটি সম্পূর্ণ STDIN-to-STDOUT প্রোগ্রাম। এটি 1 ... nপরিসীমাটির ক্রমবর্ধমান প্রত্যয়কে সম্মতি জানায় , যা নিশ্চিত করে যে কোনও দুটি সংলগ্ন সংখ্যা অভিন্ন নয়।

এটি এখানে পরীক্ষা করুন।


6

পাইথন 2, 53 বাইট * 0.5 = 26.5

i=n=input()
x=[]
while i:x+=range(i,n+1);i-=1
print x

নির্লজ্জভাবে @ ভিজুয়ালমেলনের ধারণা ধার করা হয়েছে


6

হাস্কেল, 34 বাইট * 0.5 = 17

0%n=[]
i%n=[i..n]++(i-1)%n
g n=n%n

আমি প্রথমবারের মতো গল্ফ করার জন্য হাস্কেলকে ব্যবহার করেছি। সাথে কল g <number>



5

গল্ফস্ক্রিপ্ট (14 বাইট * 0.5 = স্কোর 7)

 ~:x,{~x),>~}%`

অনলাইন ডেমো

আমি মনে করি এটি সম্ভবত কিছু বিদ্যমান উত্তরের সাথে সমান যা এটি অ্যারে তৈরি করে concat( [n], [n-1, n], [n-2, n-1, n], ..., [1, 2, ..., n] )

দুর্ভাগ্যক্রমে আমি আর কোনও যুক্তিযুক্তভাবে আরও মার্জিত গল্ফ করতে সক্ষম ছিল না:

~:x]{{,{x\-}/}%}2*`

যা ইনপুটটিকে xএকটি অ্যারেতে রাখে এবং তারপরে দু'বার প্রয়োগ হয় {,{x\-}/}%, যা প্রতিটি উপাদানকে অ্যারেতে ম্যাপ করে এমন অনেক উপাদান থেকে একটি গণনা করে x


5

সি # - 81 (161 বাইটস * 0.5)

সি # তে সরল চাকরি, আশাকরি ন-নিবার্নিং-নম্বর বোনাস পাবে। স্টিডিনের কাছ থেকে একটি ইনট পড়ে, স্টাডাউটের উদাহরণের মতো একটি অ্যারে লিখে দেয়।

class P{static void Main(){int n=int.Parse(System.Console.ReadLine()),m=n-1,i;var R="["+n;for(;m-->0;)for(i=m;i++<n;)R+=", "+i;System.Console.WriteLine(R+"]");}}

আরও পঠনযোগ্য:

class P
{
    static void Main()
    {
        int n=int.Parse(System.Console.ReadLine()),m=n-1,i;
        var R="["+n;
        for(;m-->0;)
            for(i=m;i++<n;)
                R+=", "+i;
        System.Console.WriteLine(R+"]");
    }
}

উদাহরণ আউটপুট:

n = 5
[5, 4, 5, 3, 4, 5, 2, 3, 4, 5, 1, 2, 3, 4, 5]

আমি সত্যিই একটি খাটো সি # সমাধান বের করার চেষ্টা করছি তবে আমি এটি পেতে পারি না ... ভাল হয়েছে
ব্র্যান্ডন

1
@ মার্ককনল System.Consoleস্থির, আপনি এটিকে কোনও পরিবর্তনশীল হিসাবে নির্ধারণ করতে পারবেন না, তবে সি # 6 বা তারপরে যা কিছু আছে, আপনি করতে সক্ষম হবেন using System.Console;( using System;এই উদাহরণে অর্থ প্রদান করবেন না), এই বৈশিষ্ট্যটি সম্পর্কে আমি কী অনুভব করব তা নিশ্চিত নয় এই কারণেই সঠিকভাবে প্রচুর পুরানো গল্ফ প্রশ্নের উপর প্রভাব
ফেলুন

1
@ ইচাবোডক্লে এটি আরও খারাপ হয়ে যায়, using C=System.Console3 বাইট সংরক্ষণ করে এবং সম্ভবত এটিই মার্ককনোল বলতে চেয়েছিলেন (দুঃখিত!), আমার পক্ষে লজ্জাজনক অবহেলা।
ভিজ্যুমেলন

1
এছাড়াও, নিয়ম অনুসারে, আপনি একটি সম্পূর্ণ প্রোগ্রাম তৈরির পরিবর্তে পদ্ধতিটি নিজেই রাখতে পারেন। এরকম কিছু ... এই । (। 114 অনুসরণকারী শূণ্যস্থান এবং এই ধরনের সরানো 57 বোনাস সহ বাইট সঙ্গে বাইট।)
Ichabod ক্লে

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

4

জাভাস্ক্রিপ্ট, ES6, 41 বাইট

f=i=>[...Array(i).fill(i),...i?f(--i):[]]

এটি একটি ফাংশন তৈরি করে f যা বলা যেতে পারে f(6)এবং এটি প্রয়োজনীয় অ্যারে প্রদান করে।

এটি পুনরাবৃত্তির পদ্ধতির ব্যবহার করে, যেখানে প্রতিটি পুনরাবৃত্তি iসমস্ত মূল্যের উপাদানগুলির একটি অ্যারে তৈরি করেi এবং f(i-1)বন্ধ হওয়া শর্ত দিয়ে ফিরে আসা অ্যারেটিকে সংশ্লেষ করেi==0

সর্বশেষতম ফায়ারফক্সে কাজ করে।


4

হাস্কেল, 14 = 28 বাইট / 2

f n=n:[1..n-1]>>= \r->[r..n]

উদাহরণ আউটপুট:

>f 5
[5,1,2,3,4,5,2,3,4,5,3,4,5,4,5]

বোনাস ছাড়াই 24 বাইট:

f n=[1..n]>>= \r->[r..n]

=<<হোয়াইটস্পেস এড়াতে সাহায্য করতে পারেন? আমার মনে হচ্ছে এটি হতে পারে তবে আপনি যদি ইতিমধ্যে বিবেচনা না করে থাকেন তবে আমি অবাক হয়ে যাব।
জন ডিভোরাক

@ জনডভোরাক যদি আমি ব্যবহার =<<করতাম তবে ল্যাম্বদার জন্য আমার প্রথম বন্ধনী প্রয়োজন
গর্বিত হাসেলেলার

ঠিক কখন ল্যাম্বডাসকে প্রথম বন্ধনী দরকার হয় তা নিয়ে আমি বিভ্রান্ত হয়ে পড়েছি। ল্যাম্বডা হেডারটির মতো একই স্থিরতা রয়েছে >>=?
জন ডিভোরাক

@ জনডভোরাক তাদের কোন স্থিরতা নেই; আমি নিশ্চিত নই কিভাবে সঠিক এই নিয়ম, কিন্তু lambdas শুধুমাত্র প্রদর্শিত করতে পারেন যেখানে অপারেটরদের না (বিভাগে disregarding) করতে পারেন: পর (, [, =, ,, কোনো অপারেটর এবং মত পরে
গর্বিত haskeller

আমার ধারণা ল্যাম্বডাস বা অপারেটররা উভয়ই নিদর্শন হিসাবে উপস্থিত হতে পারে? let \x->y = (2+) in (x,y)অসম্ভবকে অসম্ভব বলে মনে হচ্ছে।
জন ডিভোরাক


3

ভিবিএ, 76 * 0.5 = 38

Sub i(q)
For Z=1 To q:For x=q To Z Step -1:Debug.?x;",";:Next:Next
End Sub

আপনি ঘনীভূত দ্বারা 1 (0.5, টেকনিক্যালি) বাইট (গুলি) হারাতে পারেন For Z=1 ToকরতেFor Z=1To
টেলর স্কট

আপনার কাছে ঘনীভূত করতে Next:NextকরতেNext x,Z
টেলর স্কট

2

আর, 44 * .5 = 22

f=function(n){r=0;for(i in 1:n)r=c(r,n:i);r}

একটি দ্রুত পরীক্ষা

> f(1)
[1] 1
> f(2)
[1] 2 1 2
> f(3)
[1] 3 2 1 3 2 3
> f(4)
 [1] 4 3 2 1 4 3 2 4 3 4

কি ? টিএসকিউএল নেই?
অপ্টিমাইজার

@ অপ্টিমাইজার পরে হতে পারে :)
মিকিটি

2

জাভাস্ক্রিপ্ট, ES6, 66 বাইট * 0.5 = 33

f=i=>(g=n=>[...Array(n).fill().map((v,x)=>i-x),...n?g(n-1):[]])(i)

অপ্টিমাইজারের পুনরাবৃত্তিমূলক পদ্ধতির উপর ভিত্তি করে আমরা কমতে থাকা দৈর্ঘ্যের যেমন ক্রমবর্ধমান রান তৈরি করতে পারি[4,3,2,1, 4,3,2, 4,3, 4]

এর সাথে সম-মানের সাবহারিগুলি তৈরির পরিবর্তে Array(i).fill(i)আমরা undefinedউপযুক্ত দৈর্ঘ্যের ফিল্ড সাববারিগুলি তৈরি করি Array(n).fill()এবং তারপরে ব্যবহার করে মানগুলিকে একটি অবতরণকারী রানে পরিবর্তন করি .map((v,x)=>i-x)। এছাড়াও, আমরা একটি অভ্যন্তরীণ ফাংশন সংজ্ঞায়িত করি এবং পুনরাবৃত্তি করি g; বাইরের ফাংশনটি fকেবল পুনরাবৃত্ত হওয়ার iসময় মান সংরক্ষণ করতে উপস্থিত থাকে g


2

টি-এসকিউএল, 176 * 0.5 = 88

যেহেতু আপনি টি-এসকিউএল @ অপ্টিমাইজারটি মিস করছেন বলে মনে হয়েছিল, তাই এখানে এটি সমস্তই ভার্জিক গৌরব :)।

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

ইনলাইন টেবিলের মূল্যবান কার্য, 176 * .5 5

CREATE FUNCTION F(@ INT)RETURNS TABLE RETURN WITH R AS(SELECT @ N UNION ALL SELECT N-1FROM R WHERE N>0)SELECT B.N FROM R CROSS APPLY(SELECT TOP(R.N)N FROM R A ORDER BY N DESC)B

নীচে বলা হয়

SELECT * FROM dbo.F(5)

SQLFiddle উদাহরণ

স্কেলার ফাংশন, 220 * .5

CREATE FUNCTION G(@ INT)RETURNS VARCHAR(MAX)AS BEGIN DECLARE @S VARCHAR(MAX),@N INT=1,@I INT,@C INT WHILE @N<=@ BEGIN SELECT @I=@N,@C=@ WHILE @C>=@I BEGIN SELECT @S=CONCAT(@S+',',@C),@C-=1 END SET @N+=1 END RETURN @S END

নীচে বলা হয়

SELECT dbo.G(5)

এসকিউএলফিডাল উদাহরণ



2

পার্ল, 26 বাইট

for(1..$n){print"$_ "x$_;}

1
আপনার স্কোর পোস্ট করুন। এছাড়াও, যেহেতু এটি কোড গল্ফ, তাই অতিরিক্ত স্থান এবং সংজ্ঞাটি সরিয়ে আপনি বাইটগুলি সংরক্ষণ করতে পারেন $n
অ্যালেক্স এ।

এটি আমার জন্য পার্ল under এর অধীনে চলে না
অ্যালেক্স এ।

@ অ্যালেক্স, ত্রুটিটি কী, 5.10 এর অধীনে কাজ করে
michael501

Unable to parse postcircumfix:sym<{ }>, couldn't find final '}' at line 3। আইডিয়োন.কম এ চেষ্টা করেছেন।
অ্যালেক্স এ।

@ অ্যালেক্স, এটি ব্যবহার করে দেখুন: সি: \ উইন্ডোজ \ system32> পার্ল -e "$ n = 5; (1 .. $ n) {মুদ্রণ কিউকিউ ($ _) x $ _;"; " 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
michael501

2

জাভাস্ক্রিপ্ট (পঠনযোগ্য), 131 বাইট

আমি কোড গল্ফে নতুন তাই এটি সেরা না

function f(n) {
    var arr = [];
    for(var i = 1; i <= n; i++) {
        for(var j = 0; j < i; j++) {
            arr.push(i);
        }
    }
    return arr;
}

জাভাস্ক্রিপ্ট (কম পঠনযোগ্য), 87 বাইট

Jscompress.com ব্যবহার করে খাটো করা হয়েছে

function f(e){var t=[];for(var n=1;n<=e;n++){for(var r=0;r<n;r++){t.push(n)}}return t}

2

টেকো, 25 বাইট * 0.5 = 12.5

a\+1%a%b<qauc-1%b<-1%c=>>

উপরেরটি সবেমাত্র 13 বাইটে নন-বোনাস সংস্করণকে পরাজিত করে:

a\%a<%b<qb=>>

2

সি #, 114 99 * 0.5 = 49.5 বাইট

(ভিজুয়েলমেলনের উত্তর থেকে কিছুটা সহায়তা নিয়ে) সম্পাদনা করুন: এবং জেমস ওয়েবস্টার এর মন্তব্য

int[]A(int n){int m=n,i,c=0;var a=new int[n*(n+1)/2];while(m-->0)for(i=m;i++<n;)a[c++]=i;return a;}

Ungolfed:

int[] FooBar(int n)
{
    int altCounter = n, i, arrayCounter = 0;
    var returnArray = new int[n * (n + 1) / 2];
    while(m-->0)
        for(i = altCounter; i++ < n; )
            returnArray[arrayCounter++]=i;
    return returnArray;
}

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

সি # (অনিরাপদ), 82 * 0.5 = 41 বাইট

unsafe void A(int n,int*p){int*z=p;int m=n,i;while(m-->0)for(i=m;i++<n;)z++[0]=i;}

নীচে বলা হয়:

int n = 5, length = (int)((n / 2f) * (n + 1));
int* stuff = stackalloc int[length];
int[] stuffArray = new int[length];
A(n, stuff);
System.Runtime.InteropServices.Marshal.Copy(new IntPtr(stuffArray), stuffArray, 0, stuffArray.Length);
//stuffArray == { 5, 4, 5, 3, 4, 5, 2, 3, 4, 5, 1, 2, 3, 4, 5 }

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

সি #, 72 * 0.5 = 36 বাইট

void A(int n,int[]p){int z=0,m=n,i;while(m-->0)for(i=m;i++<n;)p[z++]=i;}

চমৎকার কাজ! প্রতি বরাদ্দকৃত সংস্করণটির জন্য, নিরাপদে যাওয়া এবং int[]সরাসরি বন্ধ করে দেওয়া অনেকটা সস্তা void A(int n,int[]p){int z=0,m=n,i;while(m-->0)for(i=m;i++<n;)p[z++]=i;}- আমি সম্মত হব এটি সম্ভবত কিছুটা
আইফিল

অনিরাপদ সংস্করণের জন্য আপনার একটি স্থানীয় পয়েন্টার তৈরি করার দরকার নেই, এটি একটি ভাল 8 বাইটস কেটে দেয়। এছাড়াও, আমি পয়েন্টটি মিস করছি, তবে কি অনিরাপদ কলিং কোডের শেষ লাইনটি হওয়া উচিত System.Runtime.InteropServices.Marshal.Copy(new IntPtr(stuff), stuffArray, 0, length);?
ভিজ্যুমেলন

@ ভিজুয়ালমেলন আমার নাম পরিবর্তন করার পরে ভেরিয়েবলের নাম পুনরুদ্ধার না করার জন্য এটিই পাই। মাথা আপ জন্য ধন্যবাদ: ডি। আপনার মন্তব্যে সংক্ষিপ্ত সংস্করণের জন্য অ্যাকাউন্টে উত্তর সম্পাদনা করা হয়েছে।
ইছাবোদ ক্লে

var a=new int[(int)((n/2f)*(n+1))];আমার মনে হয় যে দৈর্ঘ্যটি এটি 109 এ নেমেছে সারণী করে আপনি নিরাপদ সংস্করণটি কিছুটা কাটাতে পারেন
জেমস ওয়েবস্টার

ক্যালকটি পুনরায় লিখে আরও একবার বন্ধ করুন:(n*(n+1)/2)
জেমস ওয়েবস্টার

1

Seq, expr এবং xargs = 62/2 = 29.5 দিয়ে বাশ করুন

এটি সংরক্ষণ করুন এবং প্রথম আর্গুমেন্ট হিসাবে নম্বর দিয়ে চালান।

seq $1|xargs -n1 seq|xargs -n1 expr $1 + 1 -|sed 1d;echo $1


1

সি #, 116 115 + 33 = 148 বাইট

সংক্ষিপ্ততম কোড নয়, তবে ... এটি যাইহোক কাজ করে: পি

int[]l(int m){List<int>i=new List<int>();for(int j=1;j<=m;j++){for(int x=0;x<j;x++){i.Add(j);}}return i.ToArray();}

ফাইলের শীর্ষে এটির প্রয়োজন (33 বাইট):

using System.Collections.Generic;

আন-গল্ফ করা সংস্করণ:

int[] RepatedNumberList(int m)
{
    List<int> intList = new List<int>();
    for (int j = 1; j <= m; j++)
    {
        for (int x = 0; x < j; x++)
        {
            intList.Add(j);
        }
    }
    return initList.ToArray();
}

1

জে, 23 * 0.5 = 11.5

   f=.-;@(<@|.@i."0@>:@i.)
   f 5
5 4 5 3 4 5 2 3 4 5 1 2 3 4 5

জে, ১১

   f=.#~@i.@>:
   f 5
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

1
23 * 0.5হয় 11.5, না 10.5
প্রোগ্রামফক্স

পছন্দ করুন আপনি কি সম্পাদনা করতে যাচ্ছেন, নাকি আমার করা উচিত? আইএমওকে হ্রাস করার কোনও দুর্দান্ত কারণ নয়।
জন ডিভোরাক

@ জনডভোরাক কেবল এটি সম্পাদনা করেছেন। এবং আমি উঁচুতে যাইনি, ভুলটি দেখার আগেই আমি এটিকে উন্নত করেছিলাম।
ProgramFOX

এখন ভুলটি স্থির হয়ে গেছে, বোনাস সমাধানটি নীচে সরানো উচিত?
জন ডিভোরাক

-1বাইট:, f=.-[:;<@|.@i."0@>:@i.স্কোর সমান করা!
বোলস বুসিয়ের

1

জাভাস্ক্রিপ্ট (ES6) 29 (58 * 0.5)

সম্পাদনা সরান; thx @ অপ্টিমাইজার

Q=o=>(m=>{for(n=o,r=[];n>m||++m<(n=o);)r.push(n--)})(0)||r

টেস্ট ফায়ারফক্স / Firebug কনসোলে

Q(9)

আউটপুট

[9, 8, 7, 6, 5, 4, 3, 2, 1, 9, 8, 7, 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 9, 8, 7, 6, 5, 4, 9, 8, 7, 6, 5, 9, 8, 7, 6, 9, 8, 7, 9, 8, 9]

Ungolfed

Q=o=>{
  for(m=0,r=[];m<o;++m)
    for(n=o;n>m;)
      r.push(n--);
  return r
}

1

ECMAScript6, 67 * 0.5 = 33.5 বাইট

f=n=>{a=[],b=0;while(c=n+b,n--){while(c-b)a.push(c--);b++}return a}

এটির সাথে খুব খুশি ... এটি আমার আসল আকারের প্রায় এক চতুর্থাংশ।

f(4) আয়:

[ 4, 3, 2, 1, 4, 3, 2, 4, 3, 4 ]

পুরানো উত্তর:

f=i=>{a=b=Array;while(i)a=a.concat(b.apply(null,b(i)).map(e=>i)),i--;return a}

কোড গল্ফে এটি আমার প্রথম শট ... আমি এখনও 0.5x বোনাস পেতে চাই। কোন পরামর্শ স্বাগত জানাই!

F (n) দিয়ে ডাকা হয়েছে।


এটি আপনাকে নিজেই জাভাস্ক্রিপ্টে বেশ নতুন হতে হবে :)। (1) আর্গুমেন্টের চারপাশে বন্ধনীগুলি সরান d, (2) a=b=c=[]ঘোষণার অংশের জন্য, (3) c[a].map(e=>a)(4)b.push(...c)
অপ্টিমাইজার

আমি আপনার মন্তব্য পড়ার আগে একটি ছোট সংস্করণ তৈরি করেছি, যা আমি আমার পোস্টে রেখে দেব। জেএসের সাথে আমার অভিজ্ঞতাটি বেশিরভাগ সাধারণ ওয়েব অ্যাপ্লিকেশনগুলির জন্য ডম / স্টাইলের হেরফেরের মধ্যে সীমাবদ্ধ ... এবং আমি আজ পর্যন্ত খুব কমই নতুন ইএস 6 বৈশিষ্ট্য ব্যবহার করেছি।
বাইনরমাল

1

সি #, 108 বাইট * 0.5 = 54

List<int> f(int n){var r=new List<int>();int m=n-1,i;r.Add(n);for(;m-->0;)for(i=m;i++<n;)r.Add(i);return r;}

কঠোর পরিশ্রম করার জন্য ভিজুয়েলমেলনকে ধন্যবাদ! আমি ভেবেছিলাম যতটা সম্ভব নিচে নেওয়ার চেষ্টা করব।

(114 বাইট * 0.5 = 57, আপনি যদি জি.টি.

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