সিজেম, 1051 827 643 569 545 407 327 279 235 233 229
''"','#'C'J'a'm',' qYew::-Yf#:+e#'''''''''"
f{-ci'(*''2*\}'^,40>"*/:N"-"][ZZ[\^__`bcdgimpstsz{}~~~"
উপরের প্রোগ্রামটি প্রকৃত উত্স কোড উত্পন্ন করে যা 1,179,112 বাইট দীর্ঘ।
পরীক্ষামূলক
জাভা দোভাষী ব্যবহার করে উত্স কোডটি এই জাতীয় উত্পন্ন এবং পরীক্ষা করা যেতে পারে:
$ alias cjam='java -jar cjam-0.6.5.jar'
$ cjam gen.cjam > diff.cjam
$ cksum diff.cjam
896860245 1179112 diff.cjam
$ cjam diff.cjam < diff.cjam
#CJam, 229
বিকল্প সংস্করণ
৩ points পয়েন্টের ব্যয়ে - ২5৫ এর চূড়ান্ত স্কোরের জন্য - আমরা উত্স কোডটি 99.92% ছোট করতে পারি:
'''()))))(''''(((('''())))))))))))))))))))))))))))('''()))))))))))))))))))))))))))))))))))('''())))))))))))))))))))))))))))))))))))))))))))))))))))))))))('''())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))('''()))))(''''((((((('())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))('())))))))))))))))))))))))))))))))))))))))))))))))))('())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))('())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))('()))))))))))))))))))('()))))))))))))))))))('())))))('())))))))))))))))))))))))))))))))))))))))))))))))))('()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(''(((('()))))))))))))))))))('())))('())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(''((((''''''''''''''''''()+,-.0123456789;<=>?@ABCDEFGHIJKLMOPQRSTUVWXYZ[\]][ZZ[\^__`bcdgimpstsz{}~~~
আপনি সিজেএম ইন্টারপ্রেটারে এই সংস্করণটি অনলাইনে চেষ্টা করতে পারেন ।
ধারণা
আমরা কোডটি কার্যকর করতে চাই
'#'C'J'a'm',' qYew::-Yf#:+
স্কোর যতটা সম্ভব কম রাখা। এটি অর্জনের জন্য, আমরা সেই স্ট্রিং চরিত্রটি অক্ষর দ্বারা তৈরি করতে যাচ্ছি (এর আগে এবং পরে কয়েকটি নো-অপ্স সহ) এবং ফলাফলটি মূল্যায়ন করব।
ভাগ্যক্রমে, '
(অক্ষরের অক্ষরে ধাক্কা), (
(হ্রাস) এবং )
(বৃদ্ধি) ক্রমাগত ASCII অক্ষর, সুতরাং স্বেচ্ছাচারী অক্ষরগুলি ঠেলাঠেলি তুলনামূলকভাবে সস্তা ex
ASCII অক্ষরের পরে '
ধাক্কা দেওয়া যেতে পারে '()…)(
, যেখানে )
কোড পয়েন্টের উপর নির্ভর করে সংখ্যা ।
উদাহরণস্বরূপ, +
হিসাবে ঠেলা যায় '())))(
। এবং এবং এর মধ্যে দূরত্ব 1 '
এবং পিছনে একে অপরকে বাতিল করুন; তাদের একমাত্র ক্রিয়াটি পরের অক্ষরগুলির সাথে নিম্নলিখিতগুলির (পরবর্তী চরিত্রের সাথে সম্পর্কিত) পথ প্রশস্ত করা ।(
(
)
)(
'
এই ফ্যাশনে ঠেলা অক্ষরগুলি স্কোরটি 4 পয়েন্ট বাড়িয়ে তুলবে
এর আগে ASCII অক্ষরগুলিকে '
হিসাবে ধাক্কা দেওয়া যেতে পারে ''(…(
, যেখানে (
কোড পয়েন্টের উপর নির্ভর করে সংখ্যা ।
উদাহরণস্বরূপ, #
হিসাবে ঠেলা যায় ''((((
। এর মধ্যে '
এবং দূরত্ব (
1।
এই ফ্যাশনে ধাক্কা দেওয়া অক্ষরগুলি স্কোরকে 2 পয়েন্ট বাড়িয়ে তুলবে
''(…(
আসলে জন্য কাজ করে সব , ASCII অক্ষর থেকে ক্যারেক্টার 16 বিট চওড়া এবং কাছাকাছি গোপন। উদাহরণস্বরূপ, 65,532 এস দ্বারা অনুসরণ করা +
যেতে পারে ।''
(
এই কৌশলটি কোডের 1.2 মেগাবাইট সংস্করণে ব্যবহৃত হয়।
চরিত্রটিকে '
ধাক্কা দেওয়া ''
যায়, স্কোরকে প্রভাবিত না করে।
কোড
e# Push these characters on the stack: ','#'C'J'a'm',' qYew::-Yf#:+e#'''''''''
''
'()))))(
''
''((((
''
'())))))))))))))))))))))))))))(
''
'()))))))))))))))))))))))))))))))))))(
''
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
''
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
''
'()))))(
''
''(((((((
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
'())))))))))))))))))))))))))))))))))))))))))))))))))(
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
'()))))))))))))))))))(
'()))))))))))))))))))(
'())))))(
'())))))))))))))))))))))))))))))))))))))))))))))))))(
'()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
''((((
'()))))))))))))))))))(
'())))(
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
''((((
''
''
''
''
''
''
''
''
''()
+ e# Concatenate the two topmost single quotes.
, e# Push the length of the resulting string (2).
-.0123456789 e# Push that number.
; e# Discard it from the stack.
< e# Compare a single quote with 2. Pushes 0.
= e# Compare a single quote with 0. Pushes 0.
> e# Compare a single quote with 0. Pushes 1.
? e# Ternary if. Discards a single quote and 1.
@ e# Rotate the remaining three single quotes.
ABCDEFGHIJKLMOPQRSTUVWXYZ e# Push 25 items on the stack.
[\] e# Swap the last two and wrap them in an array.
e# So far, we've pushed the elements of "','#'C'J'a'm',' qYew::-Yf#:+e#'''"
e# followed by the elements of [10 11 12 13 14 15 16 17 18 19 20]
e# and ["" "" "" 3.141592653589793 "" "" " " 0 0 0 -1 1 [3 2]].
] e# Wrap the entire stack in an array.
[ e# Begin an array. Does nothing.
ZZ e# Push 3 twice.
[ e# Begin an array. Does nothing.
\^ e# Swap both 3s and push the bitwise XOR. Pushes 0.
__ e# Push two copies.
` e# Inspect the last copy. Pushes the string "0".
b e# Convert "0" from base 0 to integer. Pushes 48.
cd e# Cast 48 to Character, then Double. Pushes 48.0.
gi e# Apply the sign function, then cast to integer. Pushes 1.
mp e# Check 1 for primality. Pushes 0.
s e# Cast the result to string. Pushes the string "0".
e# We now have three elements on the stack: an array, 0, and "0"
t e# Set the element at index 0 of the array to the string "0".
s e# Cast the array to string.
e# This pushes the string consisting of the characters
e# 0,'#'C'J'a'm',' qYew::-Yf#:+
e# and
e# e#'''10111213141516171819203.141592653589793 000-1132
e#
e# When evaluated this does the following:
e# 0, Push an empty array. Does not affect output.
e# '#'C'J'a'm',' Push the characters of "#CJam, ".
e# q Read all input from STDIN.
e# Yew Push the overlapping slices of length 2.
e# ::- Reduce each pair of characters to their difference.
e# Yf# Square each difference.
e# :+ Add the results.
e# e#… Comment. Does nothing.
z e# Zip. This wraps the string on the stack in an array.
{}~ e# Execute an empty block.
~ e# Unwrap the array.
~ e# Evaluate the string.