অক্টাভা, 53 52 বাইট
সম্পূর্ণ পুনর্লিখন করা আমাকে কোড 5 বাইট গল্ফ করতে সহায়তা করেছিল, তবে আমাকে আরও নো-অপস যুক্ত করতে হয়েছিল, এটি কেবল 1 বাইটের নেট-সেভ হিসাবে তৈরি করেছে।
@(_)~diff(sum(de2bi(+_)))%RRPPPVVVW?????????________
আমি কোনও টিআইও-লিঙ্ক যুক্ত করতে পারি না, যেহেতু অনলাইন অনুবাদকরা কেউই প্রয়োজনীয় যোগাযোগ সরঞ্জামবক্সটি কার্যকর করেনি de2bi
। dec2bin
পরিবর্তে এটি পরিবর্তন করতে 4 বাইট (ওয়ার্কিং কোডের জন্য 2, এবং দুটি নো-অপ্স) লাগবে।
আমি 27 টির কোনও অপস এড়াতে কোনও উপায় খুঁজে পাইনি। সমস্ত ফাংশন নাম এবং প্রথম বন্ধনী হয় below৪ এর নীচে বা than৯ এরও বেশি, যার অর্থ সমস্ত "প্রয়োজনীয়" অক্ষর 6th ষ্ঠ অবস্থানে থাকে (ডান দিক থেকে, ২ ^ 5)। আমার কাছে কেবল 23 টি অপ্সের সাথে একটি সমাধান ছিল, তবে কোডটি নিজেই দীর্ঘ ছিল। আসল কোডটি 25 বাইট এবং বাইনারি সমতুল্যের বিট গণনা করার সময় নিম্নলিখিত কলামের যোগফল থাকে:
15 22 6 15 10 9 13
ডান (2 ^ 5) থেকে 6th ষ্ঠ অবস্থানে 22 বিট রয়েছে এবং ডান (2 ^ 3) থেকে চতুর্থ অবস্থানে 6 টি বিট রয়েছে। তার মানে, আমরা যোগ আছে অন্তত 16 বাইট, 22. এখন 6 পর্যন্ত পেতে, মন্তব্য চরিত্র %
, 6 অবস্থানে একটি বিট যোগ করা 23 থেকে এটি বৃদ্ধি সকল মুদ্রণযোগ্য হওয়া ASCII-অক্ষরের চাহিদা দুই অন্তত একটি শীর্ষ বিট হতে1
। সুতরাং, 17 বাইট যুক্ত করা আমাদের দুটি "শীর্ষ স্পট" (2 ^ 6 এবং 2 ^ 5) এর প্রত্যেকটিতে কমপক্ষে 27 বিট দেবে। এখন, আমাদের কাছে শীর্ষ দুটি স্পটে 27 টি বিট রয়েছে এবং বাকি 22 টি রয়েছে। ভারসাম্য রক্ষার জন্য, প্রতিটি পজিশনে একটি এমনকি 32 বিট পেতে 10 টি বাইট যোগ করতে হবে।
নতুন কোড (52 বাইট) এর ব্যাখ্যা:
@(_)~diff(sum(de2bi(+_)))
@(_) % An anonymous function that take a variable _ as input
% We use underscore, instead of a character, since it has the
% most suitable binary represetation
de2bi(+_) % Convert the input string to a binary matrix
sum(de2bi(+_)) % Take the sum of each column
diff(sum(de2bi(+_))) % And calculate the difference between each sum
~diff(sum(de2bi(+_))) % Negate the result, meaning 0 becomes true,
% and everything else becomes false
অক্টাভেতে কেবলমাত্র 1 এস (সত্য) সহ একটি ভেক্টরকে সত্য হিসাবে মূল্যায়ন করা হয় এবং কমপক্ষে একটি শূন্যযুক্ত ভেক্টরকে অক্টেভে মিথ্যা হিসাবে মূল্যায়ন করা হয়।
পুরানো কোড (53 বাইট) এর ব্যাখ্যা:
@(_)!((_=sum(de2bi(+_)))-_(1))%RRRFVVVVVVVVV_____????
@(_) % An anonymous function that take a variable _ as input
% We use underscore, instead of a character, since it has the
% most suitable binary represetation
! % Negate the result, meaning 0 becomes true, and everything else becomes false
de2bi(+_) % Convert the input string to a binary matrix
sum(de2bi(+_)) % Take the sum of each column
(_=sum(de2bi(+_))) % Assign the result to a new variable, also called _
% It's not a problem that we use the same variable name, due
% to the order of evaluation
((_=sum(de2bi(+_)))-_(1)) % Subtract the first element of the new variable _
% If all elements of the new variable _ are identical, then this
% should give us a vector containing only zeros,
% otherwise, at least one element should be non-zero
!((_=sum(de2bi(+_)))-_(1)) % And finally, we negate this.
অক্টাভেতে কেবলমাত্র 1 এস (সত্য) সহ একটি ভেক্টরকে সত্য হিসাবে মূল্যায়ন করা হয় এবং কমপক্ষে একটি শূন্যযুক্ত ভেক্টরকে অক্টেভে মিথ্যা হিসাবে মূল্যায়ন করা হয়।