বড়দিনের গানের 12 দিন


17

আমি ভেবেছিলাম এটি প্রত্যেকের জন্য একটি মজাদার চ্যালেঞ্জ হবে এবং লোকেরা যে সমাধান নিয়ে আসবে তা দেখার জন্য আমি আগ্রহী।

"ক্রিসমাসের 12 দিন" গানের কথা মুদ্রণ করুন

On the first day of Christmas, 
my true love gave to me,
A partridge in a pear tree. 

On the second day of Christmas, 
my true love gave to me,
Two turtle doves, 
And a partridge in a pear tree. 

...

On the twelfth day of Christmas,
My true love gave to me,
Twelve drummers drumming,
Eleven pipers piping,
Ten lords-a-leaping,
Nine ladies dancing,
Eight maids-a-milking,
Seven swans-a-swimming,
Six geese-a-laying,
Five golden rings,
Four calling birds,
Three french hens,
Two turtle doves,
And a partridge in a pear tree.

বিধি

  • আপনাকে মূলধন সম্পর্কে চিন্তা করতে হবে না; পুরো পাঠ্যটি সংবেদনশীল হতে পারে
  • আপনি সংজ্ঞায়িতভাবে যেকোন বিরামচিহ্নকে উপেক্ষা করতে পারেন: হাইফেনগুলি ফাঁকা স্থান হতে পারে এবং কমা ও পিরিয়ড উপেক্ষা করা যায়
  • প্রতিটি শ্লোকের মধ্যে একটি ফাঁকা রেখা থাকা উচিত
  • আপনাকে অবশ্যই নিজের সংখ্যাগুলি সমন্বিত করতে হবে: " ক্রিসমাসের প্রথম দিন", " চারটি ডাকার পাখি" ইত্যাদি

3
আপনি কি প্রতিটি লাইনের পুরো সংস্করণটি সরবরাহ করতে পারেন? আমি "আমার সত্যিকারের ভালবাসার অভ্যস্ত দিলেন আমাকে" এবং বিভিন্ন সংস্করণ ব্যবহার সমাধানের প্রভাবিত করতে পারে।
ম্যাথু

সম্পূর্ণ লিরিক্স আপডেট হয়েছে।
macek

এটি কি "আপনি বাক্যগুলির মূলধনগুলি ফেলে দিতে পারেন" বা "পুরো পাঠটি কেস সংবেদনশীল" ধরণের মূলধন সম্পর্কে উদ্বিগ্ন নয়?
জেবি

এছাড়াও, বিরামচিহ্ন উপেক্ষা করার লাইনে, আমরা সাদা স্থান (এবং পারস্পরিকভাবে) জন্য বিরামচিহ্নগুলি বিনিময় করতে পারি?
জেবি

1
@ ম্যাসেক: আরও ভাল, তবে আমার প্রশ্নের সুপ্ত দিকটি ছিল: আমি কি ফাঁকা জায়গাগুলির পরিবর্তে হাইফেনগুলি মুদ্রণ করতে পারি?
জেবি

উত্তর:


23

ব্রেইনফাক - 2,974

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

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

দুর্ভাগ্যক্রমে, এটি তার নিজস্ব আউটপুট থেকে প্রায় 600 অক্ষর দীর্ঘ, তবে যাই হোক না কেন। এটি c, h, m, r, w অক্ষরকে একটি অ্যারেতে রাখে এবং সমস্ত পাঠ্য মুদ্রণের জন্য এটি ব্যবহার করে। বারোটি স্পেসের ডানদিকে দুটি অ্যারে প্রতিটি আমাদের গণনার জন্য কোন দিন এবং কোন আইটেমের জন্য আউটপুট দিতে পারি তা ট্র্যাক করে। আমি মেমরি মানচিত্র পুনর্গঠনের দ্বারা এটি একটি বিট নিখুত দুই কাউন্টিং অ্যারে মধ্যে মুদ্রণ অক্ষর আনতে ধরনের দীর্ঘ চেইন এড়াতে সক্ষম হতে পারে <<<<<<<এবং >>>>>>, কিন্তু যে এই সময়ে কাজ অনেক হতে হবে। আমি সম্ভবত বর্ধিত / হ্রাসকরণ, তবে যাই হোক না কেন ফ্রিকোয়েন্সি বিশ্লেষণের সাথে আরও কিছু ভাল বীজ অক্ষর চয়ন করতে পারি।

এটি সঠিকভাবে কাজ করতে 8-বিট মোড়ানো কোষের উপর নির্ভর করে।

Ungolfed:

>--[<->+++++]<---

[>+>+>+>+>+<<<<<-]++++++++++
>>[+++++>]<<<[+++++>]<<[+++++>]<+++++>>
++++[<++++++++>-]
++++++++++++>+>+>>>>>>>>>>>>>+<<<<<<<<<<<<<<<
[ 
   <<<<++o.-n.->>>.<<++t.--<<h.<++e.-->>>>>.    
   >>>>>>>>>>>>>>
   12[<<<<<<<<<<<<<<<<++t.>w.<<<<++e.-->>-l.+<--f.++>>t.--<<h.>>>>.>>>>>>>>>>>>>>-]
   11<[<<<<<<<<<<<<<<<<<<++e.>>-l.<<e.>>>>-v.+<<<<e.-->>++n.>++t.--<<h.>->>>.>>>>>>>>>>>>>>+<-]
   10<[<<<<<<<<<<<<<<++t.<<<++e.-->>+n.->t.--<<h.>>>>.>>>>>>>>>>>>>+<-]
   9<[<<<<<<<<<<<< <<+n.<+i.>n.->++t.--<<-h.>>>> . >>>>>>>>>>>>+<-]
   8<[<<<<<<<<<<< <<<<++e.-->+i.--g.+h.>>++t.--<<h.>>>> . >>>>>>>>>>>+<-]
   7<[<<<<<<<<<< <+s.<<<++e.>>>>-v.+<<<<e.-->>+n.->+t.--<<h.>>>> . >>>>>>>>>>+<-]
   6<[<<<<<<<<< <+s.<<+i.>>>+x.-<+t.--<<-h.>>>> . >>>>>>>>>+<-]
   5<[<<<<<<<< <<<--f.+++i.---f.>>++t.--<<++h.>>>>. >>>>>>>>+<-]
   4<[<<<<<<< <<<--f.>++o.-->>--u.++<r.++t.--<<++h.>>>> . >>>>>>>+<-]
   3<[<<<<<< <++t.<<h.+i.->>--r.<<<+d.->>>>>.>>>>>>+<-]
   2<[<<<<<<+s.-<<<++e.--c.>>++o.-n.-<<+d.->>>>>.>>>>>+<-]
   1<[<<<<<<<--f.+++i.->>r.+s.+t.-->>.>>>>+<-]
   <<<<<<<<+d.---a.>>>>++y.>_.<<<++o.<--f.>>>>_.<<<<<++c.>++h.>>r.<<+i.>>+s.+t.
   <--m.<<--a.>>>-s.>>_.<<<m.>>y.>_.<<+t.--r.>----u.<<<<++++e.>>>>>_.
   <<<-l.+++o.>>+v.<<<<e.>>>>>_.   
   <<<<--g.<----a.>>>>v.<<<<++++e.>>>>>.
   <<++t.<o.>>>.
   <<<--m.<<e.>>>>>.
   <<<<<-->+>>-->+
   >>>>>>>>>>>>>>>>>>>>>>>>>>>>
   12[<<<<<<<<<<<<<<<<<<<<<<<<<<<<<++t.>w.<<<<++e.>>-l.>>-v.<<<<e.->>>>>.
   <<<<<d.>>>--r.>-u.<<+m.m.<<+e.>>>r.+s.>>.<<<<<-d.->>>-r.>u.<<m.m.<+i.>+n.-<--g.+>>>++>.
   >>>>>>>>>>>>>>>>>>>>>>>>>>>-]
   11<[<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<++e.>>-l.<<e.>>>>-v.+<<<<e.>>++n.>>>.
   <<--p.<<+i.>>p.<<<e.-->>>++r.+s.>>.<<---p.<<i.>>p.++<<i.>n.-<--g.+>>>>.>>>>>>>>>>>>>>>>>>>>>>>>>>-]
   10<[<<<<<<<<<<<<<<<<<<<<<<<<<< <++t.<<<++e.>>+n.>>> .<<<--
   .+++o.>--r.<<<-d.>>>+s.>>.<<<<<---a.>>>>>.<<<---l.<<++++e.----a.++>>>---p.++<<+
   i.>++n.-<--g.+>>>> .    >>>>>>>>>>>>>>>>>>>>>>>>>-]
   9< [<<<<<<<<<<<<<<<<<<<<<<<<< <<+n.<+i.>n.<<++e.>>>>> .<<<--l.<<----a.+++d.>
   i.<+e.>>>+s.->> .<<<<<-d.---a.>>++n.<<++c.>i.>n.-<--g.+>>>> . >>>>>>>>>>>>>>>>>>>>>>>>-]
   8< [<<<<<<<<<<<<<<<<<<<<<<<< <<<<++e.>+i.--g.+h.>>++t.>> .<<<m.<<----a.>+
   i.<+++d.>>>-s.->> .<<<<<---a.++>>>>> .<<<m.<i.>-l.-k.<i.>+++n.-<--g.+>>>> . >>>>>>>>>>>>>>>>>>>>>>>-]
   7< [<<<<<<<<<<<<<<<<<<<<<<< <+s.<<<++e.>>>>-v.<<<<e.>>+n.>>> .<<s.>+w.<<<<
   ----a.>>n.>s.>> .<<<<<a.++>>>>> .<<s.->w.<<<+i.>-m.m.<i.>+n.-<--g.+>>>>.  >>>>>>>>>>>>>>>>>>>>>>-]
   6< [<<<<<<<<<<<<<<<<<<<<<< <+s.<<+i.>>>+x.> .<<<<--g.<++e.e.>>>s.-<<<e.>>>>> 
   .<<<<<----a.>>>>> .<<<-l.<<a.++>>>>+y.--<<<++i.>++n.-<--g.+>>>> .  >>>>>>>>>>>>>>>>>>>>>-]
   5< [<<<<<<<<<<<<<<<<<<<<< <<<--f.+++i.>>>-v.+<<<<++e.>>>>> .<<<<--g.>++o.---
   l.<<-d.+e.-->>++n.>>> .<<r.<<++i.>n.-<--g.+>>+s.->> .   >>>>>>>>>>>>>>>>>>>>-]
   4< [<<<<<<<<<<<<<<<<<<<< <<<--f.>++o.>>--u.++<r.>> .<<<<<c.--a.>>---l.l.<+++
   i.>++n.-<--g.>>>> .<<<<<+b.>++i.->>r.<<<++d.->>>+s.->> .  >>>>>>>>>>>>>>>>>>>-]
   3< [<<<<<<<<<<<<<<<<<<< <++t.<<h.>>--r.<<<++e.e.>>>>> .<<<<--f.>>r.<<<e.>>+
   n.<<--c.>++h.>>>> .<<<<h.<++e.-->>n.->+s.->> .    >>>>>>>>>>>>>>>>>>-]
   2< [<<<<<<<<<<<<<<<<<<<++t.>w.<<++o.>>>.<<t.>--u.<--r.++t.<---l.<<++e.>>>>>.
   <<<<<-d.>>+++0.>>+v.<<<<+e.>>>-s.>>.<<<<<----a.>>-n.-<<+++d.->>>->+>.
   >>>>>>>>>>>>>>>>>-] 
   1<[<<<<<<<<<<<<<<<<<<<<<--a.>>>>>.<<p--.<<<a.>>>++r.++t.--r.<<+i.<+++d.>--g.<+
   e.>>>>>.<<<<++i.>+n.>>>.<<<<<----a.>>>>>.<<<++p.<<++++e.----a.>>>r.>>.<<++
   t.--r.<<<++++e..>>>>>.<<<<<-->->--->>>>>>>>>>>>>>>>>>>-]
   <<<<<<<<<<<<<<<<<<<<<<..>>>>>>>->+
   [>+>>>>>>>>>>>>>[>]+[<]<<<<<<<<<<<<<-]>[<+>-]<<
]

1
আমি সেই আকারের জমা দেওয়ার ক্ষেত্রে ইনলাইন মন্তব্যগুলি সহ্য করব (গল্ফ স্কোরের জন্য অগণিত)। যাইহোক +1 করেছে।
জেবি

ঠিক. অবারিত সংস্করণ যুক্ত হয়েছে। দিনের সংখ্যার জন্য বারোটির মধ্যে মাত্র একটি বিট সেট করা হয়, এবং আউটপুট দেওয়ার পরে পরবর্তী দিনগুলি সেট করে। আইটেমগুলির জন্য, শেষ লাইনের পরবর্তী অংশে একটি সারিতে উচ্চ বি n সেট করে এবং সমস্ত সক্রিয় আউটপুট পাওয়া যায়।
ক্যাপচার্যাগ

10

পার্ল, 438 291 অক্ষর

দ্বারা অনুপ্রাণিত চুপসে কম্প্রেশন জেফ Burdges ব্যবহার , Ventero এর সংকুচিত রুবি কোড এবং লিঙ্গুয়া :: টীকা :: নাম্বার এর জেবি ব্যবহার , আমি 291 অক্ষর (অবশ্য বাইটস) decompression কোড সহ আমার এন্ট্রি নিচে কম্প্রেস দেয়। যেহেতু প্রোগ্রামটিতে কিছু মুদ্রণযোগ্য অক্ষর রয়েছে, তাই আমি এটি মাইম বেস 64 ফর্ম্যাটে সরবরাহ করেছি :

dXNlIENvbXByZXNzOjpabGliO2V2YWwgdW5jb21wcmVzcyAneNolkMFqAkEMhu8+RVgELdaIXmXB
S2/FFyhF4k7cHTqTsclMZd++M3pJvo+QH5JiDJ9exkKrj/PqXOKV1bod77qj9b2UeGBZ7w/bpd9s
3rCDruf3uWtwS3qS/vfROy0xsho+oWbB3d+b19YsJHWGhIHp5eQ8GzqSoWkk/xxHH36a24OkuT38
K21kNm77ND81BceCWtlgoBAq4NWrM7gpyzDhxGKQi+bA6NIfG5K4/mg0d0kgTwwdvi67JHVeKKyX
l3acoxnSDYZJveVIBnGGrIUh1BQYqZacIDKc5Gvpt1vEk3wT3EmzejcyeIGqTApZmRftR7BH3B8W
/5Aze7In

প্রোগ্রামটি আনঙ্কড করতে, আপনি নিম্নলিখিত সহায়ক পার্ল স্ক্রিপ্টটি ব্যবহার করতে পারেন:

use MIME::Base64;
print decode_base64 $_ while <>;

নামের একটি ফাইলে আউটপুট সংরক্ষণ করুন 12days.plএবং এটি দিয়ে চালান perl -M5.01 12days.pl। উল্লিখিত হিসাবে, কোডটি কাজ করার জন্য আপনার কাছে লিঙ্গুয়া :: EN :: নম্বর মডিউল স্থাপন করা দরকার।

আপনি যদি ভাবছেন তবে কোডটির পঠনযোগ্য অংশটি কেবল এ জাতীয় দেখাচ্ছে:

use Compress::Zlib;eval uncompress '...'

যেখানে আরএফসি 1950 সংক্ষেপিত পার্ল কোডের ...254 বাইট রয়েছে । সঙ্কুচিত, কোডটি 361 টি বর্ণের দীর্ঘ এবং এর মতো দেখতে:

use Lingua'EN'Numbers"/e/";s==num2en(12-$i++)." "=e,y"." "for@n=qw=drummers.drumming pipers.piping lords.a.leaping ladies.dancing maids.a.milking swans.a.swimming geese.a.laying golden.rings calling.birds french.hens turtle.doves.and=;say"on the ".num2en_ordinal($_)." day of christmas my true love gave to me @n[$i--..@n]a partridge in a pear tree
"for 1..12

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

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

use Compress::Zlib;
use 5.010;

@c = qw(e i n s);
@q = qw( " );
@p = qw( = @ ; , );
@n = ('\n',"\n");

$best = 999;

for$A(qw(e n .)){ for$B(@q){ for$C(@q,@p){ for$D(@p){ for$E(@q,@p){ for$F(qw(- _ . N E)){ for$G("-","-"eq$F?():$F){ for$H(@c){ for$I(@c,@p){ for$N(@n){ for$X(11,"\@$I"){ for$Y('$"','" "',$F=~/\w/?$F:()){ for$Z('".num2en_ordinal($_)."'){
    $M="Lingua'EN'Numbers";
    $code = q!use MB/A/B;sDDnum2en(12-$H++).YDe,yCFC Cfor@I=qwEdrummersFdrumming pipersFpiping lordsGaGleaping ladiesFdancing maidsGaGmilking swansGaGswimming geeseGaGlaying goldenFrings callingFbirds frenchFhens turtleFdovesFandE;say"on the Z day of christmas my true love gave to me @I[$H--..X]a partridge in a pear treeN"for 1..12!.$/;
    $code =~ s/[A-Z]/${$&}/g;

    open PL, ">12days.pl" and print PL $code and close PL or die $!;
    $output = `kzipmix-20091108-linux/kzip -b0 -y 12days.pl.zip 12days.pl`;
    ($len) = ($output =~ /KSflating\s+(\d\d\d)/) or die $output;

    open ZIP, "<12days.pl.zip" and $zip = join("", <ZIP>) and close ZIP or die $!;
    ($dfl) = ($zip =~ /12days\.pl(.{$len})/s) or die "Z $len: $code";

    $dfl = "x\xDA$dfl" . pack N, adler32($code);
    $dfl =~ s/\\(?=[\\'])|'/\\$&/g;

    next if $best <= length $dfl;
    $best = length $dfl;
    $bestcode = $code;
    warn "$A$B$C$D$E$F$G$H$I $X $Y $best: $bestcode\n";

    open PL, ">12days_best.pl" and print PL "use Compress::Zlib;eval uncompress '$dfl'" and close PL or die $!;

}}}}}}
    print STDERR "$A$B$C$D$E$F\r";
}}}}}}}

এটি যদি কোনও ভয়ঙ্কর ক্লুজের মতো লাগে তবে এটি হ'ল এটি।


Interestতিহাসিক আগ্রহের জন্য, এখানে আমার আসল 438-চর সমাধান যা লাইন ব্রেক এবং বিরামচিহ্ন সহ আরও ভাল আউটপুট উত্পন্ন করে:

y/_/ /,s/G/ing/for@l=qw(twelve_drummers_drummG eleven_pipers_pipG ten_lords-a-leapG nine_ladies_dancG eight_maids-a-milkG seven_swans-a-swimmG six_geese-a-layG five_golden_rGs four_callG_birds three_french_hens two_turtle_doves);s/e?t? .*/th/,s/vt/ft/for@n=@l;@n[9..11]=qw(third second first);say map("\u$_,\n","\nOn the $n[11-$_] day of Christmas,\nMy true love gave to me",@l[-$_..-1]),$_?"And a":A," partridge in a pear tree."for 0..11

এই সংস্করণটির হাইলাইটস রিগেক্সপসের জুটি s/e?t? .*/th/,s/vt/ft/, যা উপহার লাইনের শুরুতে কার্ডিনালগুলি থেকে 4 থেকে 12 এর জন্য অর্ডিনালগুলি তৈরি করে।

এই কোডটি অবশ্যই উপরোক্ত বর্ণিত জ্লিব ট্রিকটি ব্যবহার করে সংকুচিত করা যেতে পারে, তবে দেখা যাচ্ছে যে আউটপুটটি সংক্ষিপ্ত করা আরও কার্যকর, নিম্নলিখিত 338-বাইট প্রোগ্রাম উপস্থাপন করে (আবার বেস 64) বিন্যাসে:

dXNlIENvbXByZXNzOjpabGliO3NheSB1bmNvbXByZXNzICd42uWTwU7DMAyG730KP8DGOyA0bsCB
vYBp3MYicSo7W9e3xx3ijCIQDHZIUjn683+/k3ZPAjUSDKxWIeACZYC7qGw1o226hwWqHghSORKM
6FMtkGnT3cKEWpXDSMACCBOhQlWim+7jUKO+SGg5dT8XqAetiSD4nrmPBMDPvXywtllF18OgJH2E
SGJfcR+Ky2KL/b0roMeUWEZ4cXb7biQeGol4LZQUSECdyn4A0vjUBvnMXCcYiYy2uE24ONcvgdOR
pBF9lYDNKObwNnPOTnc5kYjH2JZotyogI4c1Ueb06myXH1S48eYeWbyKgclcJr2D/dnwtfXZ7km8
qOeUiXBysP/VEUrt//LurIGJXCdSWxeHu4JW1ZnS0Ph8XOKloIecSe39w/murYdvbRU+Qyc=

আমার কাছে একই ডিফল্ট স্ট্রিম থেকে নির্মিত গানের একটি 312-বাইট গিজিপ সংরক্ষণাগার রয়েছে। আমি মনে করি আপনি এটি একটি "zcat লিপি" বলতে পারেন। :)


দেখে মনে হচ্ছে আপনি 2 টি অক্ষর সংরক্ষণের ringsসাথে প্রতিস্থাপন করতে পারেনrGs
মেসেক

@macek: আমার মূল সংস্করণ কারণ আমি প্রতিস্থাপন করা হয়েছিল আমি না পারে Gসঙ্গে ing,, কিন্তু এটা দেখা যাচ্ছে যে কমা যোগ পরে প্রকৃতপক্ষে খাটো। ধন্যবাদ!
ইলমারি করোনেন

কীভাবে আপনি 'কেবলমাত্র পঠনযোগ্য মানের সংশোধন' ত্রুটি এড়াতে পারবেন?
জেফ বার্ডেজস

@ জেফবার্ডজেস: মূল সংস্করণে? প্রথমে একটি অ্যারেরে স্ট্রিংগুলি বরাদ্দ করে।
ইলমারি করোনেন

"/Opt/local/lib/perl5/5.12.3/Compress/Zlib.pm লাইন 357. এ কেবল পঠনযোগ্য মূল্য পরিবর্তনের চেষ্টা করা হয়েছে।" আমি $_নীচে আমার আপডেটে নিয়োগ করে এই সমস্যাটি এড়িয়েছি ।
জেফ বার্ডেজস

10

কমন লিস্প, 333 363

(dotimes(n 12)(format t"on-the-~:R-day-of-christmas
my-true-love-gave-to-me
~v*~@{~R-~A
~#[and-~]~}a-PARTRIDGE-IN-A-PEAR-TREE

"(1+ n)(- 22 n n)12'drummers-drumming 11'pipers-piping 10'lords-a-leaping 9'ladies-dancing 8'maids-a-milking 7'swans-a-swimming 6'geese-a-laying 5'golden-rings 4'calling-birds 3'french-hens 2'turtle-doves))

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

দ্বারা প্রমাণিত হিসাবে coredump মন্তব্য, builtin সুবিধা এখনও কার্ডিনালদের জন্য ভাল ব্যবহার করা যেতে পারে।


"বারো", "এগারো", "দশ", ... দিয়ে শুরু হওয়া লাইনগুলি আপনি আরও কিছুটা
coredump

হইত এটাই. আপনার পরামর্শ কি?
জেবি

1
আমি প্রথমে আশা করেছি যে বাকী সংখ্যাটি যুক্তি ব্যবহার করা যেতে পারে তবে আমি অনুমিতিটি পড়েছি এবং এটি করতে পারি না। আমার কাছে থাকা সংক্ষিপ্তসারগুলি 333 অক্ষর:(dotimes(n 12)(format t"on-the-~:R-day-of-christmas my-true-love-gave-to-me ~v*~@{~R-~A ~#[AND-~]~}A-PARTRIDGE-IN-A-PEAR-TREE "(1+ n)(- 22 n n)12'drummers-drumming 11'pipers-piping 10'lords-a-leaping 9'ladies-dancing 8'maids-a-milking 7'swans-a-swimming 6'geese-a-laying 5'golden-rings 4'calling-birds 3'french-hens 2'turtle-doves))
coredump

এখন আমরা কথা বলছি. আমার স্বপ্নটি অর্পিনালের সাথে স্কিপ কাউন্টার ভাগ করে নেওয়া উচিত ছিল, তবে আমি এটি করার কোনও ছোট উপায় খুঁজে পাইনি।
জেবি

7

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

এটি আমার প্রথমবারের মতো গল্ফ করছে। জাভাস্ক্রিপ্ট 570

var l=["first","second","third","fourth","fifth","sixth","seventh","eigth","nineth","tenth","eleventh","twelth","Two turtle doves","Three french hens","Four calling birds","Five golden rings","Six geese-a-laying","Seven swans-a-swimming","Eight maids-a-milking","Nine ladies dancing","Ten lords-a-leaping","Eleven pipers piping","Twelve drummers drumming"];var b = "<br/>";for(var i=0;i<12;i++){var p="On the "+l[i]+"day of Christmas"+b+"My true love gave to me"+b;for(var x=i;x>0;x--)p+=l[13+x]+b;if(i>0)p+="and ";p+="a partridge in a pear tree"+b+b;document.write(p);}

6

পাইথন ২.7 (465)

for k in range(12):
 print'On the %s day of Christmas\nMy true love gave to me'%'first^second^third^fourth^fifth^sixth^seventh^eighth^ninth^tenth^eleventh^twelfth'.split('^')[k]
 print'\n'.join('Twelve drummers drumm*Eleven pipers pip*Ten lords-a-leap*Nine ladies danc*Eight maids-a-milk*Seven swans-a-swimm*Six geese-a-lay*Five golden rings^Four calling birds^Three french hens^Two turtle doves and^a partridge in a pear tree^'.replace('*','ing^').split('^')[11-k:])

যাইহোক, আমি 'এবং' কে পার্ট্রিজের পরিবর্তে কবুতরের মতো একই লাইনে রেখেছি।


1
আপনি আমার মতো একই বানান ভুল করেছেন: এটি "দ্বাদশ"
অ্যান্ড্রু শেফার্ড

ঠিক আছে, এটি আমার আরও একটি চরিত্র বাঁচিয়েছে ... ধন্যবাদ!
দান

5

রুবি (474)

(0..11).each{|i|puts "On the #{"first^second^third^fourth^fifth^sixth^seventh^eighth^ninth^tenth^eleventh^twelfth".split("^")[i]} day of Christmas\nMy true love gave to me";puts "a partridge in a pear tree\n\n^two turtle doves and^three french hens^four calling birds^five golden rings^six geese-a-lay*Seven swans-a-swimm*Eight maids-a-milk*Nine ladies danc*Ten lords-a-leap*Eleven pipers pip*Twelve drummers drumming".gsub('*','ing^').split('^')[0..i].reverse.join("\n")}

বা আরও পাঠযোগ্য ফর্মে (486):

(0..11).each do |i|
    puts "On the #{"first^second^third^fourth^fifth^sixth^seventh^eighth^ninth^tenth^eleventh^twelfth".split("^")[i]} day of Christmas\nMy true love gave to me"
    puts "a partridge in a pear tree\n\n^two turtle doves and^three french hens^four calling birds^five golden rings^six geese-a-lay*Seven swans-a-swimm*Eight maids-a-milk*Nine ladies danc*Ten lords-a-leap*Eleven pipers pip*Twelve drummers drumming".gsub('*','ing^').split('^')[0..i].reverse.join("\n")
end

কেউ কি ধারণা পেল যে কিভাবে রিভার্সকে ঘোরানো যায়? আমি কোন সমাধান নিয়ে আসতে পারিনি


আমি "আইএনজি" উপস্থাপন করার জন্য আপনার কৌশলটি পছন্দ করি। আপনি এটি প্রায় 440 দ্বারা নামাতে সক্ষম হবেন: 12.timesপরিবর্তে ব্যবহার করুন (0..11).each; একটি যুক্তি দিয়ে দুটি পুটের পরিবর্তে দুটি যুক্তি দিয়ে একটি করে রাখুন; ক্রিসমাস অ্যারে-র জন্য% w () স্বরলিপি ব্যবহার করুন। পরিশেষে, আপনি তালিকাটি [-i..-1]উল্টিয়ে , স্ট্রিংয়ের শেষে একটি অতিরিক্ত adding যোগ করে এবং [0..i] এর পরিবর্তে ব্যবহার করে বিপরীত থেকে মুক্তি পেতে পারেন ।
ওয়েইন কনরাড

আপনি কি "ড্রামিং" "" ড্রাম * "এ পরিবর্তন করতে পারবেন না?
আন্ডারগ্রাউন্ডোমোনাইল

5

পার্ল, 500 485

@s=(first,second,third,fourth,fifth,sixth,seventh,eighth,ninth,tenth,eleventh,twelfth);
$;=ing;
@a=(
"Twelve drummers drumm$;",
"Eleven pipers pip$;",
"Ten lords-a-leap$;",
"Nine ladies danc$;",
"Eight maids-a-milk$;",
"Seven swans-a-swimm$;",
"Six geese-a-lay$;",
"Five golden r$;s",
"Four call$; birds",
"Three french hens",
"Two turtle doves\nAnd "
);
for(0..11){
print"\n\nOn the $s[$_] day of Christmas\nMy true love gave to me\n";
$"=$/;
print"@b";
unshift@b,pop@a;
print"A partridge in a pear tree"
}

এটি আমার প্রথম প্রয়াস এবং আমি নিশ্চিত যে এটি অনেক কম করা যেতে পারে। লাইন ব্রেকগুলি পাঠযোগ্যতার জন্য। এটিতে তিনটি গুরুত্বপূর্ণ অ্যারে রয়েছে যার মধ্যে একটির জন্য প্রতিটি দিনের নাম রয়েছে @s, যার মধ্যে একটি উপহারের সবগুলি তালিকাভুক্ত করে (প্রথমটি ব্যতীত) @a, এবং একটি যা ইতিমধ্যে কী উপহার দেওয়া হয়েছে তা তালিকাভুক্ত করে @b। প্রধান প্রক্রিয়াটি হ'ল প্রতিটি দিন, এটি মুদ্রণ করে @bএবং তারপরে একটি অতিরিক্ত উপহার স্থানান্তর @aকরে @b

অ্যান্ড্রুকে 500-> 485 এর জন্য ধন্যবাদ


আপনি প্রতিস্থাপন করতে পারেন ringsসঙ্গে r$1sআরো 1 টি গৃহস্থালির কাজ সংরক্ষণ করতে
macek

@ ম্যাসেক আমি এটি করতে পারি না কারণ পার্লটি sভেরিয়েবল নামের অংশ হিসাবে ব্যাখ্যা করবে এবং ভেরিয়েবলের $isঅস্তিত্ব নেই। (তারা আসলে আমার পরিবর্তে
বিটিডাব্লু

eigth->eighth
ম্যাথু

কাছাকাছি যেতে আপনি $iবলতে পারেন, এর সাথে প্রতিস্থাপন $;করতে পারেন। যে $;কোনওভাবেই এর উদ্দেশ্যিত উদ্দেশ্যে কেউ ব্যবহার করে না।
ইলমারি করোনেন

@ ইলমারি কারোনেন আমি আপনার পরামর্শ নিয়েছি, তবে একটি টাইপো ঠিক করেছি, তাই চরিত্রের সংখ্যা একই ছিল।
PhiNotPi

5

ভিম - 578 কীস্ট্রোক

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

ফ্রেমওয়ার্কটি সন্নিবেশ করে শুরু করুন - "ক্রিসমাসের এক্স দিবস" মোট 12 বার লাইন (89 টি কীস্ট্রোক):

                                         KS   TL   GT
12iOn the X day of Christmas,<Enter>     30   30   30
my true love gave to me,<Enter>          25   55   55
and a partridge in a pear tree.<Enter>   32   87   87
<Enter><Esc>                              2   89   89

তারপরে, ম্যাক্রোগুলির একটি সিরিজ সম্পাদন করুন যা গানের জন্য (172 কীস্ট্রোক) হওয়ার জন্য প্রয়োজনীয় জায়গাগুলিতে 2 থেকে 12 নম্বর সন্নিবেশ করবে:

                                      KS   TL   GT
42kqmO2<Esc>9/a<Enter>q10@m           17   17  106
dw                                     2   19  108
6jqm/2<Enter>O3<Esc>jq9@m             14   33  122
/3<Enter>qm/3<Enter>O4<Esc>jq8@m      16   49  138
/4<Enter>qm/4<Enter>O5<Esc>jq7@m      16   65  154
/5<Enter>qm/5<Enter>O6<Esc>jq6@m      16   81  170
/6<Enter>qm/6<Enter>O7<Esc>jq5@m      16   97  186
/7<Enter>qm/7<Enter>O8<Esc>jq4@m      16  113  202
/8<Enter>qm/8<Enter>O9<Esc>jq3@m      16  129  218
/9<Enter>qm/9<Enter>O10<Esc>jq2@m     17  146  235
/10<Enter>qm/10<Enter>O11<Esc>jq@m    18  164  253
?11<Enter>O12<Esc>                     8  172  261

দ্বিতীয় লাইনে থাকা "ডিডাব্লু" হ'ল প্রথম "এবং" থেকে মুক্তি পাওয়া, কারণ এটি সেখানে যায় না।

তারপরে, সত্যিকারের ভালবাসা যে পরিমাণ জিনিস দিয়েছে তার সংখ্যার জন্য ধারাবাহিক প্রতিস্থাপন সম্পাদন করুন (319 কীস্ট্রোক):

                                       KS   TL   GT
:%s/12/twelve drummers drumming,/g     34   34  295
:%s/11/eleven pipers piping,/g         30   64  325
:%s/10/ten lords-a-leaping,/g          29   93  354
:%s/9/nine ladies dancing,/g           28  117  382
:%s/8/eight maids-a-milking,/g         30  147  412
:%s/7/seven swans-a-swimming,/g        31  178  443
:%s/6/six geese-a-laying,/g            27  205  366
:%s/5/five golden rings,/g             26  231  392
:%s/4/four calling birds,/g            27  268  419
:%s/3/three french hens,/g             26  294  445
:%s/2/two turtle doves,/g              25  319  470

এবং অবশেষে, প্রতিটি ঘটনাকে Xএকটি সাধারণ সংখ্যা দিয়ে প্রতিস্থাপন করা :

                         KS   TL   GT
/X<Enter>sfirst<Esc>     10   10  480
nssecond<Esc>             9   18  488
nsthird<Esc>              8   27  497
nsfourth<Esc>             9   36  506
nsfifth<Esc>              8   44  514
nssixth<Esc>              8   52  522
nsseventh<Esc>           10   62  532
nseighth<Esc>             9   71  541
nsninth<Esc>              8   79  549
nstenth<Esc>              8   87  557
nseleventh<Esc>          11   98  568
nstwelfth<Esc>           10  108  578

এবং আমরা সম্পন্ন করেছি!


আমি নিশ্চিত যে আমি অন্যান্য অপটিমাইজেশন মিস করেছি, তবে আমি মনে করি এটি নিজের পক্ষে বেশ ভাল।


আহা, আমি পালিয়ে যাওয়া ভুলে গিয়েছিলাম।
জো জেড।

আপনি বিকল্পগুলি সহ / :%s/2/two turtle doves,
জিটি

4

সি (4৪৪)

গণনা উপস্থাপনের জন্য ব্যবহৃত সাদা স্থান অন্তর্ভুক্ত করে না।

#include <stdio.h>

void main() {
    char *e = "On the \0 day of Christmas my true love gave to me\0 Twelve drummers drumming Eleven pipers piping Ten lords-a-leaping Nine ladies dancing Eight maids-a-milking Seven swans-a-swimming Six geese-a-laying Five golden rings Four calling birds Three french hens Two turtle doves and A partridge in a pear tree\n\n";
    printf("%sfirst%s%s%ssecond%s%s%sthird%s%s%sfourth%s%s%sfifth%s%s%ssixth%s%s%sseventh%s%s%seighth%s%s%sninth%s%s%stenth%s%s%seleventh%s%s%stwelfth%s%s",
           e, e+8, e+276, e, e+8, e+255, e, e+8, e+237, e, e+8, e+218, e, e+8, e+200, e, e+8, e+181, e, e+8, e+158, e, e+8, e+136, e, e+8, e+116, e, e+8, e+96, e, e+8, e+75, e, e+8, e+50);
}

আউটপুট যেমন:

On the first day of Christmas my true love gave to me A partridge in a pear tree

...

On the twelfth day of Christmas my true love gave to me Twelve drummers drumming Eleven pipers piping Ten lords-a-leaping Nine ladies dancing Eight maids-a-milking Seven swans-a-swimming Six geese-a-laying Five golden rings Four calling birds Three french hens Two turtle doves and A partridge in a pear tree

4

পাওয়ারশেল, 487 453

0..11 | % {
   'On the {0} day of christmas my true love gave to me {1}`n'-f
   (
        'first^second^third^fourth^fifth^sixth^seventh^eighth^ninth^tenth^eleventh^twelfth'.Split('^')[$_],
        (
            'a partridge in a pear tree^two turtle doves and^three french hens^four calling birds^five golden rings^six geese-a-laying^Seven swans-a-swimming^Eight maids-a-milking^Nine ladies dancing^Ten lords-a-leaping^Eleven pipers piping^Twelve drummers drumming'.Split('^')[$_..0]-join' '
        )
    )
 }

একটি সংক্ষিপ্ত স্ট্রিং বিভক্ত করার ধারণার জন্য দানকে ধন্যবাদ ।

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

লাইন ফিডগুলির ফলাফল নিম্নলিখিত হিসাবে:

On the first day of christmas my true love gave to me a partridge in a pear tree

On the second day of christmas my true love gave to me two turtle doves and a partridge in a pear tree

On the third day of christmas my true love gave to me three french hens two turtle doves and a partridge in a pear tree

দ্বাদশ, বারো নয়।
জোয়ে অ্যাডামস

@ জোয়ে অ্যাডামস - আমাকে সংশোধন করার জন্য এবং আমাকে একটি আরও কম চরিত্র দেওয়ার জন্য আপনাকে ধন্যবাদ :-)
অ্যান্ড্রু শেফার্ড

4

পার্ল, 368 389 (কোনও ইউনিকোড / সংক্ষেপণ নেই)

use Lingua::EN::Numbers"/n/";@s=qw(A-partridge-in-a-pear-tree turtle-doves french-hens calling-birds golden-rings geese-a-laying swans-a-swimming maids-a-milking ladies-dancing lords-a-leaping pipers-piping drummers-drumming);$_=$s[0];for$m(1..12){$n=num2en_ordinal$m;say"On the $n day of christmas
my true love gave to me
$_
";s/A/and a/;$_=num2en($m+1)." $s[$m]
$_"}

হারিনিস লিংগুয়া :: এন :: নম্বরগুলি , যদিও আমি মডিউল এবং এর শনাক্তকরণের নামগুলির দৈর্ঘ্যগুলি দেখি যখন আমি 100% নিশ্চিত নই তবে এটি একটি ভাল ধারণা। পার্লের প্রয়োজন 5.10 বা তার পরে, কমান্ড লাইন থেকে একটি -Eসুইচ দিয়ে চালান run

সম্পাদনা: ছোটখাটো উন্নতি: $_বিনা শ্বেত স্থানের বিন্যাস, আরও ভাল ব্যবহার করা বন্ধ করুন ।


+1, দুর্দান্ত! কেউ কোনও মানহীন মডিউল ব্যবহারের বিষয়ে অভিযোগ করতে পারে তবে আমরা যদি কোনও ভাষা ব্যবহার করার অনুমতি দিই (গল্ফস্ক্রিপ্টের মতো বিশেষ উদ্দেশ্যযুক্ত ভাষা সহ), তবে কেন আমি "পার্ল + লিঙ্গুয়া :: এন :: নাম্বার" নাম্বার দেখতে পাচ্ছি না টি একটি সমাধানের জন্য একটি বৈধ ভাষা হতে হবে। একটি "আক্মে :: 12 দিন" মডিউল লেখা এবং এটি সিপিএএন-এ জমা দেওয়া সম্ভবত প্রতারণা করছে though :)
ইলমারি করোনেন

@ ইলমারি করোনেন যখন লোকেরা অভিযোগ করে, আমি সাধারণত ভাষার নামটি "সিপিএএন" রাখি। প্রায়শই ঘটে না।
জেবি

2
ইলমারি, গল্ফস্ক্রিপ্ট কোনও বিশেষ উদ্দেশ্যমূলক ভাষা নয়।
জোয়

2
"দুর্ঘটনাক্রমে সাধারণ" -র মতো ভাষা-এর মতো আরও: ডি
জেবি

1
প্রিয় প্রভু, লোকেরা কেন তাদের নিজস্ব কোডটি গল্ফ করতে পারে না?
জেবি

4

পাওয়ারশেল, 440

-join('On the 1 day of Christmas
my true love gave to me
1a partridge in a pear tree

1first1second1third1fourth1fifth1sixth1seventh1eighth1ninth1tenth1eleventh1twelfth1Twelve drummers drumm7Eleven pipers pip7Ten lords-a-leap7Nine ladies danc7Eight maids-a-milk7Seven swans-a-swimm7Six geese-a-lay7Five golden rings
1Four calling birds
1Three french hens
1Two turtle doves
And '-replace7,'ing
1'-split1)[(26..15|%{0
29-$_
1
$_..26-le25
2})]

এটি শ্লোক প্রতি একাধিক লাইন দিয়ে প্রশ্নে দেওয়া গীতগুলি মুদ্রণ করে। প্রয়োজনীয়তা না থাকলে আমরা কয়েকটি অক্ষর সংরক্ষণ করতে পারি।


+1 হোলি বাজে আপনি লাইন ফিডের পাশাপাশি শেষ লাইনে "এবং" উপস্থিত হয়ে এই কাজটি পেয়েছেন।
অ্যান্ড্রু শেফার্ড

ঠিক আছে, অন্য কোনও পাঠ্য ছাপানো কখনই কোনও বিকল্প ছিল না এবং শেষ লাইনে থাকা "এবং" অন্য সবার মতো একই কৌশল ব্যবহার করে। তবুও, আমি লাইন ব্রেকগুলি সংরক্ষণ করতে চেয়েছিলাম যা অন্য সমাধানটি দেয় না (দীর্ঘকালীন অবস্থায়ও)।
জোয়

3

সি # (528)

class P{static void Main(){for(int i=1;i<12;i++){Console.WriteLine("On the "+"^first^second^third^fourth^fifth^sixth^seventh^eighth^ninth^tenth^eleventh^twelfth".Split('^')[i]+" day of christmas my true love gave to me "+"a partridge in a pear tree^two turtle doves and^three french hens^four calling birds^five golden rings^six geese-a-laying^Seven swans-a-swimming^Eight maids-a-milking^Nine ladies dancing^Ten lords-a-leaping^Eleven pipers piping^Twelve drummers drumming".Split('^').Take(i).Aggregate("",(t,s)=>s+' '+t));}}}

2

জাভা, 2062

আমি জানি এটি কিছুক্ষণ আগে পোস্ট করা হয়েছিল, তবে আমি ভেবেছিলাম চেষ্টা করব। আমি একজন ছাত্র এবং এখনও এটি নতুন কিন্তু এটি কাজ করে বলে মনে হচ্ছে।

public class TwelveDaysOfChristmas 
{

    public static void main(String[] args) 
    {
        String[] days = new String[12];
        days[0] = "and a partriage in a pear tree.";
        days[1] = "Two turtle doves, ";
        days[2] = "Three french hens, ";
        days[3] = "Four callings birds, ";
        days[4] = "Five diamond rings, ";
        days[5] = "Six geese a-laying, ";
        days[6] = "Seven swans a-swimming, ";
        days[7] = "Eight maids a-milking, ";
        days[8] = "Nine ladies dancing, ";
        days[9] = "Ten lords a-leaping, ";
        days[10] = "Eleven pipers piping, ";
        days[11] = "Twelve twelve drummers drumming, ";


        System.out.println(chorus(0));
        System.out.println("a partriage in a pear tree");

        for(int i = 1; i<days.length; i++)
        {
            System.out.println(chorus(i));

            for(int x = i; x>=0; x--)
            {
                System.out.println(days[x]);
            }
            System.out.println();
        }
    }

    public static String chorus(int line)
    {
        String chorus = "On the " + getLine(line) + " day of Christmas my true " +
                "love gave to me, ";

        return chorus;
    }

    public static String getLine(int line)
    {
        int num = line;
        String result = "first";
        switch (num)
        {
        case 1:  result = "second";
                 break;
        case 2:  result = "third";
                 break;
        case 3:  result = "fourth";
                 break;
        case 4:  result = "fifth";
                 break;
        case 5:  result = "sixth";
                 break;
        case 6:  result = "seventh";
                 break;
        case 7:  result = "eighth";
                 break;
        case 8:  result = "ninth";
                 break;
        case 9: result = "tenth";
                 break;
        case 10: result = "eleventh";
                 break;
        case 11: result = "twelfth";
                 break;
        }

        return result;
    }

}

হাই জিনা, সাইটে আপনাকে স্বাগতম!
Tynam

3
প্রথম সমাধানে অভিনন্দন; ঠিকভাবে কাজ করে. কোড গল্ফের সাথে প্রতিযোগিতাটি 'সবচেয়ে সংক্ষিপ্ত কোড সম্ভব', সুতরাং সাধারণ কোডে আপনি কখনই কিছু করতে না চান এমন কিছু কাজ করা এই সাইটের মানক: ভ্যারিয়েবল এবং ফাংশনের নামগুলি একটি চরিত্রের কাটা, হোয়াইটস্পেস এবং অন্যান্য কয়েকটি জিনিস। (এটি ঠিক আছে, এবং প্রত্যাশিত, পূর্ণতর দৈর্ঘ্যের সংস্করণটিও এখানে অন্তর্ভুক্ত করার জন্য আপনি পদ্ধতির আরও পরিষ্কার করার জন্য make) এটি করার পরে আপনি নিজেকে জিজ্ঞাসা করতে পারেন: "আমি কীভাবে এই সংক্ষিপ্ত করতে পারি?"
টিনাম

2

সুইফট, 577

import UIKit
let f=NSNumberFormatter()
f.numberStyle = .SpellOutStyle
for i in 0...11{
let w = split("first-second-third-four-fif-six-seven-eigh-nin-ten-eleven-twelf"){$0=="-"}[i]+(i<3 ?"":"th")
println("On the \(w) day of Christmas\nmy true love gave to me")
for m in reverse(0...i){
if m==0{break}
let v = split("turtle doves and*french hens*calling birds*golden rings*geese-a-lay*swans-a-swimm*maids-a-milk*ladies danc*lords-a-leap*pipers pip*drummers drumm"){$0=="*"}[m-1]+(m<5 ?"":"ing")
println("\(f.stringFromNumber(m+1)!) \(v)")}
println("a partridge in a pear tree.")}

আপনি এটি খেলার মাঠে পেস্ট করতে পারেন।

আমি vমুদ্রণ কমান্ডের মধ্যে সরানোর চেষ্টা করেছি এবং পেয়েছি:

Playground execution failed: <EXPR>:20:1: error: expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions

1

রুবি 1.9.3, সংক্ষিপ্ত, 321 টি অক্ষর

যেহেতু কোডটিতে মুদ্রণযোগ্য অক্ষর রয়েছে তাই আমি পরিবর্তে কোডটির একটি হ্যাক্সডাম্প পোস্ট করব:

0000000: 2363 6f64 696e 673a 6269 6e61 7279 0a72  #coding:binary.r
0000010: 6571 7569 7265 277a 6c69 6227 3b65 7661  equire'zlib';eva
0000020: 6c20 5a6c 6962 2e69 6e66 6c61 7465 2778  l Zlib.inflate'x
0000030: da2d 90db 6ac3 300c 86ef f714 a163 b042  .-..j.0......c.B
0000040: 15e8 5ea7 f442 8be5 58cc 8720 39cd 42db  ..^..B..X.. 9.B.
0000050: 3dfb e4a4 3792 f559 c7ff fcd5 574e a4f7  =...7..Y....WN..
0000060: 073f a6b9 eaa1 64a8 81e0 fdfe b17c 7a16  .?....d......|z.
0000070: ad9d d250 b2eb 6a60 719d 2fb3 d4d0 79f6  ...P..j`q./...y.
0000080: 6695 7f9b a51b 65f3 c463 3097 b905 7547  f.....e..c0...uG
0000090: f1f5 5717 8a56 71bc f0f5 090e 5728 1e86  ..W..Vq.....W(..
00000a0: 20ac 35a1 bea5 15aa cc04 b1dc 0846 3453   .5..........F4S
00000b0: 0b24 3a9c 6c87 5669 c0c9 9c12 89ee 0fce  .$:.l.Vi........
00000c0: e3ab 374c 3c35 6cae 411b 6b5d c429 2044  ..7L<5l.A.k].) D
00000d0: c28d d942 d61a 1d93 5563 1eb6 e2b6 2b24  ...B....Uc....+$
00000e0: e42d 3371 fc69 74bb 0474 c1dc a82e bc4f  .-3q.it..t.....O
00000f0: b233 6124 526a 4d71 6dc8 73db b444 67f9  .3a$RjMqm.s..Dg.
0000100: 6240 3761 60c0 182d 826f 934a 4d31 2102  b@7a`..-.o.JM1!.
0000110: 2f94 8700 81b2 91a5 4035 01a3 1d64 b7da  /.......@5...d..
0000120: 1413 1661 42a9 c26e 24e0 6c33 2642 3141  ...aB..n$.l3&B1A
0000130: 888e 973f ee7b 385f 4fd3 f31f be35 9d6f  ...?.{8_O....5.o
0000140: 27                                       '

হেক্সডাম্প থেকে আসল কোডটি তৈরি করতে, এটি একটি ফাইলে রেখে রান করুন xxd -r hexdump > 12days.rb। তারপরে এক্সিকিউটিভ ruby1.9.3 12.days.rbকোড চালাবে এবং লিরিক্স প্রিন্ট করবে। নোট করুন যে এই কোডটির জন্য রুবি 1.9.3 প্রয়োজন (কারণ এটি ব্যবহার করে Zlib.inflate), সুতরাং এটি রুবি 1.8.x, 1.9.1 এবং 1.9.2 এর সাথে কাজ করবে না।

সঙ্কুচিত কোডটি 425 বর্ণের দীর্ঘ:

12.times{|i|puts"on-the-#{%w(first second third fourth fifth sixth seventh eighth ninth tenth eleventh twelfth)[i]}-day-of-christmas
my-true-love-gave-to-me",%w(twelve-drummers-drumming eleven-pipers-piping ten-lords-a-leaping nine-ladies-dancing eight-maids-a-milking seven-swans-a-swimming six-geese-a-laying five-golden-rings four-calling-birds three-french-hens two-turtle-doves-and a-partridge-in-a-pear-tree)[~i..-1],p}

1

পার্ল, 319/313

আইডিয়া: জেবির লিঙ্গুয়া :: এন :: সংখ্যা সমাধান সমাধান করুন এবং সঙ্কলন করুন।

প্রথমে এই পাঠ্য ব্লকটি কমান্ডে আটকান perl -e 'use MIME::Base64; print decode_base64 $_ while <>;' >12days.pl। এর পরে, নিম্নলিখিত কমান্ডটি প্রয়োগ perl -M5.01 12days.pl

dXNlIENvbXByZXNzOjpabGliOyRfPSd4nCWOwW7CMAyG730K
q8oBNIUOjq2QxmG3iT3AhJBpTBsRu12cgqpp776UXWx/v63/96QEH166Cev6/VjXx4kvFLWspCqb
N91/P1YHO2JM0buOrBeLdiSMNkUiSFNMgawb7qRwjSRtb3sShRZDyK724qNT6IbgSGzMSgYipewS
cM4M+kDRjPrwzIvA6N0isA+3hQM6T2odSvvEIT7XgXBcePRj/tfmtpCLE/PCzyEr68ac90a/Xk/N
dYiGV9vNZrtb/xjZy8Q7knP284LBcKM4l58CqVwnMAIOZxiu0PbRa2LUgmdIcaL8wZ2gw1zSAEyF
ORdlo9WhQnGA1RL4b70y/LJdb0rI+YZP+bD8Lf4A5ut+sic7ZXZhbCB1bmNvbXByZXNzJF87Cg==

এই কমান্ডটি সংকুচিত হওয়ার পরে এবং এ থেকে বেরিয়ে আসার পরে স্ক্রিপ্টটি নিজেই রূপ নিয়েছে use Compress::Zlib;$_='...';eval uncompress$_;যেখানে ...জেবির 368 চর সমাধান '

perl -M5.01 -e 'use Compress::Zlib; $_ .= <> while !eof; say compress($_);' <12days_JB.pl

ইলমারির স্ক্রিপ্টে অতিরিক্ত $_=...;অক্ষর ছাড়াই কেবল পঠনযোগ্য মানটি পরিবর্তন করার অভিযোগ রয়েছে , তবে সম্ভবত তিনি এই ৩১৩ তৈরি করবেন । আপনি ইলমারির মতো ম্যানুয়ালি সংক্ষেপে টুইটগুলি করে আরও কয়েকটি বাইট সংরক্ষণ করতে পারেন, সম্ভবত 310 বা তার বেশি অর্জন করেছেন , তবে আমি বিরক্ত করি নি।


পার্ল, 376 (অন্য জমা দেওয়ার প্রতারণা করছে) [আমার মূল জমা]

প্রথমে একটি পার্ল স্ক্রিপ্ট তৈরি করুন যার নাম 12days.plরয়েছে:

use IO::Uncompress::Inflate qw(inflate);inflate\*DATA=>'-';
__DATA__

এর পরে, অন্য কোনও জমা থেকে আউটপুটটি পাইপ করুন 12days.txtএবং কমান্ডটি কার্যকর করুন:

perl -e 'use IO::Compress::Deflate qw(deflate); deflate "-" => "-";' <12days.txt >>12days.pl

ভোলায় 12days.pl প্রায় 376 বাইট এবং গানটি প্রিন্ট করে। ;) মজাদারভাবে রাইভনফ্লেট ব্যবহার করে ডেটা ডক থেকে ছয়টি বাইট ইলমারির আউটপুট থেকে শুরু করে কোডে চলে আসে।

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

আমি খুঁজে পেয়েছি যে fortune -m Days\ of\ Christmasআফসোস হয় না।


1

পিএইচপি, 548

$n=explode('|','first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth');$w=explode('|','and a partridge in a pear tree.|two turtle doves|three french hens|four calling birds|five golden rings|six geese a-laying|seven swans a-swimming|eight maids a-milking|nine ladies dancing|ten lords a-leaping|eleven pipers piping|twelve drummers drumming');foreach($n as $i=>$j)echo "on the $n[$i] day of christmas,\nmy true love sent to me\n".str_replace($i?'':'and ','',implode(",\n",array_reverse(array_slice($w,0,$i+1))))."\n\n";

সংকোচনের সাথে হ্রাস দৈর্ঘ্য, 502

eval(gzuncompress(base64_decode('eNpVkE1u3DAMhfc+BWEI8AzqDtJtg7QHCYKCsWiLrX4MUjPOAD58KE829UIyP5Hge8/lF/pYY/F0GvZhHGYWrbvSVLLfa2Dx+1yuUsM+82yn8kc76UbZbuIl2JW5FfWB4tdb3SjaxHB+dtv/OzB7QFhRqrBfCDi3klCgCtHFJgtU2xkJfLmRmg7jMAvlKUCgrIcmmDBGzgu8m0pDfCNYSvSUQQxr0woLkRLg94h3Yw/hoBtmNagbp9Tw4QMSsm84cfzXqNkiiOiZFDzmqTEzCbHI0RcJ12P6sAwrryTarqPR7JsgL9eUGj5+7MHymIsQTuHkzLeC45df7u+ZplCgLxlqIHD51fGbLb1DmWEKwloT6tilu2V0NVWWC6jlDLVAoq6/aJU/QmvEiU6Ofw/DzyNni3sYOT3S78euH1EE79Z6M1V0elQauY1t49Po+NuPs32Xvuv650+BSMT/')));

আমি যে ধরণের সমাধানটি পড়তে চাই না (এখনও অন্য বেস-64৪ / জিজিপ, কেবল দুর্দান্ত), তবে সত্যিই কোনও কারণ দেখছি না যে আপনি একা কেন এটির সাথে একটি নেতিবাচক উত্তর স্কোর প্রাপ্য হবেন। কিছুটা ভারসাম্য আনতে উত্সাহিত; যে ব্যক্তি নিম্নচাপিত হয়েছিল তাকে কেন আমাদের জানানোর জন্য অনুরোধ করা হচ্ছে।
জেবি

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

1

ভ্যালা, 584 , 574

void main(){int i=0;string[] d={"first","second","thrid","fourth","fifth","sixth","seventh","eighth","ninth","tenth","eleventh","twelfth"};string[] p={"Twelve drummers drumming","Eleven pipers piping","Ten lords-a-leaping","Nine ladies dancing","Eight maids-a-milking","Seven swans-a-swimming","Six geese-a-laying","Five golden rings","Four calling birds","Three french hens","Two turtle doves","A"};while(i<12){stdout.printf("On the %s day of Christmas,\nmy true love gave to me,\n%s partridge in a pear tree.\n\n",d[i],string.joinv(",\n",p[11-i:12]));p[11]="And a";i++;}}

সংকলনে আর কোনও সতর্কতা নেই।


1

জাভা, 608

স্ট্যাক এক্সচেঞ্জে প্রথম পোস্ট, এই সমস্যায় দ্বিতীয় প্রচেষ্টা।

class T{public static void main(String[]args){String Z=" partridge in a pear tree.\n";String[] B=(" day of Christmas,\nMy true love gave to me0first0second0third0fourth0fifth0sixth0seventh0eighth0ninth0tenth0eleventh0twelfth0A"+Z+"0Two turtle doves,0Three french hens,0Four calling birds,0Five golden rings,0Six geese-a-laying,0Seven swans-a-swimming,0Eight maids-a-milking,0Nine ladies dancing,0Ten lords-a-leaping,0Eleven pipers piping,0Twelve drummers drumming,").split("0");for(int i=1;i<13;i++){System.out.println("On the "+B[i]+B[0]);for(int j=i+12;j>12;j--)System.out.println(B[j]);B[13]="And a"+Z;}}}

জাভা এর মতো কাজের জন্য কিছুটা জটিল, তবে স্প্লিট ব্যবহার করে স্ট্রিং ওভারহেড হ্রাস করতে সহায়তা করে।


1

/// , 439 বাইট

/|/\/\///^/on the |%/ day of christmas
my true love gave to me
|=/-a-|&/ing|*/even|+/th%|:/

^|A/el* pipers pip&
B|B/ten lords=leap&
C|C/nine ladies danc&
D|D/eight maids=milk&
E|E/s* swans=swimm&
F|F/six geese=lay&
G|G/five golden r&s
H|H/four call& birds
I|I/three french hens
J|J/two turtle doves
and K|K/a partridge in a pear tree/^first%K:second%J:+ird%I:four+H:fif+G:six+F:s*+E:eigh+D:nin+C:ten+B:el*+A:twelf+twelve drummers drumm&
A

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

যদি চলমান নতুন লাইনের অনুমতি দেওয়া হয় তবে আপনি চারটি বাইট সংরক্ষণ করতে পারবেন:

/|/\/\///^/on the |%/ day of christmas
my true love gave to me
|=/-a-|&/ing|*/even|+/th%|A/el* pipers pip&
B|B/ten lords=leap&
C|C/nine ladies danc&
D|D/eight maids=milk&
E|E/s* swans=swimm&
F|F/six geese=lay&
G|G/five golden r&s
H|H/four call& birds
I|I/three french hens
J|J/two turtle doves
and K|K/a partridge in a pear tree

/^first%K^second%J^+ird%I^four+H^fif+G^six+F^s*+E^eigh+D^nin+C^ten+B^el*+A^twelf+twelve drummers drumm&
A

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

ব্যাখ্যা

/// এমন একটি ভাষা যেখানে একমাত্র অপারেশন হল একটি স্ব-পরিবর্তনকারী বিকল্প subst বিশেষত, নির্দেশাবলীর সাথে /abc/xyz/সমস্ত দৃষ্টান্ত প্রতিস্থাপন abcকরেxyz অন্যান্য উত্সগুলি সহ অন্যান্য উত্স কোডের প্রতিস্থাপন করে .. অন্য কোনও অক্ষর কেবল STDOUT এ আউটপুট হয়।

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

\একটি আক্ষরিক অর্থ নিদর্শন, প্রতিস্থাপন, এবং আক্ষরিক অক্ষর একটি এস্কেপ অক্ষর হিসেবে ব্যবহার করা যাবে /বা \


প্রথম নির্দেশটি মুখোমুখি /|/\/\//। এই মানে হলো "সমস্ত প্রতিস্থাপন |সঙ্গে //প্রোগ্রাম বাকি।" এটি প্রোগ্রামের পরবর্তী প্রতিটি প্রতিস্থাপনের জন্য একটি বাইট সংরক্ষণ করে।


এর পরে, প্রতিস্থাপনের একটি সেট পাঠ্য নিজেই সংকোচনের জন্য করা হয়:

  • on the হয়ে ^
  • day of christmas \n my true love gave to me \nহয়ে %
  • -a-হয়ে =
  • ingহয়ে &
  • evenহয়ে *
  • th%হয়ে +
  • ^এর আগে দুটি নতুন লাইন তৈরি হয় (যা প্রতিটি আয়াতে প্রদর্শিত হয় তবে প্রথমটি) হয়ে যায় :

এটি অনুসরণ করে, আমরা গানের কথাগুলি নিজেরাই লিখি। এটি এর Aমাধ্যমে প্রতিস্থাপনগুলি ব্যবহার করে করা হয় K। প্রতিটি অক্ষর প্রতিস্থাপনের পরে প্রতিস্থাপনে একটি লাইন যুক্ত করে। উদাহরণস্বরূপ, Kপ্রতিনিধিত্ব করে a partridge in a pear treeএবং Jউপস্থাপন করে two turtle doves \n and K

এইভাবে, গানের প্রতিটি শ্লোকটি গঠিত:

  • ^ অথবা :
  • একটি স্ট্রিং সঠিক অর্ডিনাল উপস্থাপন করে (বলুন el*th)
  • %
  • এর Aমাধ্যমে একটি চিঠি Kসঠিক গানের প্রতিনিধিত্ব করে।

যাইহোক, কারণ ordinals অধিকাংশ দিয়ে শেষ th, আমরা প্রতিকল্পন ব্যবহার th%+কিছু বাইট সংরক্ষণ করুন।


0

এমন অনেক সময় আসে যখন সর্বাধিক সুস্পষ্ট সমাধানটিও সবচেয়ে সংক্ষিপ্ত হয়, অর্থাত্ আমি আর এই আগ্রাসনের বিরুদ্ধে প্রতিরোধ করতে পারি না।

ম্যাক ওএস এক্সে ব্যাশ করুন, 26

open http://tiny.cc/kavxf

পার্ল, 111

use LWP::Simple;get("http://tiny.cc/n230t")=~/On.*tree!/;
$_=$&;s/<br>/\n/g;s/(<.+?>)|(&\w+;)/ /g;print "$_\n";

পাঠযোগ্যতার জন্য একটি নতুন লাইন যুক্ত হয়েছে।


3
এটি যদি একটি বৈধ সমাধান হয় তবে আমার কাছে এইচকিউ 9 + সি-র একটি আরও ছোট লেখা আছে written (এটি একটি অতিরিক্ত কমান্ড সহ এইচকিউ 9 + এটি আপনি কী অনুমান করতে পারেন))
ইলমারি করোনেন

1
আমি eval compressদাবী করার কৌশলটি ব্যবহার করে পার্লটিকে অবলম্বন করার বিষয়টি বিবেচনা করেছি, এমন একটি রেজেক্স পেয়েছি যা সত্যই ভালভাবে সংকোচিত হয়েছিল, তবে এটি প্রায় 200 টি চরিত্রকে ফুলেছে। lol
জেফ বার্ডেজস

ভিডিওটি কাজ করে না ... এছাড়াও, x.co ব্যবহার করুন , এটি আমি সবচেয়ে সংক্ষিপ্ত url সংক্ষিপ্ত সম্পর্কে জানি

0

জাভা - 1329 অক্ষর

class x{public static void main(String[] args){for(int i=1;i<=12;i++){System.out.print("On the ");switch(i){case 1:System.out.print("first");break;case 2:System.out.print("second");break;case 3:System.out.print("third");break;case 4:System.out.print("fourth");break;case 5:System.out.print("fifth");break;case 6:System.out.print("sixth");break;case 7:System.out.print("seventh");break;case 8:System.out.print("eighth");break;case 9:System.out.print("ninth");break;case 10:System.out.print("tenth");break;case 11:System.out.print("eleventh");break;case 12:System.out.print("twelfth");break;}System.out.println(" day of Christmas\nmy true love gave to me");switch(i){case 12:System.out.println("Twelve drummers drumming");case 11:System.out.println("Eleven pipers piping");case 10:System.out.println("Ten lords-a-leaping");case 9:System.out.println("Nine ladies dancing");case 8:System.out.println("Eight maids-a-milking");case 7:System.out.println("Seven swans-a-swimming");case 6:System.out.println("Six geese-a-laying");case 5:System.out.println("Five golden rings");case 4:System.out.println("Four calling birds");case 3:System.out.println("Three french hens");default:if(i>=2)System.out.print("Two turtle doves\nAnd a");else System.out.print("A");System.out.println(" partridge in a pear tree");break;}System.out.println();}}}

আমি এলোমেলো করতে খুব অলস, তবে এটি এখানে: http://ideone.com/MU9IcP


-2

সরল , 1 বাইট

a

বিঃদ্রঃ :

ভাষাটি চ্যালেঞ্জের পরে তৈরি করা হয়েছিল এবং এখনও ডাব্লুআইপি।

কিভাবে:

যে কোনও চর ক্রিসমাসের 12 দিনের আউটপুট দেয়।

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