মাথা, কাঁধ, হাঁটু এবং পায়ের আঙ্গুল, হাঁটু এবং অঙ্গুলি


31

পরিচিতি:

আমি মনে করি আমরা সবাই এটি জানি, এবং এটি সম্ভবত বিভিন্ন ভাষায় প্রচুর অনুবাদ হয়েছে: "মাথা, কাঁধ, হাঁটু এবং পায়ের আঙ্গুল" বাচ্চাদের গান:

মাথা, কাঁধ, হাঁটু এবং পায়ের আঙ্গুল, হাঁটু এবং পায়ের আঙ্গুল
মাথা, কাঁধ, হাঁটু এবং পায়ের আঙ্গুল, হাঁটু এবং পায়ের আঙ্গুল
এবং চোখ, কান এবং মুখ এবং নাক
মাথা, কাঁধ, হাঁটু এবং পায়ের আঙ্গুল, হাঁটু এবং পায়ের আঙ্গুলগুলি
উইকিপিডিয়া


চ্যালেঞ্জ:

ইনপুট: একটি ধনাত্মক পূর্ণসংখ্যা।

আউটপুট: এন-থেক্স সূচক হিসাবে ইনপুটটির উপর ভিত্তি করে নিম্নলিখিত শব্দের একটি আউটপুট:

head
shoulders
knees
toes
eyes
ears
mouth
nose

এখানে শরীরের অঙ্গগুলি সূচকগুলির সাথে সংযুক্ত করা হয়:

Head (0), shoulders (1), knees (2) and toes (3), knees (4) and toes  (5)
Head (6), shoulders (7), knees (8) and toes (9), knees (10) and toes (11) 
And eyes (12) and ears (13) and mouth (14) and nose (15)
Head (16), shoulders (17), knees (18) and toes (19), knees (20) and toes (21)

Head (22), shoulders (23), knees (24) and toes (25), knees (26) and toes  (27)
Head (28), shoulders (29), knees (30) and toes (31), knees (32) and toes (33) 
And eyes (34) and ears (35) and mouth (36) and nose (37)
Head (38), shoulders (39), knees (40) and toes (41), knees (42) and toes (43)

etc.

চ্যালেঞ্জ বিধি:

  • আপনাকে অবশ্যই 0-ইনডেক্সের পরিবর্তে 1-ইনডেক্সড ইনপুট ব্যবহারের অনুমতি দেওয়া হয়েছে। তবে দয়া করে নির্দিষ্ট করে দিন আপনি কোনটি নিজের উত্তরে ব্যবহার করেছেন।
  • আউটপুট কেস সংবেদনশীল, তাই আপনি যদি এটির ক্যাপগুলিতে আউটপুট করতে চান তবে তা ঠিক।
  • আপনার কমপক্ষে 1,000 পর্যন্ত ইনপুট সমর্থন করা উচিত।

সাধারাইওন রুল:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার পক্ষে যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতিগুলি, সম্পূর্ণ প্রোগ্রামগুলির সাথে STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজনে একটি ব্যাখ্যা যোগ করুন।

পরীক্ষার কেস (0-সূচিযুক্ত):

Input:  Output:
0       head
1       shoulders
7       shoulders
13      ears
20      knees
35      ears
37      nose
98      knees
543     nose
1000    knees

3
কোলমোগোরভ জটিলতা ট্যাগ যুক্ত করা হয়েছে কারণ বেশিরভাগ উত্তর সম্ভবত একটি ধ্রুবক অ্যারে হিসাবে চক্রীয় সূচক হিসাবে ইনপুটটি ব্যবহার করবে, যার প্রজন্ম বাইট গণনাতে আধিপত্য করবে।
মার্টিন ইন্ডার

ধন্যবাদ আমি, ভুলভাবে, কেবলমাত্র kolmogorov-complexityউত্তরগুলির জন্য ব্যবহৃত যা সর্বদা একই স্থির আউটপুট থাকে তবে এখন আমি এটি কোডে স্থির আউটপুট-স্ট্রিং সম্পর্কে এবং এটি গল্ফের জন্য নিদর্শনগুলি খুঁজে পেতে (বা @ এনিগমার 05 এবি 1 ই উত্তরের মতো এটি এনকোড করব )। এটি যুক্ত করার জন্য ধন্যবাদ; এই চ্যালেঞ্জটির জন্য কোন ট্যাগগুলি প্রাসঙ্গিক ছিল তা আমি খুব বেশি নিশ্চিত ছিলাম না, যা স্যান্ডবক্সে আমার (দুর্ভাগ্যক্রমে উত্তর না দেওয়া) প্রশ্নগুলির মধ্যে একটি।
কেভিন ক্রুইজসেন


1
@ কেভিন ক্রুজসেন কমপক্ষে আপনার প্রশ্নটি কিছু +1 করেছে: (আশাবাদী মন্তব্য) আপনি স্যান্ডবক্স ব্যবহার করে অনুসন্ধান করতে পারেন inquestion:2140 shoulders
এরিক আউটগল্ফার

3
এই গানটি আর কারও মাথায় আটকে
রেখেছিল

উত্তর:


12

05AB1E , 36 35 34 বাইট

“‡ä¾ØsÏ©s¸±s“#2䤫Г—íÖÇ©¢ÄÓ#s)˜è

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

ব্যাখ্যা

“‡ä¾ØsÏ©s¸±s“                        # dictionary string 'head shoulders knees toes'
             #                       # split on spaces
              2ä                     # split in 2 parts
                ¤                    # get the last part ['knees', 'toes']
                 «                   # concatenate and flatten
                                     # STACK: [['head', 'shoulders'], ['knees', 'toes'], 'knees', 'toes']
                  Ð                  # triplicate
                   “—íÖÇ©¢ÄÓ        # dictionary string 'eyes ears mouth nose'
                             #s      # split on spaces and swap top 2 elements of stack
                               )˜    # wrap stack in a list and flatten
                                 è   # index into list with input

সংক্ষেপে, আমরা ['head', 'shoulders', 'knees', 'toes', 'knees', 'toes', 'head', 'shoulders', 'knees', 'toes', 'knees', 'toes', 'eyes', 'ears', 'mouth', 'nose', 'head', 'shoulders', 'knees', 'toes', 'knees', 'toes']ইনপুট (0-ইনডেক্সড) এর সাথে তালিকাটি এবং সূচিটি তৈরি করি।


4
@ কেভিন ক্রুজসেন: একটি ব্যাখ্যা আসছে আসছে :) গল্ফিংয়ের ভাষাগুলি ইমোর জন্য এটি বেশ বাধ্যতামূলক।
এমিগানা

‡ä¾ØsÏ©s¸±sঅদ্ভুত বলে মনে হচ্ছে, প্রতিটি শব্দটি 2 টি অক্ষর হিসাবে বিবেচনা করে। এটা কি অন্য কিছু?
এরিক দ্য আউটগল্ফার

2
@ এরিক্থে গল্ফার: হ্যাঁ, 3 sজন এখানে বহুবচন করতে পারেন shoulder, knee, toeযা অভিধানে একক রয়েছে। eyes, earsতারা ইতিমধ্যে অভিধানে বহুবচন হয়ে যাওয়ার সাথে আমাদের প্রয়োজন নেই যাতে স্ট্রিংটির প্রত্যাশিত দৈর্ঘ্যও থাকে has
এমিগানা

ওহ, তারা আমাকে বিভ্রান্ত করেছে। ধন্যবাদ।
এরিক দ্য আউটগল্ফার

31

জাভাস্ক্রিপ্ট (ES6), 91 88 87 বাইট

n=>'knees,toes,head,shoulders,eyes,ears,mouth,nose'.split`,`[(245890>>(n%22&~1))&6|n%2]

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

আমাদের কাছে 4 টি স্বতন্ত্র জোড়া রয়েছে যা সর্বদা একসাথে উপস্থিত হয়: 'মাথা' সর্বদা 'কাঁধ' দ্বারা অনুসরণ করা হয়, 'হাঁটু' সর্বদা 'পায়ের আঙুল' ইত্যাদির পরে থাকে etc.

অতএব, আমরা নিম্নলিখিত সূচকটি ব্যবহার করতে পারি:

00: [ 'knees', 'toes' ]
01: [ 'head', 'shoulders' ]
10: [ 'eyes', 'ears' ]
11: [ 'mouth', 'nose' ]

এবং সম্পূর্ণ সিকোয়েন্সটি (বিপরীত ক্রমে) নিম্নলিখিত বাইনারি মাস্কটিতে সংকুচিত করুন:

00 00 01 11 10 00 00 01 00 00 01

[ 'knees', 'toes' ]যতটা সম্ভব নেতৃস্থানীয় জিরো পেতে আমরা প্রথম জুটি হিসাবে ব্যবহার করি ।

আমরা এই ক্রমটি একটি অতিরিক্ত দিয়ে প্যাড করি 0যাতে নিষ্কাশিত মানটি 2 দিয়ে প্রিমিটিপ্লাইটেড হয়, যা বাড়ে:

0b00000111100000010000010 = 245890

সুতরাং সঠিক শব্দটির চূড়ান্ত সূত্র:

(245890 >> (n % 22 & ~1)) & 6 | n % 2

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


10

পাইথন 2, 158 148 137 128 114 109 104 বাইট

লুক টেবিলটি আরও ভাল মনে হচ্ছে। বড় স্ট্রিংও সংক্ষিপ্ত করে আইটেমগুলিকে পুনরায় সাজিয়েছে। -5 বাইট রডকে একটি তালিকা হিসাবে স্ট্রিং ব্যবহার করার জন্য ধন্যবাদ।

c=int('602323'*2+'4517602323'[input()%22])
print"smkteehnhonoyaeooueeerasutesssdelhs"[c::8]+"ders"*(c<1)

প্রাথমিক সমাধান:

n=input()%22
n-=10*(n>15)
if n>=12:n-=8
else:n%=6;n-=2*(n>3)
print"hskteemnehnoyaooaoeeerusduessste ls   h  d       e       r       s"[n::8].strip()

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

আমি মনে করি আপনি এই কাঁধটি তৈরি করে এই কাঁধটি তৈরি করতে পারেন: hskteemnehnoyaooaoeeerusduessste ls h dএবং যদি আপনি জানেন তবে শব্দটি 'কাঁধে' বলে মনে হচ্ছে :)
কেড

1
আপনি কেবল সিটি ব্যবহার c=int('602323'*2+'4517602323'[input()%22])এবং ড্রপ করতে পারেন h:
রড

1
[i%22]প্রথমটিতে, [input()%22]দ্বিতীয়টিতে
রড

1
@ রড আহ দুঃখিত, আপনি যদি আপনার কোডটি দীর্ঘক্ষণ দেখেন তবে আপনি অন্ধ হয়ে যাবেন।
কার্ল ন্যাপফ

6

পার্ল, 74 বাইট

73 বাইট কোড +1 এর জন্য -p

$_=(@a=(head,shoulders,(knees,toes)x2),@a,eyes,ears,mouth,nose,@a)[$_%22]

0-ভিত্তিক সূচক ব্যবহার করে। কোনও বিভাজক আউটপুট দেয় না, তবে -lএটি পতাকাগুলির মাধ্যমে সংশোধন করা যেতে পারে ।

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


আপনি এর x2)x2পরিবর্তে 1 বাইট সংরক্ষণ করতে পারবেনx2),@a
অ্যাডাম

4

পাইথন 2, 97 90 বাইট

এমন কিছু গণিত থাকতে পারে যা এটি তৈরি করে তাই আমাকে শব্দের তালিকা তৈরি করতে হবে না, তবে এটি আপাতত কার্যকর!

lambda n,k='head shoulders '+'knees toes '*2:(k*2+'eyes ears mouth nose '+k).split()[n%22]

7 বাইট সংরক্ষণের জন্য Flp.Tkc ধন্যবাদ :)


1
আমি একটি অনুরূপ সমাধান পেয়েছি, তবে split()এটি আরও খাটো করে তৈরি করতাম:k='head shoulders '+'knees toes '*2 print(k*2+'eyes ears mouth nose'+k).split()[input()%22]
ফ্লিপট্যাক

দুঃখিত, সেখানে 'নাক' পরে একটি জায়গা থাকা উচিত :)
ফ্লিপট্যাক

@ Flp.Tkc হ্যাঁ আমি বুঝতে পেরেছি :) এক সেকেন্ডে আপডেট হচ্ছে!
কেডে

4

জাভা 7, 155 137 131 123 111 110 বাইট

String c(int i){return"knees,toes,head,shoulders,eyes,ears,mouth,nose".split(",")[(245890>>(i%22&~1))&6|i%2];}

-12 বাইট @ নীল ধন্যবাদ ।
-1 বাইট নির্লজ্জভাবে @Arnauld এর আশ্চর্যজনক উত্তরের একটি বন্দর তৈরি করে ।

জাভা 0-ইনডেক্সড, সুতরাং এটি আমি ব্যবহার করেছি।

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

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

class M{
  static String c(int i){
    return "knees,toes,head,shoulders,eyes,ears,mouth,nose".split(",")
      [(245890>>(i%22&~1))&6|i%2];
  }

  public static void main(String[] a){
    System.out.println(c(0));
    System.out.println(c(1));
    System.out.println(c(7));
    System.out.println(c(13));
    System.out.println(c(20));
    System.out.println(c(35));
    System.out.println(c(37));
    System.out.println(c(98));
    System.out.println(c(543));
    System.out.println(c(1000));
  }
}

আউটপুট:

head
shoulders
shoulders
ears
knees
nose
ears
knees
nose
knees

1
String c(int i){return "head,shoulders,knees,toes,knees,toes,eyes,ears,mouth,nose".split(",")[(i+16)%22%16%10];}মাত্র 112 বাইট।
নিল

আপনি মন্তব্যটি থেকে অনুলিপি করার চেষ্টা করলে আপনি স্ট্যাক এক্সচেঞ্জের সৌজন্যে কিছু অতিরিক্ত অদৃশ্য বাইট পাবেন।
নিল

@ নীল ওকে, আমি একজন নির্বোধ .. গতকাল সন্ধ্যায় দেরি করে কীভাবে আমি রাউলি ১২০ গণনা করেছি সে সম্পর্কে কোনও ধারণা নেই .. সম্ভবত খুব দেরি হয়ে গেছে ..>।> যাইহোক, আমি এটি সম্পাদনা করেছি (প্লাস 1 টি অতিরিক্ত বাইটটি মুছে ফেলে স্পেস), তাই ধন্যবাদ!
কেভিন ক্রুইজসেন

3

সি, 153 বাইট 141 বাইট

*b[]={"head","shoulders","knees","toes","eyes","ears","mouth","nose"};i;char*g(a){a%=22;i=(a+4)%10;return b[a<4?a:(a&12)>8?a-8:i<2?i:a%2+2];}

4 বাইটের জন্য @ ক্লেব্ল্যাঙ্ককে ধন্যবাদ। বি বিশ্বব্যাপী ঘোষণার মাধ্যমে আন্তঃ কাস্টিং সম্পর্কে এক টন সতর্কতা নিক্ষেপ করা হয়েছে, তবে আমার পক্ষে তা ভঙ্গ হয়নি।

Ungolfed:

*b[]={"head","shoulders","knees","toes","eyes","ears","mouth","nose"};
i;
char* g(a) {
    a%=22;
    i=(a+4)%10;
    return b[a < 4        ? a
            :(a & 12) > 8 ? a-8
            :i < 2        ? i
            :               a % 2 + 2];
}

এটি সবচেয়ে ছোট উত্তর নয়, তবে আমি কৌশলটি পছন্দ করেছি এবং কয়েকটি নিদর্শন সন্ধানে মজা পেয়েছি।

পরিবর্তণের:

  • bএড়াতে বিশ্বব্যাপী সরানো হয়েছে char(4 বাইট)
  • a > 11 && a < 16=> (a & 12) > 8(2 বাইট)
  • i=(a-6)%10 => i=(a+4)%10 যাতে i < 2 && i >= 0= = i < 2(6 বাইট)

1
আপনি এটিকে আরও কিছুটা গল্ফ করতে পারেন। খ [] কে একটি বৈশ্বিক পরিসরে নিয়ে যাওয়ার মাধ্যমে এটিকে চর * ব্যবহার না করেই ঘোষণা করা যেতে পারে *b[]={"head","shoulders","knees","toes","eyes","ears","mouth","nose"},i'এবং তারপরে রিটার্নের খ [...] একটি পুটস (বি [...]) দিয়ে প্রতিস্থাপন করুন আপনি এটিকে 143 বাইটে নামিয়ে নিতে পারেন
ক্লাব্ল্যাঙ্ক

+1 এবং ছাড়াও @cleblanc এর প্রস্তাবনা, এছাড়াও আপনি উভয় পরিবর্তন করতে পারেন &&থেকে &
কেভিন ক্রুইজসেন

আমি কৌতূহলী যে কীভাবে বিশ্বব্যাপী বি ঘোষণার বিষয়ে @ ক্লাব্ল্যাঙ্কের পরামর্শ। সংকলকটি আমাকে বলেছিল এটি একটি * int [] হবে এবং আমি ভেবেছিলাম যে আকারের পার্থক্যটি কোডটি ভেঙে দেবে। যদিও এটি হয়নি, তাই ধন্যবাদ!
nmjcman101

2

জাভাস্ক্রিপ্ট (ES6) 91 89 বাইট

f=
n=>((d='head:shoulders:'+(b='knees:toes:')+b)+d+'eyes:ears:mouth:nose:'+d).split`:`[n%22]

console.log(f.toString().length)
console.log(f(0) === 'head')
console.log(f(1) === 'shoulders')
console.log(f(7) === 'shoulders')
console.log(f(13) === 'ears')
console.log(f(20) === 'knees')
console.log(f(35) === 'ears')
console.log(f(37) === 'nose')
console.log(f(98) === 'knees')
console.log(f(543) === 'nose')
console.log(f(1000) === 'knees')


1
নিস! +1 টি। আমি যখন জাভা to-তে আপনার উত্তরটি পোর্ট করি তখন @ আরনাউল্ডের ইতিমধ্যে আমার চেয়ে কম উত্তরের তুলনায় এটি একটি শক্ত -7 বাইট। ;) ধন্যবাদ!
কেভিন ক্রুইজসেন

1
আমি আমার ব্যবহার দিয়ে সৃজনশীল হচ্ছে একটি বাইট সংরক্ষিত %: n=>`head:shoulders:knees:toes:knees:toes:eyes:ears:mouth:nose`.split`:`[(n+16)%22%16%10]
নিল

2

আর, 95 বাইট

c(o<-c("head","shoulders",y<-c("knees","toes"),y),o,"eyes","ears","mouth","nose",o)[scan()%%22]

দেখার টেবিল হিসাবে কাজ করতে একটি চরিত্রের ভেক্টর তৈরি করে। স্টিডিন ( 1-indexed) থেকে এবং %%22সম্পর্কিত বডি অংশটি অনুসন্ধান করতে ইনপুট নেয় ।

বোনাস: %%ভেক্টরাইজড যার অর্থ এটি ভেক্টর ইনপুটগুলির সাথেও কাজ করবে।

আর-ফিডল-এ পরীক্ষার কেস (নোট করুন এটি একটি নামযুক্ত ফাংশন কারণ scanআর-ফিডলটিতে কাজ করে না)


2

jq, 80 টি অক্ষর

(77 টি অক্ষরের কোড + 3 অক্ষর কমান্ড লাইন বিকল্প)

((("head shoulders "+"knees toes "*2)*2+"eyes ears mouth nose ")*2/" ")[.%22]

নমুনা রান:

bash-4.3$ jq -r '((("head shoulders "+"knees toes "*2)*2+"eyes ears mouth nose ")*2/" ")[.%22]' <<< 1000
knees

অন-লাইন পরীক্ষা ( -rইউআরএল মাধ্যমে পাস করা সমর্থিত নয় - কাঁচা আউটপুট নিজেই দেখুন))


2

উইনডিবিজি, 207 157 151 বাইট

ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41

-50 বাইট আসকি চর হিসাবে দেহের অংশগুলির অফসেট / দৈর্ঘ্য এনকোড করে।

অফসেট / দৈর্ঘ্য সন্ধান করার সময় স্থানীয় ভ্যার ব্যবহার করে -6 বাইট।

সিউডো-রেজিস্টারে একটি মান সেট দিয়ে ইনপুট করা হয় $t0

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

* Initialization, writes this string at address 0x2000000. The nonsense after the body parts
* are the offsets and lengths of the body parts in the first part of the string, each of
* which is incremented by 0x41 to make it a printable ascii character.
ea 2000000 
        "headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";


* Display the output:
r$t4=(@$t0%16)*2+2000027
da1FFFFBF+by(@$t4) Lby(@$t4+1)-41

* Display output explanation:
r $t4 = (@$t0%16)*2+2000027   * Set $t4 = input, @$t0, mod 22, doubled +0x2000027
by(@$t4)                      * byte_at(@$t4)-0x41 is the {Offset} into the string 
                              * for the start of output. The -0x41 is already subtracted
                              * from 0x2000000 to make 0x1FFFFBF.
Lby(@$t4+1)-41                * byte_at(@$t4+1)-0x41 is the {Length} of the output.
da 1FFFFBF+{Offset} L{Length} * Display {Length} chars from {Offset} of the above string.

নমুনা আউটপুট:

0:000> r$t0=0
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
02000000  "head"


0:000> r$t0=1
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
02000004  "shoulders"


0:000> r$t0=7
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
02000004  "shoulders"


0:000> r$t0=0n13
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
0200001a  "ears"


0:000> r$t0=0n20
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
0200000d  "knees"


0:000> r$t0=0n35
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
0200001a  "ears"


0:000> r$t0=0n37
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
02000023  "nose"


0:000> r$t0=0n98
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
0200000d  "knees"


0:000> r$t0=0n543
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
02000023  "nose"


0:000> r$t0=0n1000
0:000> ea2000000"headshoulderskneestoeseyesearsmouthnoseAEEJNFSENFSEAEEJNFSENFSEWE[E_FdEAEEJNFSENF";r$t4=(@$t0%16)*2+2000027;da1FFFFBF+by(@$t4) Lby(@$t4+1)-41
0200000d  "knees"

2

পিএইচপি, 91 102 118 128 129 বাইট

<?=[head,shoulders,knees,toes,eyes,ears,mouth,nose]['0123230123234567012323'[$argv[1]%22]];

0-সূচিবদ্ধ

আরআর_স্প্লিট অপসারণের পরে নীচে 91 -এর মধ্যে, পিএইচপি স্ট্রিং একটি চর অ্যারে (একটি পিএইচপি 5+ জিনিস?) হিসাবে অ্যাক্সেসযোগ্য ছিল বুঝতে পারে না?

স্ট্রিং কোটগুলি সরিয়ে দেওয়ার এবং নোটিশগুলিকে অনুমতি দেওয়ার জন্য অন্তর্ভুক্তকারীর নাম প্রস্তাব দেওয়ার জন্য 102 টি পর্যন্ত ধন্যবাদ


-16 বাইটস:' চারপাশের শব্দগুলি সরিয়ে ফেলুন , যেমন ইত্যাদি 'head'হয়ে যায়head
সন্নিবেশকের নামটি এখানে

এটি দিয়ে নিয়মগুলি কী তা নিশ্চিত তা নয়, তবে একটি ডিফল্ট পিএইচপি ইনস্টল করে, এটি করার সময় আমি প্রত্যাশিত
অপরিজ্ঞাত

1
হ্যাঁ, তবে এটি সাইটের নিয়মের সাথে একদম ঠিক আছে। বিজ্ঞপ্তি এবং সতর্কতা উপেক্ষা করা যেতে পারে।
সন্নিবেশকারী নাম এখানে

@ CT14.IT, এটি একটি সতর্কতা নয়, এটি একটি নোটিশ। "পিএইচপি 5.3 বা তার পরে, ডিফল্ট মান হল E_ALL &। E_NOTICE এবং _ E_STRICT এবং ~ E_DEPRECATED। এই সেটিংটি E_NOTICE, E_STRICT এবং E_DEPRECATED স্তর ত্রুটিগুলি দেখায় না ”" - পিএইচপি ডকুমেন্টেশন সম্পর্কেerror_reporting
manatwork

1
দেখে মনে হচ্ছে যে str_split () অকেজো
ক্রিপ্টো

1

জেলি , 55 বাইট

“¥ḷne“¥ṇṭḲ»ẋ2ṭ“¢1$“@⁼5⁼»µẋ2;“¥ḳVo“¥ḳ'k“£Qo“£³ạ»;⁸FḊḲ
ị¢

এটি অনলাইন চেষ্টা করুন!(1 ভিত্তিক সূচক)

চলে আসো! সত্যি?

বোনাস হিসাবে, এটি সঙ্কুচিত স্ট্রিংটি আমার উপরের লাইনের পরিবর্তে ব্যবহার করার কথা ছিল:

“¡¦ṡb[wfe=⁺żɦ4Gƈġhḳ"ẇ⁴ż>oH¹8ṡʠʠḟṀUṿḶ>¬Þ:ĖẇrṗṁɼlDṫỤ¬ȷ⁶Dḥci*⁻³GḲOÞạṖṃ\»

উভয়ই এই স্ট্রিংটিকে এনকোড করে:

head shoulders knees toes knees toes head shoulders knees toes knees toes eyes ears mouth nose head shoulders knees toes knees toes

অনুমান এখন আমার অনুশীলন করা উচিত: পি


1

পাওয়ারশেল, 91 বাইটস, জিরো-ইনডেক্স

$a='head shoulders '+'knees toes '*2;($a*2+'eyes ears mouth nose '+$a).Split()[$args[0]%22]

খুব সরল পদ্ধতিতে, স্পেস দিয়ে সংকলন করে এবং শেষে বিভাজন করে প্রথম 22 টি আইটেমের অ্যারে তৈরি করুন যেখানে সম্ভব সেখানে কিছু স্ট্রিং গুণকে ব্যবহার করুন। (বিভাজকটি অ্যারের হিসাবে সমতুল্য সেটআপের চেয়ে 2 বাইট কম) তবে কেবল ইনপুটটির মডুলাসটি ব্যবহার করে সেই অ্যারেটিতে বিন্দুটি সন্ধান করুন, ঠিক আকর্ষণীয় বা ভাষা-নির্দিষ্ট নয়।

পরীক্ষা ক্ষেত্রে:

PS C:\++\golf> 0..1000|%{.\hskt $_}
head
shoulders
knees
toes
knees
toes
head
shoulders
knees
toes
knees
toes
eyes
ears
mouth
nose
head
shoulders
knees
toes
knees
toes
head
shoulders
knees
toes
....

প্রভৃতি


1

রুবি, 81 বাইট

শূন্য সূচক ব্যবহার করে লাম্বদা ফাংশন।

->n{("head shoulders#{" knees toes "*2}eyes ears mouth nose".split*2)[n%22-6&15]}

ব্যাখ্যা

আমরা নিম্নলিখিত অ্যারে তৈরি করি, যার মধ্যে আমরা প্রথম 16 উপাদান ব্যবহার করে গানের সঠিক লাইন 2,3,4 টি coveringেকে রাখি:

%w{head shoulders knees toes knees toes
   eyes ears mouth nose
   head shoulders knees toes knees toes

   eyes ears mouth nose}                  #last 4 elements not used

এটিকে একক শ্লোকের জন্য হ্রাস করার জন্য আমরা এন 22 মডিউল নিয়েছি, তারপরে আমরা 6টি বিয়োগ করি Now সূত্রগুলি 0..5 যা গানের প্রথম লাইনে নির্দেশ করে এখন negativeণাত্মক। গানের প্রথম লাইনটি 4 র্থ লাইনে ম্যাপ করতে আমরা ব্যবহার করি &15(বন্ধুর %16প্রয়োজন অনুসারে অভিন্ন ) এভাবে সূচি 0-> -6->10

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

f=->n{("head shoulders#{" knees toes "*2}eyes ears mouth nose".split*2)[n%22-6&15]}

#call as below to test index 0..43
44.times{|i|p f[i]}

আকর্ষণীয় সূচকের সূত্র। তবে একই দৈর্ঘ্য এটি ছাড়াই অর্জন করা যেতে পারে:->n{(((%w{head shoulders}+%w{knees toes}*2)*2+%w{eyes ears mouth nose})*2)[n%22]}
manatwork

1

Befunge, 129 119 বাইট

0-ইন্ডেক্স

&29+2*%:2/v>00p>%#7_v
+%2\-"/"g2<|<:-1g007<"head*shoulders*knees*toes*eyes*ears*mouth*nose"p00
02202246022>$$:>7#:%#,_@

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

ব্যাখ্যা

যেমন আর্নল্ড উল্লেখ করেছেন, শব্দগুলি জোড়ায় আসে, সুতরাং আমাদের কাছে কেবল ১১ টি মানের একটি সূচক রয়েছে এবং তার পরে জোড়ায় উপযুক্ত শব্দটি পেতে% 2 শব্দটি যুক্ত করুন। স্পেস বাঁচানোর জন্য অ্যাসিস্ট্রিকগুলি দ্বারা পৃথক করা একটি একক স্ট্রিং হিসাবে শব্দগুলি স্ট্যাকের উপরে ঠেলাঠেলি করা হয়। কেবল অক্ষরটি 7 এর একাধিক হওয়ায় আমরা অক্ষরের বিরতি পরীক্ষা করি char

&29+2*%               n = getint() % 22             // % 22 to ensure it's in range
:2/2g                 i = index_array[n/2]          // we use n/2 because words are paired
-"/"                  i -= '/'                      // convert from ASCII to 1-based value
\2%+                  i += n%2                      // get the correct word in the pair
00p                   index = i                     // save for later

"head*shoulders*knees*toes*eyes*ears*mouth*nose"    // push all the words onto the stack

700g1-:|              while (index-1 != 0) {        // the 7 is used in the drop loop   
  00p                   index = index-1             
  >%#7_                 do while (pop() % 7)        // drop up to the next '*' (%7==0)
                      }                    

$$                    pop();pop()                   // get rid of index and extra 7

: 7 % _               while ((c = pop()) % 7)       // output up to the next '*' (%7==0)
 > : ,                  putchar(c)

1

এসকিউএল 2005 747 বাইট

Golfed:

GO
CREATE PROCEDURE H @n INT AS BEGIN IF NOT EXISTS(SELECT*FROM R)BEGIN INSERT INTO R VALUES('head')INSERT INTO R VALUES('shoulders')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('head')INSERT INTO R VALUES('shoulders')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('eyes')INSERT INTO R VALUES('ears')INSERT INTO R VALUES('mouth')INSERT INTO R VALUES('nose')INSERT INTO R VALUES('head')INSERT INTO R VALUES('shoulders')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')END SELECT W FROM R WHERE I=@n%22 END

Ungolfed:

GO
CREATE PROCEDURE H
@n INT 
AS 
BEGIN IF NOT EXISTS(SELECT*FROM R)
BEGIN 
INSERT INTO R VALUES('head')INSERT INTO R VALUES('shoulders')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('head')INSERT INTO R VALUES('shoulders')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('eyes')INSERT INTO R VALUES('ears')INSERT INTO R VALUES('mouth')INSERT INTO R VALUES('nose')INSERT INTO R VALUES('head')INSERT INTO R VALUES('shoulders')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')INSERT INTO R VALUES('knees')INSERT INTO R VALUES('toes')
END 
SELECT W FROM R WHERE I=@n%22 END

এটির মতো সারণীর প্রয়োজন, যেখানে প্রথম কলামটি স্বয়ং-বর্ধিত:

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

এটি একটি সূচকযুক্ত উত্তর। টেবিল প্রথমবার সঞ্চিত পদ্ধতি তৈরি করা হয় জনবহুল হয় - এটা আমার সব করতে দিল না INSERTএক বিবৃতিতে হতাশাজনক, এই বৈশিষ্ট্যটি শুধুমাত্র উপলব্ধ >=SQL 2008। এর পরে, এটি %22অন্যান্য উত্তরগুলি থেকে কৌশলটি ব্যবহার করে । একবার টেবিলটি জনবহুল হয়ে গেলে, এটি কেবল সর্বশেষ অংশটি ব্যবহার করে:

SELECT W FROM R WHERE I=@n%22

Input:  Output:
R 1       head
R 2       shoulders
R 8       shoulders
R 14      ears
R 21      knees
R 36      ears
R 38      nose
R 99      knees
R 54      nose
R 1001    knees

" এটি আমাকে একটি বিবৃতিতে সমস্ত INSERT করতে দেয় না " কেন? 2008 এর পরে এসকিউএলে এর মতো কিছু করা উচিত নয় ?
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন আমি এসকিউএল সার্ভার ২০০৮ আর 2 ব্যবহার করছি, তাই এটি আশ্চর্যজনক ... আমি আরও কিছু গুগলিং করেছি, সম্ভবত ডাটাবেসের "সামঞ্জস্যতা স্তর" এর সাথে এটি করার কিছু ছিল যা আমি চেষ্টা করেছি এবং ব্যর্থ হয়েছি পরিবর্তন করতে - এটি 2005 এ সেট করা হয়েছে এবং এটি সর্বাধিক মান, সুতরাং এটি এই বৈশিষ্ট্যটি পায় নি। আমি হয়, আমার উত্তরে এসকিউএল সংস্করণ নির্দিষ্ট করা উচিত, বা উত্তরটি যদি সঠিকভাবে সংক্ষিপ্ত করা যায় না তবে মুছতে হবে? এটি আমার প্রচুর পাঠ সংরক্ষণ করতে পারে বলে ক্ষুব্ধ ...
পিট আরডেন

হয় আমার দ্বারা ভাল, তাই এটি আপনার কল। আমি ব্যক্তিগতভাবে জাভা in তে সাধারণত গল্ফ করি যা আমি নির্দিষ্ট করি, কারণ বেশিরভাগ ক্ষেত্রেই জাভা ৮ তে সংক্ষিপ্ত উত্তর পাওয়া যায় You আপনি এটি 2005 সালে একইভাবে নির্দিষ্ট করতে পারেন।
কেভিন ক্রুইজসেন

কেভিন ক্রুইজসেন হ্যাঁ, আমি জাভা এবং পাইথনের জন্য লোকেরা এটি করতে দেখলাম। কোডটি পরীক্ষা না করেই আসলে পরিবর্তনটি পরিবর্তন করতে চাই না, তাই আমি 2005, চিয়ার্স উল্লেখ করব :)
পিট আর্ডেন

1

বাশ (এড সহ), 83 টি অক্ষর

1-ইন্ডেক্স

ed<<<"a
head
shoulders
knees
toes
eyes
ears
mouth
nose
.
3,4t4
1,6y
6x
$(($1%22))"

নমুনা কল:

 $ bash test.sh 1001
 knees

1

ডিসি , 135 বাইট

6[head]6[:add6-r;ar:adA+r;ar:a]dshx7[shoulders]7lhx8[knees]8lhxA 2;aAlhx9[toes]9lhxB 3;aBlhx[eyes]C:a[ears]D:a[mouth]E:a[nose]F:a22%;ap

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

অ্যারেগুলিকে dcএকবারে একটি উপাদান তৈরি করতে হবে, যা এই অনুশীলনের ফলাফল গ্রহণ করে। যেহেতু 'চোখ', 'কান', 'মুখ' এবং 'নাক' কেবল একবার আমাদের অ্যারেতে উপস্থিত হয়, আমরা কেবল তাদের পপ করি। তবে অন্যদের জন্য আমরা কয়েকটি বাইটগুলি স্ট্যাকের উপরে রেখে সংরক্ষণ করি x[head]x, যেখানে x এটির তিনটি মানের মধ্যবর্তী হয়, তারপরে আমরা [:add6-r;ar:adA+r;ar:a]dshxএটিকে অ্যারে রাখার জন্য ম্যাক্রোটি চালাচ্ছি , এটি আবার টানছি, একই মানটিতে কম ছয়টি রেখেছি, এটিকে পিছনে টানবো, এবং তারপরে এটি মূল মানটিতে একটি শেষ সময়ে রাখব যোগ দশ। আমরা মাঝারি মানটি ব্যবহার করি কারণ dcআমাদের দশমিক মোডে এমনকি হেক্স সংখ্যা ব্যবহার করতে দেয় এবং Aযোগফলের চেয়ে বিয়োগ একটি কম বাইট16- এটি কেবলমাত্র কাজ করে কারণ মধ্যম মানগুলি পনেরের নীচে। আমাদের দু'বার হাঁটু এবং পায়ের আঙ্গুলগুলি করতে হবে, এবং আমাদের ম্যাক্রোটিকে যথেষ্ট স্মার্ট করে তোলা যাতে এটি বার বার করার জন্য আরও ব্যয়বহুল হয়; তবে স্ট্রিংটির পূর্বে সঞ্চিত কপিটি আবার লিখে না রেখে লোড করে আমরা এখানে বাইটগুলি সংরক্ষণ করি ( B 3;aBবনাম।B[toes]B করি - আমি মনে করি এটি মোট 3 বাইট সংরক্ষণ করে)।

একবার অ্যারে তৈরি হয়ে গেলে, আমাদের যা করা দরকার তা হ'ল 22%এবং তারপরে ;apঅ্যারে থেকে টানতে এবং মুদ্রণ করতে।


0

সি # 6, 138 বাইট

string F(int i)=>(i+10)%22<4?"eyes,ears,mouth,nose".Split(',')[(i+10)%22%4]:"head,shoulders,knees,toes,knees,toes".Split(',')[(i+6)%22%6];

repl.it ডেমো

অবরুদ্ধ + মন্তব্যসমূহ:

string F(int i)=>
    // Is it eyes/ears/mouth/nose?
    (i+10)%22<4
        // If yes, then set index to 4-word line and take modular 4
        // String array constructed by splitting comma-delimited words
        ? "eyes,ears,mouth,nose".Split(',')
            [(i+10)%22%4]
        // Else set index to last 6-word line and take modular 6
        : "head,shoulders,knees,toes,knees,toes".Split(',')
            [(i+6)%22%6];

আপনি স্ট্রিংটি একত্রিত করতে এবং একটি একক ব্যবহার করতে Splitপারেন ?:এবং বর্গাকার বন্ধনীগুলির ভিতরে ( +4দ্বিতীয় অংশের সাথে) string F(int i)=>"eyes,ears,mouth,nose,head,shoulders,knees,toes,knees,toes".Split(',')[(i+10)%22<4?(i+10)%22%4:(i+6)%22%6+4];
তার্নারি

0

এক্সেল, 146 বাইট

=MID("Head     ShouldersKnees    Toes     Eyes     Ears     Mouth    Nose",CHOOSE(MOD(MOD(MOD(B1+16,22),16),10)+1,1,10,19,28,19,28,37,46,55,64),9)

বাইটস MOD(MOD(MOD(B1+16,22),16),10)সংরক্ষণ করতে @ নীল এর ব্যবহার করুন 15

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