স্কুইগলি সিকোয়েন্স


29

এই চ্যালেঞ্জটি নিয়ে আসার জন্য আদনানের কাছে সমস্ত কৃতিত্ব।

আমার শেষ চ্যালেঞ্জ, বিরতিতে যাওয়ার আগে ।

কার্য

ধনাত্মক পূর্ণসংখ্যা দেওয়া হয়েছে n, যদি nবিজোড় হয় তবে /বহুবার পুনরাবৃত্তি করুন ; যদি nসম হয় তবে \বহুবার পুনরাবৃত্তি করুন ।

(সিরিয়াসলি, টেস্টকেসগুলি এই বর্ণনার চেয়ে অনেক বেশি পরিষ্কার হবে, তাই কেবল টেস্টকেসগুলি দেখুন))

চশমা

Testcases

n output
1 /
2 \\
3 ///
4 \\\\
5 /////
6 \\\\\\

উত্তর:


17

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

n=>"\\/"[n%2].repeat(n)

একটি বেনামী ফাংশন সংজ্ঞায়িত করে।

*জাভাস্ক্রিপ্টে কেবল স্ট্রিং যদি পুনরাবৃত্তি হয়। দীর্ঘশ্বাস


1
অবশেষে আপনি সঠিক অপারেটরটি পেয়েছেন
লিকি নুন

নিবন্ধন করুন
ড্যানইম্যান

আপনি চরিত্রটি বেছে নিতে টার্নারি অপারেটরটি ব্যবহার করছেন, না?
লিকি নুন

@ ল্যাকইনুন প্রাথমিকভাবে, হ্যাঁ, তবে আপনি যদি চ্যাটের দিকে নজর দেন তবে আমি এটি প্রায় এক মিনিট পরে পোস্ট করেছি।
ড্যানথম্যান

2
@Jordumus হয় আপনি একটি পরিবর্তনশীল ফাংশন নির্ধারণ পারে: f=n=>...আপনি সরাসরি সেটিতে কল পারে: (n=>...)(5)। (অথবা আপনি যদি নোড.জেএস আরইপিএল ব্যবহার করে থাকেন তবে আপনি এটি ব্যবহার করতে পারতেন this._, যা সর্বশেষে প্রবেশ করা জিনিসটি বোঝায়)
DanTheMan



9

পার্ল, 20 বাইট

এর জন্য +1 অন্তর্ভুক্ত -p

এসটিডিনে ইনপুট দিয়ে চালান:

squigly.pl <<< 6

squigly.pl

#!/usr/bin/perl -p
$_=$_%2x$_;y;01;\\/

এটি কেবল পার্লের আমার সংস্করণ হতে পারে (আমি এখনও 5.10 এ রয়েছি) তবে আমি অতিরিক্ত না যুক্ত করলে এটি ত্রুটি ছুঁড়ে দেয়; অবশেষে. আমি মনে করি কারণ এটি আপনি y এর জন্য পৃথক হিসাবে আধা-কোলন ব্যবহার করছেন এবং বিবৃতিটি শেষ করতে আপনার আরও একটি প্রয়োজন (এবং এর পরে কোডের আরও লাইন থাকলে আপনার দুটি প্রয়োজন হবে)
TheLambGoat

আপনি কি এই -pবিকল্পটি ব্যবহার করছেন তা নিশ্চিত ? আমি ব্যবহার ;লিপ্যন্তর ঠিক কারণ এ -pএকটি অন্তর্নিহিত রয়েছে ;কোডের শেষে তাই আমি আরো 1 টি বাইট সংরক্ষণ করতে পারবেন। এটি কমপক্ষে পার্ল 5.6 সাল থেকে কাজ করেছে (সম্ভবত -pবিকল্পটি বাস্তবে বিদ্যমান যতক্ষণ না)
টন হসপেল

@ ল্যাম্বগোট এমএম, আমি পার্ল 5..১০ সহ একটি পুরানো রেডহাট পেয়েছি যেখানে এটি কাজ করে না। হয় এটি একটি রেডহ্যাট প্যাচ বা এটি প্রায় ৫.১০ এর মতো কাজ করে নি (আমি নিশ্চিত এটি পুরানো পার্সে কাজ করেছে এবং এটি আরও নতুন পার্সেও কাজ করে)
টন হসপেল

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

1
যোগটি ;যুক্ত কৌশলটি -pখুব দুর্দান্ত, খুব ভাল।
দাদা


7

সি #, 42 বাইট

string f(int n)=>new string("\\/"[n%2],n);

সঠিক চরিত্রটি নির্বাচন করে, তারপরে পুনরাবৃত্তি nহয়েছে এমন একটি অক্ষর তৈরি করে ।


7

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

for(;$i++<$a=$argv[1];)echo'\/'[$a%2];

(বৈকল্পিক 38 বাইট)

while($i++<$a=$argv[1])echo'\/'[$a%2];

(বৈকল্পিক 38 বাইট)

<?=str_pad('',$a=$argv[1],'\/'[$a%2]);

(বৈকল্পিক 40 বাইট)

<?=str_repeat('\/'[($a=$argv[1])%2],$a);


6

জেলি , 5 বাইট

ị⁾/\x

এটি অনলাইন চেষ্টা করুন! বা সমস্ত টেস্টকেস যাচাই করুন।

ị⁾/\x

ị⁾/\    modular-indexing into the string "/\"
    x   repeat

যদিও আমি সন্দেহ করি যে এই চ্যালেঞ্জটির বিদ্যমান থাকাতে এটির সাথে কিছু করার থাকতে পারে, তবে এটি Ø^একটি বাইটের চেয়ে কম সংক্ষেপে লক্ষ্য করার মতো ⁾/\
অপ্রকাশিত স্ট্রিং

6

জে, 10 বাইট

#'\/'{~2|]

এটি ছয়টি ট্রেনের ক্রিয়া যা গঠিত:

# ('\/' {~ 2 | ])

এটি #এবং এর মধ্যে একটি হুক ('\/' {~ 2 | ]); একটি হুক (f g) yপ্রসারিত হয় y f (g y), সুতরাং এটি প্রসারিত হয় y # (... y), যা একক অক্ষরগুলির জন্য yঅক্ষরের একটি তালিকা দেয় ।

দ্বিতীয় অংশটি 5 টি ট্রেনের সমন্বিত:

'\/' {~ 2 | ]

এটি দুটি কাঁটাচামচ মূল্যায়ন:

'\/' {~ (2 | ])

অভ্যন্তরের কাঁটাচামচ, 2 | ]দুটি মডুলাস। বাইরের কাঁটাচামচটি হ'ল:

'\/' {~ mod2

যা স্ট্রিং থেকে {~(2 mod2) মোড 2 সূচক ( ) নেয় /

তারপরে, উপরে থেকে হুক ব্যবহার করুন:

y # (apt char)

এটি আমরা যা চাই তা ফল দেয় এবং আমরা সম্পন্ন হয়ে যাই।


6

হাস্কেল, 25 বাইট

f n=cycle"\\/"!!n<$[1..n]

-1 বাইট ধন্যবাদ সাথে ড্যামিয়েনকে দিয়ে cycle


1
f n=cycle"\\/"!!n<$[1..n]
ড্যামিয়েন

@ ডামিয়েন বাহ, আমি চক্রটি কীভাবে ভুলে গেছি।
xnor

আমি জানি না। তবে আমি আপনাকে একবার "পরাজিত" করার সুযোগ পেয়ে আনন্দিত হয়েছি :)
ড্যামিয়েন

6

গণিত, 34 32 28 বাইট

If[OddQ@#,"/","\\"]~Table~#&

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


আপনি ব্যবহার করতে পারেন ~Table~#
মার্টিন ইন্ডার

আমি মনে করি এটি 10.2 এ যুক্ত হয়েছিল।
মার্টিন ইন্ডার

এছাড়াও, আমি মনে করি আপনি খাঁজতে <>""এবং অক্ষরের একটি তালিকা ফিরে আসতে পারেন।
মার্টিন এন্ডার

1
@ মার্টিনএন্ডার অবশ্যই তাদের অবশ্যই যোগ করা উচিত ~Do~Infinityএবং 10.2+
তেও

5

পাওয়ারশেল, 30 27 বাইট

হালনাগাদ:

param($n)('\','/')[$n%2]*$n

স্যুইচিং param, টিমমিডকে ধন্যবাদ ।


"$("\/"[$args[0]%2])"*$args[0]

বা কিছুটা বেশি পঠনযোগ্য

("\","/")[$args[0]%2]*$args[0]

টেস্ট:

> 1..10 | % { ./run.ps1 $_ }
/
\\
///
\\\\
/////
\\\\\\
///////
\\\\\\\\
/////////
\\\\\\\\\\

3
পিপিসিজিতে আপনাকে স্বাগতম! আশেপাশে অন্য একটি পাওয়ারশেল ব্যবহারকারী দেখে ভাল লাগল। param($n)পরিবর্তে ইনপুট নিয়ে কয়েকটি বাইট শেভ করতে পারেন $args, যেমন 27 বাইটের জন্য নিম্নলিখিতগুলিparam($n)('\','/')[$n%2]*$n
অ্যাডমবর্কবর্ক

5

গণিত, 29 বাইট

"\\"["/"][[#~Mod~2]]~Table~#&

নিষ্ঠুরতা এই [[1]]ফাংশনটির প্রথম যুক্তি [[0]]ফিরিয়ে দেয় এবং ফাংশনটি (মাথা) নিজেই ফেরত দেয়, এমন এক বিস্ময়কর বৈধ ফাংশনটিতে প্রয়োগ করা হয় "\\"যা "মূল্যায়ন" হচ্ছে "/"


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

2
আমি এই সাইটে অনেকগুলি ভাষা দুর্ব্যবহার দেখেছি, তবে আমি মনে করি এটি ম্যাথামেটিকার প্রথম অপব্যবহার যা আমি দেখেছি। ভাল করেছ!
ড্যান





4

> <> (ফিশ), 30 বাইট

:2%?'/'o1-:?!;30.
30.  >'\'50p

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

ইনপুটটি প্রাথমিক স্ট্যাক, আউটপুট stdout

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


প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম!
ডেনিস

@ ডেনিস ধন্যবাদ! আমি স্বাগত প্রশংসা করি।
কলম

4

ডায়ালগ এপিএল , ১১ বাইট

প্রয়োজন ⎕IO←0অনেক সিস্টেমে পূর্বনির্ধারিত।

⊢⍴'\/'⊃⍨2|⊢

যুক্তি

পুনরায় আকার (পুনরাবৃত্তি)

'\/'⊃⍨ স্ট্রিং "/" দ্বারা নির্বাচিত

2|⊢ যুক্তি দুটি দ্বারা বিভক্ত হয়ে গেলে বিভাগটি অবশিষ্ট থাকে

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


শান্ত! জে।
কনর

@ কনরোও ব্রায়েন হ্যাঁ, পার্থক্য কেবল এই যে জেতে 2 টি ট্রেন হুক হয়, যখন তারা ডায়ালগের শীর্ষে থাকে, সুতরাং একটি স্পষ্ট বাম টাইন প্রয়োজন।
অ্যাডাম

আহ, আমি ভাবছিলাম কেন তর্ক আছে।
কনর ও'ব্রায়ান

1
সবশেষে একটি এপিএল উত্তর আমার কাছে সঠিকরূপে রেন্ডার হয়েছে!
সাইয়েস

@ কিয়েস হ্যাঁ, আমি আশা করি আমরা SE এ ফন্টগুলি নির্দিষ্ট (এবং এম্বেড) করতে পারতাম।
অ্যাডম

3

জাভা 7, 68 65 বাইট

void c(int i){for(int x=0;x++<i;)System.out.print(i%2<1?92:'/');}

3 বাইট ধন্যবাদ সংরক্ষিত @ user902383 এবং @SeanBean

এই উত্তরটির মতোই , সংক্ষিপ্ততম কোড-গল্ফটি লুপ এবং মুদ্রণ বলে মনে হচ্ছে। উভয় পুনরাবৃত্ত এবং
void c(int i){System.out.print(new String(new char[i]).replace("\0",i%2<1?"\\":"/"));}
দীর্ঘ বলে মনে হচ্ছে।

অবরুদ্ধ এবং পরীক্ষার কোড:

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

class M{
  static void c(int i){
    for(int x = 0; x++ < i;){
      System.out.print(i % 2 < 1
                        ? 92
                        : '/');
    }
  }

  public static void main(String[] a){
    for(int i = 0; i < 10; i++){
      c(i);
      System.out.println();
    }
  }
}

আউটপুট:

/
\\
///
\\\\
/////
\\\\\\
///////
\\\\\\\\
/////////

হাই কেভিন কেন একটি লাম্বদা এক্সপ্রেশন না?
ভেল

পছন্দ করুন কারণ আমি একজন পুরানো ফ্যাশন জাভা 7 প্রোগ্রামার। :) আপনার যদি জাভা 8 বা 9 টি উত্তর আমার উত্তর থেকে কিছুটা আলাদা হয় তবে তা নির্দ্বিধায় পোস্ট করুন।
কেভিন ক্রুইজসেন

2
@ ভ্যালে (সে এরকমই অদ্ভুত: পি)
শান ওয়াইল্ড

1
আমি মনে করি আপনি যদি পরিবর্তিত x=-1;++x<iহন x=0;x++<iতবে এক বাইট হ্রাস করতে পারবেন
user902383

1
এছাড়াও আপনি এর "\\" : "/"সাথে প্রতিস্থাপন করতে পারেন 92:'/';)
শন ওয়াইল্ড

3

আর, 47 46 বাইট

n=scan();cat(rep(c("\\","/")[n%%2+1],n),sep="")

আর-তে আপনাকে ব্যাকস্ল্যাশ থেকে বাঁচতে হবে। যুক্তিটি sepপুরোপুরি নির্দিষ্ট করতে হবে কারণ এটি পরে আসে ...। এইভাবে চরগুলি সংরক্ষণ করার জন্য বিরক্তিকরভাবে কয়েকটি সুযোগ :(

বাইট গল্ফ করার জন্য বাউন্সিবলকে ধন্যবাদ।


1
ইনডেক্সিং ব্যবহার করে একটি বাইট সংরক্ষণ করুন:n=scan();cat(rep(c('\\','/')[n%%2+1],n),sep='')
বুন্সিবল

3

টি এসকিউএল 50 বাইট

অবশ্যই STDINএখানে নেই, সুতরাং এর INTমতো একটি হার্ডকোডযুক্ত পরিবর্তনশীল ধরে নেওয়া যাক : DECLARE @ INTতবে সমাধানটি হ'ল:

PRINT IIF(@%2=0,REPLICATE('\',@),REPLICATE('/',@))

3

পিপ , 8 বাইট

"\/"@aXa

সহজবোধ্য। চরিত্রটি নির্বাচন করতে মডুলার ইনডেক্সিং এবং এটির গুণিত করতে স্ট্রিং পুনরাবৃত্তি ব্যবহার করে। এটি অনলাইন চেষ্টা করুন!


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

  1. নির্দিষ্ট পরিস্থিতিতে, পাইথ এবং জেলির একটি স্ট্রিং সংজ্ঞায়িত করতে কেবল একটি ডিলিমিটার প্রয়োজন;
  2. পাইথ এবং জেলি এর সিনট্যাক্স রয়েছে যাতে কোডটিতে ইনপুটটি স্পষ্টভাবে উপস্থাপন করার প্রয়োজন হয় না (যদিও একেবারে বিভিন্ন কারণে, যেমন কোডটিতে ইনপুটটি মালটিসেন আমাকে ব্যাখ্যা করেছেন )।

এই বৈশিষ্ট্যগুলির একটিরও পাইপতে প্রদর্শিত হতে পারে 1 এ প্রদর্শিত হবে না (আমি ভারসাম্যহীন সীমান্তকারকদের নান্দনিকতা পছন্দ করি না, এবং বিন্দুবিহীন সিনট্যাক্স বা অন্তর্নিহিত অপারেশনগুলি দেখে মনে হয় যে তারা আমার ইনফিক্স এক্সপ্রেশন পার্সারের তুলনায় খুব এলিয়েন হবে) তবে আমি ' আমি ঠিক তৃতীয় ভাজা খেলি। গল্ফ করার সময় "পঠনযোগ্যতা" অত্যন্ত আপেক্ষিক হলেও, আমি যুক্তি দিয়েছিলাম যে এই তিনটি অতিরিক্ত বাইট পিপ প্রোগ্রামকে এক নজরে বুঝতে অনেক সহজ করে তুলেছে - এবং আমার বইয়ে এটি সার্থক ট্রেড অফ।

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


আমি নিশ্চিত নই যে পঠনযোগ্যতা একটি প্লাস, কোড গল্ফে? বাইটের দামে নয় !
গ্রিনএজজেড

@ গ্রীনআসজেড আমি আশা করি অনেক লোক একই রকম অনুভব করে। আমি কেবল একটি পার্থক্য করতে চাই:! code golf= golflang design। এখন আপনি ভালভাবে তর্ক করতে পারেন যে একই নীতিটি (সর্বদা সংক্ষিপ্ততর ভাল) ভাষা ডিজাইনের ক্ষেত্রেও প্রযোজ্য। আমি শুধু বলছি যে আমার জন্যে, ব্যবহারযোগ্যতা এবং এমনকি নন্দনতত্ব হয় বিবেচ্য বিষয়।
ডিএলস

গল্ফিংয়ের ভাষা তৈরির জন্য টিপ: ইনফিক্স ব্যবহার করবেন না
সাইয়েস


পাইথের অন্তর্নিহিত বিন্দু মুক্ত বাক্য গঠন নেই। এটি অজগরতে যেভাবে কাজ করে ঠিক তেমনভাবে এটি কাজ করে, এটি এটিকে পাঠ্যরূপে ছোট করে তোলে। অন্যদিকে ভারসাম্যহীন
সীমানার

2

পাইথ , 5 বাইট

*@"\/

পরীক্ষা স্যুট.

স্ট্রিংয়ের মধ্যে মডিউলার-ইনডেক্সিং \/এবং তারপরে পুনরাবৃত্তি করুন।


14
আপনি কী নিজের চ্যালেঞ্জ এফজিআইটি করছেন?
xnor

1
@ এক্সনর এটা ঠিক আমার চ্যালেঞ্জ নয়।
লিকি নুন



2

স্পেসবিএএস - 28 বাইট

1 INPUT n: ?"\/"(ODD(n)+1)*n

ODDসংখ্যাটি বিজোড় হলে 1 প্রদান করে, তারপরে এটি সূচক হিসাবে সঠিক অক্ষরের এন সংখ্যাটি মুদ্রণের জন্য ব্যবহার করে। 1 অক্ষর 1 থেকে স্পেসবিএএস স্ট্রিং শুরু হওয়ার সাথে সাথে 1 যুক্ত করতে হবে।


2

জাভা 8, 56 বাইট

(i,j)->{for(j=i;j-->0;)System.out.print(i%2<1?92:'/');};

আমি আমার উত্তর আরও গল্ফ করার জন্য অগ্রণী @ কেভিন ক্রুইজসেনকে ধন্যবাদ জানাতে চাই।

অবহেলিত পরীক্ষা প্রোগ্রাম

public static void main(String[] args) {
    BiConsumer<Integer, Integer> consumer = (i, j) -> {
        for (j = i; j-- > 0;) {
            System.out.print(i % 2 < 1 ? 92 : '/');
        }
    };

    consumer.accept(5, 0);
    consumer.accept(1, 0);
    consumer.accept(8, 0);
}

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