ওল্ড ম্যাকডোনাল্ড ফাংশন


16

আপনার নির্বাচিত ভাষায় একটি ফাংশন তৈরি করুন যা নিম্নলিখিতগুলি মুদ্রণ করে:

Old MacDonald had a farm, E-I-E-I-O,
And on that farm he had a cow, E-I-E-I-O,
With a moo moo here and a moo moo there,
Here a moo, there a moo, everywhere a moo moo,
Old MacDonald had a farm, E-I-E-I-O!

কোথায় cowএবং mooফাংশন পরামিতি স্ট্রিং আছে, এবং যেমন, এর পরিবর্তন করা যাবে pigএবং oinkবা sheepএবং baaউদাহরণস্বরূপ,।

এটি অ্যাকাউন্টে মূলধনী অক্ষর, হাইফেন, বিরামচিহ্ন, ফাঁকা স্থান এবং লাইন বিরতি নেওয়া উচিত।

আপনার কোডটিতে অল্প পরিমাণে ইউনিকোড অক্ষর টাইপ করার লক্ষ্য।


1
যদিও এটি কোলমোগোরভ-জটিলতা হওয়া উচিত নয় ?
এমনিআইপি

6
আপনি বলুন echoes the following। আপনি কি বলতে চাইছেন যে ফাংশনটি এটি মুদ্রণ করা উচিত বা এটি ফেরত দেওয়া উচিত?
সিজেফুরে

2
এই মেলাটি তৈরির জন্য, আমি মনে করি এটিতে প্রশ্নের যথাযথ বিরামচিহ্ন, ফাঁকা জায়গা এবং গাড়ীর রিটার্ন থাকা উচিত। তবে আপনি বড় হাতের / ছোট হাতের বিষয়ে কী ভাবেন? আমি ভেবেছিলাম একটি একক কেস সহজ হতে পারে এবং বেস 64 বা এর অনুরূপ স্ট্যান্ডার্ড অ্যাপ্লিকেশনগুলির একটি বোঝা এড়াতে পারে। ভারসাম্য অনুসারে, একমাত্র রাজধানীগুলি লাইনটির শুরুতে, ম্যাকডোনাল্ড শব্দ এবং EIEIO তে রয়েছে, সুতরাং প্রশ্নটিও ঠিক এটি তৈরি করা আরও আকর্ষণীয় হতে পারে।
স্তর নদী সেন্ট

4
এটি আউটপুট গ্রহণযোগ্য a oinkবা এটি করা উচিত an oink?
রিক

4
@ rybo111: মহান ডোনাল্ড নুথ এই জাতীয় জিনিস সম্পর্কে একটি একাডেমিক কাগজ লিখেছিলেন তা কি আপনি জানেন? এটি আসলে একটি বাস্তব জার্নালে প্রকাশিত হয়েছিল (স্বীকারোক্তি এপ্রিল সংস্করণে)। কাগজের পিডিএফ-এর লিঙ্ক সহ আরও এখানে: en.wikedia.org/wiki/The_Complexity_of_Songs
টম চ্যান্টলার

উত্তর:


15

জাভাস্ক্রিপ্ট ES6 - 204

ইউনিকোডের সর্বাধিক পরিমাণ টাইপ করার লক্ষ্য অক্ষর ।

সংক্ষিপ্ত নয় তবে সম্ভবত সবচেয়ে অচল।

f=(a,b)=>{for(c=[b,a].concat('!,-ADEHIMOWacdefhilmnortvwy \n'.split(o='')),i=62;i;o+=c[e>>10]+c[e/32&31]+c[e&31])e='ⱞᄤ⒇瓤抣瘭㾭癍㚏᫶⦮函࿋Π疽䌐獲樘ྰ㞠戝晐}疽䌐࿈䌐眲Π疽㛏戝癐Π疽伲࿌⒋ფᲉѽ疽䦯䨝抽瘭䦹容㾷碶ᅣᲉᄤྦྷ㜕㞱㗽㾲妴㣗畍⺏'.charCodeAt(--i);alert(o)}

যদি আপনার ব্রাউজারটি ES6 সমর্থন করে না:

function f(a,b){for(c=[b,a].concat('!,-ADEHIMOWacdefhilmnortvwy \n'.split(o='')),i=62;i;o+=c[e>>10]+c[e/32&31]+c[e&31])e='ⱞᄤ⒇瓤抣瘭㾭癍㚏᫶⦮函࿋Π疽䌐獲樘ྰ㞠戝晐}疽䌐࿈䌐眲Π疽㛏戝癐Π疽伲࿌⒋ფᲉѽ疽䦯䨝抽瘭䦹容㾷碶ᅣᲉᄤྦྷ㜕㞱㗽㾲妴㣗畍⺏'.charCodeAt(--i);alert(o)}

আপনার ব্রাউজার কনসোলে সেই কোডটি অনুলিপি / আটকান এবং চেষ্টা করুন f('cow','moo'),f('pig','oink') ,f('sheep','baa')

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

c29 টি বর্ণের একটি অ্যারে এবং এটি প্রাণী এবং এর শব্দ (এটি আমাদের বর্ণমালা বলতে দাও )।
সুতরাং, সমস্ত 31 টি অক্ষর 5 বিট (2 ^ 5 = 32) এ ফিট করে।
একটি ইউনিকোড অক্ষর 16 বিট দীর্ঘ, তাই এটি প্যাডিং বিটের সাহায্যে আমাদের বর্ণমালার 3 টি অক্ষর এনকোড করতে পারে ।
নতুন লাইনের সাথে সম্পূর্ণ পাঠ্যটি আমাদের 186 টি অক্ষর বর্ণমালার , এটি 62 ইউনিকোড অক্ষর সহ এনকোড করা যেতে পারে।

উদাহরণস্বরূপ, Oldএটিকে এনকোড করা হয়েছে:

alphabet value         O      l      d
alphabet index         11     20     15
unicode           0  01011  10100  01111  ===> \u2e8f (⺏)

আপনার যদি কিছু ইউনিকোড অক্ষর পড়তে সমস্যা হয় তবে কোড 2000 ফন্টটি ইনস্টল করুন


2
"cow"এবং "moo"ফাংশন পরামিতি বলে মনে করা হয়। অ্যারে পাস করার জন্য কলারকে পেয়ে, আপনি কলিং কোডের অক্ষর গণনাতে যোগ ব্যয় করে ফাংশন সংজ্ঞায় অক্ষর সংরক্ষণ করছেন। এটি আমার কাছে প্রতারণার মতো গন্ধ পাচ্ছে। এই পদ্ধতির চূড়ান্ত দিকে নিয়ে যাওয়া আপনি function f(a){alert(a)}(23 টি অক্ষর) সংজ্ঞায়িত করতে পারেন এবং বলতে পারেন যে এটির মতো বলা দরকার f("Old MacDonald had a ...")
tobyink

1
আমি দুটি পৃথক পৃথক পরামিতিগুলিতে স্ট্রিংগুলি পাস করেছি কিন্তু চ্যালেঞ্জটি পড়ার পরে আমি অ্যারে ফর্ম্যাটে স্ট্রিংগুলি পাস না করার কোনও কারণ দেখিনি, তাই আমি আমার উত্তরটি সম্পাদনা করেছি। এটি প্রতারণা নয়, সম্ভব হলে কেবল কয়েকটি অক্ষর সংরক্ষণ করা। @ Rybo111 কে এই সিদ্ধান্তটি মানায় কিনা তা স্থির করুন।
মাইকেল এম

1
@ ট্যুইঙ্ক আমি নিয়মে 'স্ট্রিং' (অ্যারে নয়) শব্দটি ব্যবহার করেছি, সুতরাং আমি মনে করি আপনি ঠিক বলেছেন। আমার মনে হয় 'প্রতারণা' কিছুটা কঠোর, যদিও!
rybo111

2
এর এত ভোট কেন? এটি 200 এরও বেশি এবং সংক্ষিপ্ত জাভাস্ক্রিপ্ট সমাধানও নয়।
অ্যাডিটসু 6:58 14:56

আপনি যখন ও সুস্পষ্টভাবে ব্যাখ্যা করেছেন তখন আমার ভোটও রয়েছে
edc65

5

সিজেম - 142 / গল্ফস্ক্রিপ্ট - 144

{" had| a |farm|68, |68 8|here|Old MacDonald765|, E-I-E-I-O|10,
And on that 5 he7690,
With3 2 and3 t2,
Here4t24everyw23,
10!"'|/~A,{`/\*}/}:F;

ব্যবহার: "cow""moo"F
জন্য GolfScript প্রতিস্থাপন '|সঙ্গে "|"এবং Aসঙ্গে10

ব্যাখ্যা:

গুরুত্বপূর্ণ অংশ A,{`/\*}/:
A,{...}/0 থেকে 9 (একটি = 10) প্রতিটি সংখ্যার জন্য ব্লক executes
`স্ট্রিং সংখ্যা পরিবর্তিত
/\*একটি স্ট্রিং প্রতিস্থাপন না: যদি আমরা স্ট্যাকের আছে "bar" "foo 1 baz" "1"তারপর /স্ট্রিং ফলে splits ["foo " " baz"], \অদলবদল পূর্ববর্তী আইটেমে সঙ্গে এই অ্যারের ("বার") এবং *ফলাফলের অ্যারেতে যোগ দেয়"foo bar baz"

সুতরাং কোডটি প্রতিটি স্ট্রাকের স্ট্রকের সাথে মূল স্ট্রিংয়ের সাথে প্রতিস্থাপন করে। আমাদের কাছে প্রাণী এবং শব্দ রয়েছে, তারপরে "ছিল", "এ" ইত্যাদি এবং শেষ পর্যন্ত ", EIEIO" এবং মূল স্ট্রিং, "10, ...!"! অনেকগুলি উদ্ধৃতি ব্যবহার এড়াতে, আমি সমস্ত স্ট্রিং (পরামিতি ব্যতীত) একটি স্ট্রিংয়ে রেখেছি, তারপরে এটি বিভক্ত করে ফলাফল অ্যারে ফেলেছি ('|/~ )

মূল স্ট্রিংটি নিম্নলিখিত রূপান্তরগুলির মধ্য দিয়ে যায়:

10,
And on that 5 he7690,
With3 2 and3 t2,
Here4t24everyw23,
10!

প্রতিস্থাপন "0"সঙ্গে ", E-I-E-I-O":

1, E-I-E-I-O,
And on that 5 he769, E-I-E-I-O,
With3 2 and3 t2,
Here4t24everyw23,
1, E-I-E-I-O!

প্রতিস্থাপন "1"সঙ্গে "Old MacDonald765":

Old MacDonald765, E-I-E-I-O,
And on that 5 he769, E-I-E-I-O,
With3 2 and3 t2,
Here4t24everyw23,
Old MacDonald765, E-I-E-I-O!

"2"সঙ্গে প্রতিস্থাপন "here", তারপর "3"সঙ্গে"68 8" ইত্যাদি

8 শব্দটির সাথে মিলে যায় এবং 9 টি প্রাণীর সাথে মিলবে।


আপনি এই ব্যাখ্যা করতে পারেন? আমি এমনকি কি না জানি না CJam হয়
Cruncher

@ ক্র্যাঞ্চার সিজে্যাম একটি ভাষা আমি তৈরি করেছি, sf.net/p/cjam ; আমি এটি গল্ফ করা শেষ করার পরে এটি ব্যাখ্যা করতে পারি :)
অদিতসু 5'14

1
@ ক্র্যাঙ্কার এখন ব্যাখ্যা যুক্ত করেছেন
অ্যাডিটসু

9
That এবং সেই পাঁচটিতে তিনি ছয়টি নয়টি সেভ করেছিলেন, জে
আই

E-I-তারপরে পুনরাবৃত্তি করা একটি স্ট্রিং হতে পারে? :)
rybo111

5

বাশ + আইকনভিভ, 128 ইউনিকোড অক্ষর

নীচের খাঁটি-বাশ / এসকিআই ফাংশন বডি নেয় এবং ইউনিকোড চরগুলিতে বিপরীত-এনকোডগুলি নেয়:

m()(c=`iconv -t unicode<<<㵳⁜屡␠ਲ㵨敨敲攊ⰽ⁜ⵅⵉⵅⵉ੏㵯伢摬䴠捡潄慮摬栠摡愠映牡⑭≥攊档␢Ɐ䄊摮漠桴瑡映牡敨栠摡愠␠␱ⱥ圊瑩⑨⁳㈤␠⁨湡⑤⁳㈤琠栤ਬ效敲猤‬⑴⑨ⱳ攠敶祲⑷⑨⁳㈤ਬ漤™ਠ`
eval "${c:2}")

শেল ফাংশন সংজ্ঞায়িত করে m। যেমন কল করুন:

$ মি টু হি
ওল্ড ম্যাকডোনাল্ডের একটি খামার ছিল, EIEIO,
এবং সেই খামারে তার একটা গড়ি ছিল, EIEIO,
এখানে একটি হিংস্র হিংসু এবং সেখানে একটি হিংস্র সহকর্মী,
এখানে একটি হিংস্র, সেখানে একটি হিংস্র, সর্বত্র একটি হিংস্র হিংস্র,
ওল্ড ম্যাকডোনাল্ডের একটি খামার ছিল, EIEIO!
$ 

খাঁটি বাশ, 171 বাইট (কেবলমাত্র)

আমি মনে করি এটি লক্ষণীয় যে মূল শ্লোকটি ("গরু" এবং "মু" সহ) কেবলমাত্র 203 অক্ষর।

m()(s=\ a\ $2
h=here
e=,\ E-I-E-I-O
o="Old MacDonald had a farm$e"
echo "$o,
And on that farm he had a $1$e,
With$s $2 $h and$s $2 t$h,
Here$s, t$h$s, everyw$h$s $2,
$o"!)

শেল ফাংশন সংজ্ঞায়িত করে m। যেমন কল করুন:

$ এম ভেড়া বা
ওল্ড ম্যাকডোনাল্ডের একটি খামার ছিল, EIEIO,
এবং সেই খামারে তার একটি ভেড়া ছিল, EIEIO,
এখানে একটি বা বা এবং একটি বা বা সাথে,
এখানে একটি বা, সেখানে একটি বা, সর্বত্র একটি বা বা,
ওল্ড ম্যাকডোনাল্ডের একটি খামার ছিল, EIEIO!
$

4

সি ++ (403)

ঠিক আছে, এটি একটি দীর্ঘ শট একটি বিট, কিন্তু কে ওভার সংজ্ঞা পছন্দ করে না?

#define O ", E-I-E-I-O"
#define E O<<","
#define I "Old MacDonald had a farm"
#define H(a) "And on that farm he had a "<<a<<E
#define D(s) s<<" "<<s
#define W(s) "With a "<<D(s)<<" here and a "<<D(s)<<" there,"
#define V(s) "Here a "<<s<<", there a "<<s<<", everywhere a "<<D(s)<<","
#define F I<<O<<"!"
#define N endl
void m(string a, string s){cout<<I<<E<<N<<H(a)<<N<<W(s)<<N<<V(s)<<N<<F<<N;}

2
this.eyes.bleeding = সত্য;
প্রক্সি

এমন কোনও সংজ্ঞা দেয় যা আরও এই শক্ততর প্যাক করতে পারে?
আইনস্টাইনসি

1
এটি ব্যবহার করা সম্ভব হবে #define X defineএবং তারপরে ব্যবহার করা সম্ভব #X Y Z। দুঃখের বিষয়, সেই সমস্ত প্রধান আইওসিসি'র দিনগুলি এখন অনেক অতীত ...
nneonneo

+পরিবর্তে ব্যবহার সম্পর্কে কি <<? বা এর char*পরিবর্তে ব্যবহার করছেন string? // এইগুলির মধ্যে কেবল একটি একই সময়ে ব্যবহার করা যেতে পারে।
কিওয়ারটি 12

2

পাইথন, 116 ইউনিকোড অক্ষর

def f(**a):print u'鱸쿳光䷰癌쿉ы㊲匒ሔ툕謒畲尔㵵䅵忘쮇⼱ⅅ伿⒡넣Ⰴ邩ઑ꩕醪徜妮ꊌ㰺⒳Ⰳ鮕꾟ౙ㎧譒ᕒ끒镈롴쀼怪㪢愐腤닔ꋔ狊兔Ⲹ㾗꽡Ȩ똀䝸å'.encode('u16')[2:].decode('zip')%a

স্ট্যাকওভারফ্লো আমার বিশেষ অক্ষরগুলি খাচ্ছে, যদিও, বেস 64 এ ফাইলটি এখানে:

77u/ZGVmIGYoKiphKTpwcmludCB1J+mxuOy/s+WFieS3sOeZjOy/idGL44qy5YyS4YiU7YiV6KyS55Wy5bCU47W15IW15b+Y7K6H4ryx4oWF5Ly/4pKh64Sj4rCE6YKp4KqR6qmV6Yaq5b6c5aau6oqM47C64pKz4rCD6a6V6r6f4LGZ446n6K2S4ZWS74yS64GS6ZWI7pKA66G07IC85oCq46qi5oSQ6IWk64uU6ouU54uK5YWU4rK4476X6r2hyKjrmIDknbjDpScuZW5jb2RlKCd1MTYnKVsyOl0uZGVjb2RlKCd6aXAnKSVh

ডেটা zlib ব্যবহার করে প্যাক করা হয়, যা দক্ষতার সাথে পুনরাবৃত্ত স্ট্রিংগুলি কোড করে (zlib সাধারণভাবে পাঠ্যকে সংকুচিত করতে ভাল)। "ইউনিকোড অক্ষর" রুলের সুবিধা নিতে, 121-বাইট জেলিব অংশটি প্যাডেড এবং 61 টি-অক্ষরের ইউনিকোড স্ট্রিংয়ে বিটিস্ট্রিং ইউটিএফ -16 হিসাবে ব্যাখ্যা করে অর্ধেক করা হয়েছে।

হিসাবে ফাংশন কল করুন

f(cow='pig', moo='oink')

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

@ ডিজিটালট্রামা: আমার পাঠ্য অনুধাবন ব্যর্থ! সংশোধন করা হয়েছে।
নিনেও

আরও ভাল :) :) +1
ডিজিটাল ট্রমা

115 । ট্রেলিং নিউলাইন গণনা করার দরকার নেই।
nyuszika7h

@ nyuszika7h না, এটি ১১6 You (এটি পাইথন 3 নয়, যার নেই .decode('zip')))
অ্যান্ডারস ক্যাসরগ

1

পাইথন, 217

আপনি সত্যিই এত গল্ফ করতে পারবেন না। আমি স্রেফ ব্লাট্যান্ট ফ্রন্ট-এন্ড পুনরাবৃত্তিটি বের করেছি এবং ...

m,f="Old MacDonald had a farm, E-I-E-I-O",lambda x,y:m+",\nAnd on that farm he had a %s, E-I-E-I-O,\nWith a %shere and a %sthere,\nHere a %s, there a %s, everywhere a %s %s,\n%s!"%((x,)+((y+' ')*2,)*2+(y,)*4+(m,))

জাভাস্ক্রিপ্ট, 241 - জেএসক্রাশ ঠকানো

এটি জেএসক্রাশ দিয়ে তৈরি করা হয়েছে ... আসলেই আসল উত্তর নয়, এটি দেখার বিষয়টি আগ্রহী হবে যে কেউ মূলধারার ভাষায় এটিকে পরাজিত করতে পারে কিনা। ( সম্পাদনা : আহ)

_='var f=function(c,a){var b=a "+a;return"Anon that he hadcWith  and tHere  t   everyw!"};OlMacDonalhaa a "+, O,\\nhere+"b farm a, d E-I-';for(Y in $=' ')with(_.split($[Y]))_=join(pop());eval(_)

1

জাভা, 246

void f(String[] a){String o="Old MacDonald had a farm",e=", E-I-E-I-O",x=" a "+a[1],s=x+" "+a[1];System.out.print(o+e+",\nAnd on that farm he had a "+a[0]+e+",\nWith"+s+" here and"+s+" there,\nHere"+x+", there"+x+", everywhere"+s+",\n"+o+e+"!");}

ব্যবহার: f(new String[]{"cow","moo"});


1

জাভা - 262 258

void m(String...s){String b=s[1],c=b+" "+b,d="E-I-E-I-O",e="Old MacDonald had a farm, "+d;System.out.print(e+",\n"+"And on that farm he had a "+s[0]+", "+d+",\nWith a "+c+" here and a "+c+" there,\nHere a "+b+", there a "+b+", everywhere a "+c+",\n"+e+"!");}

আরও অপ্টিমাইজেশন অবশ্যই সম্ভব।


আপনি
প্রিন্টফ

ট্রেভিন অ্যাভেরি এই সম্পাদনার পরামর্শ দিয়েছেন: জাভা - 243 - অকার্যকর স্ট্রিং ... ক) ring স্ট্রিং সি = "এ" + এ [1], ডি = সি + "" এএ [1], ই = ", ইআইইআইআইও", এফ = "ওল্ড ম্যাকডোনাল্ডের একটি ফার্ম ছিল" + ই; সিস্টেম.আউট.প্রিন্ট (এফ + ", \ n এবং সেই খামারে তার" + এ [0] + ই + ", \ n এখানে" + ডি + "এবং সেখানে" + ডি + "ছিল) , \ n এখানে "+ সি +", সেখানে "+ সি +" ", সর্বত্র" + ডি + ", \ n" + এফ + "!"); optim আরও অনুকূলিতকরণ অবশ্যই সম্ভব
জাস্টিন

1

পার্ল 5 (ইউটিএফ -8) - 131 অক্ষর, 313 বাইট

নীচের স্ক্রিপ্টটি কোনও বিওএম ছাড়াই ইউটিএফ -8 হিসাবে সংরক্ষণ করা দরকার।

use utf8;use Encode;eval encode ucs2,'獵戠晻③㴤∮灯瀻⑥㴢Ⱐ䔭䤭䔭䤭伢㬤漽≏汤⁍慣䑯湡汤⁨慤⁡⁦慲洤攢㬤ⰽ≥牥⁡∻獡礢⑯Ⰺ䅮搠潮⁴桡琠晡牭⁨攠桡搠愠䁟⑥Ⰺ坩瑨⁡③③⁨␬湤⁡③③⁴桥牥Ⰺ䠤Ⱔ戬⁴栤Ⱔ戬⁥癥特睨␬③③Ⰺ⑯™紱';

ব্যবহার: f("cow", "moo");

পার্ল -M5.010৫.১০ বৈশিষ্ট্য সক্ষম করতে পার্লটিকে পতাকা সহ চালানো দরকার । ( এটি অনুমোদিত )

আমি অক্ষর গণনা (131) এবং বাইট গণনা (313) এর প্রতিসাম্যতা বেশ পছন্দ করি। এটি খুব ইয়িন এবং ইয়াং।

পার্ল 5 (এএসসিআইআই) - 181 অক্ষর, 181 বাইট

sub f{$b=$".pop;$e=", E-I-E-I-O";$o="Old MacDonald had a farm$e";$,="ere a";say"$o,
And on that farm he had a @_$e,
With a$b$b h$,nd a$b$b there,
H$,$b, th$,$b, everywh$,$b$b,
$o!"}

ব্যবহার: f("cow", "moo");

আবার, পার্ল -M5.010৫.১০ বৈশিষ্ট্য সক্ষম করতে পতাকাটি দিয়ে পার্ল চালানো দরকার ।



প্রকৃতপক্ষে কোডগল্ফ.স্ট্যাকেক্সেঞ্জাওএ / এ / 26628/12469 আমার সূচনা পয়েন্ট ছিল। আমি কয়েকটি অতিরিক্ত ভেরিয়েবল পরীক্ষা করেছি যা দৈর্ঘ্যটি আরও কেটে ফেলেছে এবং তারপরে ইউটিএফ 16 টি ট্রিক প্রয়োগ করেছে যা অন্যান্য বেশ কয়েকটি বাস্তবায়ন ব্যবহার করে।
tobyink

1

সিজেএম (অ-এএসসিআইআই) - 77 টি অক্ষর

"啝裢樃濿䶹讄團챤鋚䖧雿ꆪꆵ䷶텸紎腕Խꍰ搓᩟童䚯⤭刧损⬛豳Ẍ퍾퓱郦퉰怈䡞௳閶蚇⡾쇛蕟猲禼࿆艹蹚㞿䛴麅鞑椢⧨餎쏡첦휽嬴힡ݷ녣㯂鐸㭕"56e3b127b:c~

ব্যবহার: "cow""moo"F

স্ট্রিংটি আমার অন্যান্য সিজেএম সমাধান যা বেস 127 থেকে বেস 56000 এ রূপান্তরিত।
এ A একটি ইউটিএফ -8 লোকেলের প্রয়োজন হতে পারে।

যাইহোক, এখন আপনি http://cjam.aditsu.net/ এ অনলাইনে চেষ্টা করতে পারেন


1

জাভাস্ক্রিপ্ট: 152 অক্ষর / ES6: 149 অক্ষর

এখানে "জেড" নামে একটি জেএস ফাংশন রয়েছে যা 214 অক্ষরে কাজ করে। (এটি কার্যকর করবেন না!)

function z(a,b){c=' a '+b;d=c+' '+b;e=', E-I-E-I-O';f='Old MacDonald had a farm'+e;return(f+',\nAnd on that farm he had a '+a+e+',\nWith'+d+' here and'+d+' there,\nHere'+c+', there'+c+', everywhere'+d+',\n'+f+'!')}

@ সুবজি এবং আমি 140byt.es এর জন্য তৈরি কৌশল ব্যবহার করে আমি এটি ইউনিকোড চরগুলিতে "প্যাক" করেছি।

eval(unescape(escape('𩡵𫡣𭁩𫱮𘁺𚁡𛁢𚑻𨰽𙰠𨐠𙰫𨠻𩀽𨰫𙰠𙰫𨠻𩐽𙰬𘁅𛑉𛑅𛑉𛑏𙰻𩠽𙱏𫁤𘁍𨑣𡁯𫡡𫁤𘁨𨑤𘁡𘁦𨑲𫐧𚱥𞱲𩑴𭑲𫠨𩠫𙰬𧁮𠑮𩀠𫱮𘁴𪁡𭀠𩡡𬡭𘁨𩐠𪁡𩀠𨐠𙰫𨐫𩐫𙰬𧁮𥱩𭁨𙰫𩀫𙰠𪁥𬡥𘁡𫡤𙰫𩀫𙰠𭁨𩑲𩐬𧁮𢁥𬡥𙰫𨰫𙰬𘁴𪁥𬡥𙰫𨰫𙰬𘁥𭡥𬡹𭱨𩑲𩐧𚱤𚰧𛁜𫠧𚱦𚰧𘐧𚑽').replace(/uD./g,'')))

শেষ স্নিপেট কার্যকর করুন, তারপরে কল করুন z("cow","moo")এবং আপনি এই স্ট্রিংটি পাবেন:

Old MacDonald had a farm, E-I-E-I-O,
And on that farm he had a cow, E-I-E-I-O
With a moo moo here and a moo moo there,
Here a moo, there a moo, everywhere a moo moo,
Old MacDonald had a farm, E-I-E-I-O!"

এখানে আরও তথ্য: http://xem.github.io/golfing/en.html#compress

ES6 সংস্করণ:

eval(unescape(escape('𮠽𚁡𛁢𚐽🡻𨰽𙰠𨐠𙰫𨠻𩀽𨰫𙰠𙰫𨠻𩐽𙰬𘁅𛑉𛑅𛑉𛑏𙰻𩠽𙱏𫁤𘁍𨑣𡁯𫡡𫁤𘁨𨑤𘁡𘁦𨑲𫐧𚱥𞱲𩑴𭑲𫠨𩠫𙰬𧁮𠑮𩀠𫱮𘁴𪁡𭀠𩡡𬡭𘁨𩐠𪁡𩀠𨐠𙰫𨐫𩐫𙰬𧁮𥱩𭁨𙰫𩀫𙰠𪁥𬡥𘁡𫡤𙰫𩀫𙰠𭁨𩑲𩐬𧁮𢁥𬡥𙰫𨰫𙰬𘁴𪁥𬡥𙰫𨰫𙰬𘁥𭡥𬡹𭱨𩑲𩐧𚱤𚰧𛁜𫠧𚱦𚰧𘐧𚑽').replace(/uD./g,'')))

আমি মনে করি আপনি জিনিসগুলি সঠিকভাবে কপি-পেস্ট করেননি, আপনার কোডটিতে 250 টিরও বেশি অক্ষর রয়েছে বলে মনে হয় - উফ, সম্ভবত না, তবে আমার পাঠ্য সম্পাদকটি অদ্ভুত আচরণ করছে, আমি তদন্ত করব।
অ্যাডিটসু 6:56

ওহ, আপনার বেশিরভাগ চরিত্র কিছু জ্যোতির্বিজ্ঞান বিমানের (সম্ভবত এ কারণেই তারা এখানে 2 টি অক্ষর হিসাবে গণ্য হবে) ... এবং অবিরতও নয়। এটি বিধিগুলি কিছুটা প্রসারিত করছে :)
অ্যাডিটসু

ভাল, আমি মনে করি না এটি প্রতারণা করছে: এই চিহ্নগুলি ইউনিকোড অক্ষর, এবং এটি 2 টি চরিত্র হিসাবে গণনা করা উচিত নয়। এছাড়াও, টুইটার তাদের প্রত্যেককে 1 চর হিসাবে গণনা করে। আপনি যদি একটি টুইটটিতে ES6 সংস্করণটি অনুলিপি করেন তবে এটি বলছে এটি 9 টি অক্ষর দ্বারা অনেক দীর্ঘ। সুতরাং, 149 এটি :)
xem

1

সি # - 339 বাইট

void x(string c, string d){var a="Old MacDonald had a farm";var b=", E-I-E-I-O";var f=" a ";var g=" there";Debug.WriteLine(a+b+",");Debug.WriteLine("And on that farm he had"+f+c+b+",");Debug.WriteLine("With"+f+d+" "+d+" here and"+f+d+" "+d+g+",");Debug.WriteLine("Here"+f+d+","+g+f+d+", everywhere"+f+d+" "+d+",");Debug.WriteLine(a+b+"!");

ব্যবহার: x("cow","moo");


1

রেবোল, 206 202

f: func[a b][print reword{$o$e,
And on that farm he had a $a$e,
With a $b $b here and a $b $b there,
Here a $b, there a $b, everywhere a $b $b,
$o$e!}[e", E-I-E-I-O"o"Old MacDonald had a farm"a a b b]]

ব্যবহার: f "cow" "moo"


0

ডেলফি এক্সই 3 ( 272 252)

procedure k(a,s:string);const o='Old MacDonald had a farm';e=', E-I-E-I-O';n=','#13#10;begin s:=' '+s;write(o+e+n+'And on that farm he had a '+a+e+n+'With a'+s+s+' here and a'+s+s+' there'+n+'Here a'+s+', there a'+s+' every where a'+s+s+n+o+e+'!');end;

Ungolfed

procedure k(a,s:string);
const
  o='Old MacDonald had a farm';
  e=', E-I-E-I-O';
  n=','#13#10;
begin
  s:=' '+s;
  write(o+e+n+'And on that farm he had a '+a+e+n+'With a'+s+s+' here and a'+s+s+' there'+n+'Here a'+s+', there a'+s+' every where a'+s+s+n+o+e+'!');
end;

0

লুয়া 237

function f(a,b)c=b.." "..b;d="Old MacDonald had a farm, E-I-E-I-O"print(d..",\nAnd on that farm he had a "..a..", E-I-E-I-O,\nWith a "..c.." here and a "..c.." there,\nHere a "..b..", there a "..b..", everywhere a "..c..",\n"..d.."!")end

সংজ্ঞা দিয়ে c=b.." "..b, আমি একটি ডজন অক্ষর সংরক্ষণ করতে পারি। dআমার মতো করে সংজ্ঞা দিয়ে আমি 23 টি অক্ষর সংরক্ষণ করি। আমি কীভাবে এটি আর সংক্ষিপ্ত করতে পারি তা দেখছি না। একে মাধ্যমে বলা হয় f("<animal>","<sound>")


0

জাভা 8 (411)

String m(String...m){LinkedHashMap<String,String>n=new LinkedHashMap<>();n.put("/","( * #, -");n.put("#","farm");n.put("-","E-I-E-I-O");n.put("+","here");n.put("*","had a");n.put("(","Old MacDonald");n.put("|"," a )");n.put(")","moo");n.put("moo",m[1]);n.put("cow",m[0]);m[0]="/,\nAnd on that # he * cow, -,\nWith|) + and|) t+,\nHere|, t+|, everyw+|),\n/!";n.forEach((k,v)->m[0]=m[0].replace(k,v));return m[0];}

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

অবরুদ্ধ সংস্করণ:

String m(String... m)
{
    LinkedHashMap<String, String> n = new LinkedHashMap<>();
    n.put("/", "( * #, -");
    n.put("#", "farm");
    n.put("-", "E-I-E-I-O");
    n.put("+", "here");
    n.put("*", "had a");
    n.put("(", "Old MacDonald");
    n.put("|", " a )");
    n.put(")", "moo");
    n.put("moo", m[1]);
    n.put("cow", m[0]);
    m[0] = "/,\nAnd on that # he * cow, -,\nWith|) + and|) t+,\nHere|, t+|, everyw+|),\n/!";
    n.forEach((k, v) -> m[0] = m[0].replace(k, v));
    return m[0];
}

0

জাভাস্ক্রিপ্ট 220

function f(a,b){c=' a '+b;d=c+' '+b;e=', E-I-E-I-O';f='Old MacDonald had a farm'+e;console.log(f+',\nAnd on that farm he had a '+a+e+',\nWith'+d+' here and'+d+' there,\nHere'+c+', there'+c+', everywhere'+d+',\n'+f+'!');}

ডেকেছে

f('cow', 'moo');

0

খাঁটি সি, 298 বাইট, কোনও ইউনিকোড নেই

আমার ফাংশনে আমি একক যুক্তি নিই, যা আসলে char*একত্রে একত্রে ভরপুর। প্রতিটি স্ট্রিং নাল সমাপ্ত, এবং শেষে একটি অতিরিক্ত নাল টার্মিনেটর রয়েছে। এটি আমাকে পরীক্ষা করতে দেয়strlen(a) কাউন্টার ভেরিয়েবলের পরিবর্তে প্রতিটি লুপের শেষে করতে সহায়তা করে।

mcdonald.c:

m(char*a){while(strlen(a)){printf("Old MacDonald had a farm, E-I-E-I-O\nAnd on that farm he had a %s, E-I-E-I-O,\nWith a ",a);a+=strlen(a)+1;printf("%s %s here and a %s %s there,\nHere a %s, there a %s, everywhere a %s %s,\nOld MacDonald had a farm, E-I-E-I-O!\n",a,a,a,a,a,a,a,a);a+=strlen(a)+1;}}

main.c:

int m(char *v);
int main(int argc, char **argv) {
    m("cow\0moo\0programmer\0meh\0\0");
    return 0;
}

আউটপুট:

clang main.c mcdonald.c && ./a.out
Old MacDonald had a farm, E-I-E-I-O
And on that farm he had a cow, E-I-E-I-O,
With a moo moo here and a moo moo there,
Here a moo, there a moo, everywhere a moo moo,
Old MacDonald had a farm, E-I-E-I-O!
Old MacDonald had a farm, E-I-E-I-O
And on that farm he had a programmer, E-I-E-I-O,
With a meh meh here and a meh meh there,
Here a meh, there a meh, everywhere a meh meh,
Old MacDonald had a farm, E-I-E-I-O!

0

কোবরা - 203

def f(a,b)
    d=" a [b] "+b
    e=", E-I-E-I-O"
    m="Old MacDonald had a farm[e]"
    print "[m],\nAnd on that farm he had a [a][e],\nWith[d] here and[d] there,\nHere a [b], there a [b], everywhere[d],\n[m]!"

এমনকি অল্প-টু-নো মাল্টি-আস্তরণের এবং কঠোর ইনডেন্টেশন নিয়মের একটি ভাষার জন্যও কোবরা এখনও বেশ ভালভাবে কাজ করে।


0

সি: 224 বাইট

প্রিন্টফ স্পষ্টতা স্পেসিফায়ার ব্যবহার করে , আমরা মুদ্রণ উভয় ফর্ম্যাট স্ট্রিং এবং প্যারামিটার দুটি হিসাবে একই স্ট্রিং ব্যবহার করতে পারি।

o(char*x,char*y){char*f="Old MacDonald had a farm, E-I-E-I-O,\nAnd on that farm he had a %s%.13sWith a %s %s here and a %s %s there,\nHere a %s, there a %s, everywhere a %s %s,\n%.35s!\n";printf(f,x,f+24,y,y,y,y,y,y,y,y,f);}

সাদা স্থান এবং স্ট্রিং লাইনে বিভক্ত:

o(char* x, char* y)
{
    char* f=
        "Old MacDonald had a farm, E-I-E-I-O,\n"
        "And on that farm he had a %s%.13s"
        "With a %s %s here and a %s %s there,\n"
        "Here a %s, there a %s, everywhere a %s %s,\n"
        "%.35s!\n";

    printf(f,x,f+24,y,y,y,y,y,y,y,y,f);
}

0

পিএইচপি - 272 টি অক্ষর, 272 বাইট

function m($q,$w){for($e="@&And on that farm he had^<%&With *h# and*th#&H(th(everywh#^> >&@!",$r=1;;$e=$r){$r=str_replace(["@","#","^","%","<",">","&","*","("],["Old MacDonald had^farm%","ere"," a ",", E-I-E-I-O",$q,$w,",\n","^> > ","#^>, "],$e);if($e==$r)break;}echo $e;}

ব্যবহার: m("cow", "moo");,m("fox", "Hatee-hatee-hatee-ho");

@#%^<>&*(আউটপুট ক্র্যাশ সহ পরামিতি ।


0

হাস্কেল (২৮২ এবং এখনও কিছুটা পঠনযোগ্য :))

wc -c oldmacdonald.hs
     282 oldmacdonald.hs

ফাইল:

main=mapM putStrLn[s"cow""moo",s"pig""oink",s"sheep""baa"]
s c m=o#",\nAnd on that farm he had"#b c#e#let n=m#" "#m in",\nWith"#b n#" here and"#b n#" there,\nHere"#b m#", there"#b m#", everywhere"#b n#",\n"#o#"!\n"
o="Old MacDonald had a farm"#e
e=", E-I-E-I-O"
b=(" a "#)
(#)=(++)

এটি ২৮১, আপনি সাধারণত চলমান নিউলাইনটি গণনা করেন না, যদি না এটি সি প্রিপ্রসেসর ম্যাক্রো বা অন্য কোনও কিছুর জন্য যেখানে নিউলাইন সমাপ্তির প্রয়োজন হয়। বেশিরভাগ ক্ষেত্রে, আপনি ফিরে আসা বাইট গণনা থেকে কেবল 1 টি বিয়োগ করতে পারেন wc -c, তবে আমি মোটেরেফ.ইন / বাইট- কাউন্টার ব্যবহার করা পছন্দ করি এবং প্রোগ্রামটি কাজ করার প্রয়োজন না হলে শেষ পর্যন্ত কোনও ফাঁকা রেখা নেই তা নিশ্চিত করে।
nyuszika7h

0

কোনও ইউনিকোড ছাড়াই 179 186 চরগুলির ES6, 2 সমাধান

f=(a,b)=>alert("325And on that farm he had a025With a11 h4nd a11 th45H41, th41, everywh411532!".replace(/\d/g,x=>[" "+a," "+b,", E-I-E-I-O","Old MacDonald had a farm","ere a",",\n"][x]))

এবং দ্বিতীয়:

f=(a,b)=>alert("3625And on7at6 he ha8025With a11 h4n811745H41,741, everywh4115362!".replace(/\d/g,x=>(` ${a}0 ${b}0, E-I-E-I-O0Old MacDonald had a0ere a0,\n0 farm0 th0d a`).split(0)[x]))

আমি সতর্কতা কল (+7 অক্ষর) যুক্ত করেছি।


আমি মনে করি, এটি আপাতত অ-ইউনিকডবিহীনদের থেকে সংক্ষিপ্ত সমাধান।
কিওয়ারটি

0

জাভাস্ক্রিপ্ট (E6) 140 অক্ষর

চর কাউন্টার: https://mothereff.in/byte-counter , 140 অক্ষর, UTF-8 এ 425 বাইট

eval(unescape(escape('𩠽𚁡𛁢𚐽🡡𫁥𬡴𚀧𜀱𜠵𠑮𩀠𫱮𘀶𨑴𜐳𩐳𨑤𝰠𞐲𝑗𪐶𘁡𞀸𜰴𝱮𩀠𨐸𞀠𝠴𝑈𝀷𞀬𘀶𝀷𞀬𘁥𭡥𬡹𭱨𝀷𞀸𝐰𜐲𘐧𛡲𩑰𫁡𨱥𚀯𧁤𛱧𛁣🐾𚀧𣱬𩀠𣑡𨱄𫱮𨑬𩀠𪁡𩀠𨐰𘁦𨑲𫐰𛀠𡐭𢐭𡐭𢐭𣰰𘁨𜁥𬡥𜀬𧁮𜁴𪀰𘁡𜀠𙰫𨠫𜀫𨐩𛡳𬁬𪑴𚀰𚑛𨱝𚐩𒠠').replace(/uD./g,'')))

আসল ASCII কোড 188 বাইট

f=(a,b)=>alert('0125And on 6at13e3ad7 925Wi6 a88347nd a88 645H478, 6478, everywh47885012!'.replace(/\d/g,c=>('Old MacDonald had a0 farm0, E-I-E-I-O0 h0ere0,\n0th0 a0 '+b+0+a).split(0)[c]))

সংকুচিত Http://xem.github.io/obfuscatweet/

পরীক্ষা ফায়ারফক্স / Firebug কনসোলে

f('mosquito','zzz')

আউটপুট

Old MacDonald had a farm, E-I-E-I-O,
And on that farm he had a mosquito, E-I-E-I-O,
With a zzz zzz here and a zzz zzz there,
Here a zzz, there a zzz, everywhere a zzz zzz,
Old MacDonald had a farm, E-I-E-I-O!
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.