সোনার অনুপাত প্রিন্ট করুন


26

এই মজা ছিল! তবে মাত্র তিনটি অঙ্ক সহ, মজা খুব শীঘ্রই শেষ হয়ে গেল। এই চ্যালেঞ্জটি একই রকম, তবে আমরা মজাটি চালিয়ে যাব।

চ্যালেঞ্জ

যতটা সম্ভব সোনার অনুপাতের বেশি অঙ্ক মুদ্রণ করুন । গোল্ডেন অনুপাতটি এমন সংখ্যার হিসাবে সংজ্ঞায়িত করা হয়েছে যা φ = (φ + 1) / satisf কে সন্তুষ্ট করে এবং প্রথম 100 টি সংখ্যার দ্বারা দেওয়া হয়:

1,6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375 ...

এই চ্যালেঞ্জটি কম্পিউটিং about সম্পর্কে নয় ! এটি দু'বার করার জন্য কোনও পদ্ধতি ব্যবহার না করে যথাসম্ভব বেশি অঙ্ক মুদ্রণের বিষয়ে। সুতরাং আপনার সংখ্যাগুলি পাওয়ার জন্য যতগুলি সৃজনশীল উপায় সন্ধান করুন!

বিধিনিষেধ

নিজেই, φ এর অঙ্কগুলি মুদ্রণ করা কিছুটা সহজ হবে, সুতরাং এখানে বিধিগুলি রয়েছে:

  1. আপনি সংখ্যা গঠন করা আছে অনুক্রমে বাঁ দিক থেকে ডানদিকে , হয় এটা এক এক করে মুদ্রণ করে অথবা বাঁ দিক থেকে ডানদিকে একটি স্ট্রিং নির্মাণের এবং শেষে এটা মুদ্রণ দ্বারা - আপনি এমনকি অঙ্ক অক্ষরের একটি অ্যারের উৎপন্ন পারে এবং তারপর এটি যোগ দিতে এবং এটি মুদ্রণ করুন, আপনি যতক্ষণ না এটি ক্রম করেন। নিম্নলিখিত নিয়মগুলিতে "মুদ্রণ" এবং "আউটপুট" processes প্রসেসগুলির মধ্যে 1.6যে কোনওটিকে বোঝায় (উদাহরণস্বরূপ যদি আপনি একটি স্ট্রিং তৈরি করছেন, এবং স্ট্রিংটিতে 1.6ইতিমধ্যে মুদ্রিত রয়েছে বলে গণনা করা হয়েছে )।
  2. আপনার কোডের জন্য আপনি প্রতি অঙ্কের 15 টি অক্ষরের বাজেট পাবেন । পিরিয়ডটি সেই বাজেটের জন্য গণনা করা হয় না, তবে পাশাপাশি মুদ্রণ করতে হবে। মনে রাখবেন যে বিধিনিষেধটি কেবলমাত্র কোডের আকারে: আপনি যতক্ষণ না গড় হিসাবে বেশি ব্যবহার না করেন ততক্ষণ আপনি কোনও অঙ্কের জন্য 15 টিরও বেশি অক্ষর ব্যবহার করতে পারেন। প্রকৃতপক্ষে, আপনি অক্ষরগুলিতে একটি "buildণ" তৈরি করতে পারেন এবং পরে "এটি পরিশোধ" করতে পারেন। উদাহরণস্বরূপ আপনার মুদ্রণের 1.618জন্য 60 টি অক্ষর রয়েছে।
  3. স্ট্যান্ডার্ড-লাইব্রেরিতে অন্তর্ভুক্ত / আমদানি কোড আকারের সাথে গণনা করা হয় না। তবে আপনি বিনামূল্যে শর্টহ্যান্ড এলিয়াসগুলি দিতে পারবেন না!
  4. আপনি বর্তমানে যে অঙ্কটি তৈরি করছেন তা অবশ্যই ব্যবহার করবেন না বা আপনার ইতিমধ্যে মুদ্রিত কোনওটিই ব্যবহার করা উচিত নয়। উদাহরণস্বরূপ 1আপনার উত্স কোডে কোথাও উপস্থিত হতে পারে না কারণ এটি খুব প্রথম সংখ্যা। কোডটি আউটপুট 8মধ্যে 1.618যেকোনো বা ডিজিটের সব ব্যবহার করতে পারেন [0234579], কিন্তু কেউই [168]। এই উদ্দেশ্যে, সমস্ত আক্ষরিক যা একক অঙ্কের সমতুল্য সেই অঙ্ক হিসাবে গণ্য হবে । সুতরাং আপনার ভাষা উপস্থাপন করতে পারেন যদি 9যেমন '\t'আপনি যে কোন জায়গায়, যেখানে আপনি একটি ব্যবহার করতে পারছিল না ব্যবহার করার জন্য অনুমতি দেওয়া হয় না 9পরিবর্তে।
  5. আপনার একবারে একাধিক সংখ্যা উত্পাদন করা উচিত নয়। আপনার কোডগুলি স্পষ্টভাবে খণ্ডগুলিতে বিভক্ত করা উচিত যা একবারে একটি অঙ্ক তৈরি করে।
  6. আপনি কোনও বিল্ট-ইন ফাংশন, গাণিতিক / বুলিয়ান / বিট-ওয়াইজ / স্ট্রিং অপারেটর, ভেরিয়েবল বা ধ্রুবককে অবশ্যই উল্লেখ করবেন না যা আপনি কোড ব্যবহার করেছেন যা পূর্ববর্তী অঙ্ক তৈরি করেছিল। ব্যতিক্রমগুলি হল পূর্ণসংখ্যার থেকে স্ট্রিং রূপান্তর, স্ট্রিং কনটেনটেশন এবং মুদ্রণ ফাংশন যা আপনার প্রতিটি একক সংখ্যার জন্য প্রয়োজন হতে পারে। মনে রাখবেন যে আপনি কোনও বিল্ট-ইনকে কোন নামে উল্লেখ করেছেন তা বিবেচনাধীন নয় : কেবলমাত্র PIআপনি উভয়টিতে বিল্ট-ইন ব্যবহার করে pএবং এর qঅর্থ এই নয় যে আপনি pএকবার এবং qএকবার ব্যবহার করবেন to অনুরূপভাবে, আপনি হয় একটি নাম দুইবার ব্যবহার করতে হলে স্ট্রিং মত, দুটি ভিন্ন বিল্ট-ইন বোঝায় অনুমতি lengthএবং অ্যারে length

    যদি আপনার প্রোগ্রামিং ভাষায় ফাংশন না থাকে তবে তার সমতুল্য কী হবে তার সর্বোত্তম রায় ব্যবহার করে - যেমন বাশ স্ক্রিপ্টিংয়ের জন্য, অন্যান্য প্রোগ্রামগুলি আহ্বান করে ফাংশনগুলিতে আরোপিত নিয়মগুলি অনুসরণ করা উচিত

  7. আপনার জমাটি অবশ্যই একটি ভাষায় লেখা উচিত। সুতরাং সেই ভাষার বিল্ট-ইনগুলিতে অ্যাক্সেস পেতে অন্য ভাষার দোভাষীকে মৃত্যুদন্ড কার্যকর করবেন না।

প্রভাব

নিম্নলিখিত পয়েন্টগুলি উপরের সমস্ত বিধি দ্বারা আবদ্ধ করা হয়েছে, তবে আমি ইতিমধ্যে স্যান্ডবক্সে আসা প্রশ্নগুলি এড়াতে এগুলি এখানে যুক্ত করছি:

  • '\b'এর মধ্যে কিছু ব্যাকস্পেস (সাধারণত ) মুদ্রণ করে আপনার আউটপুটটির অংশগুলি ওভাররাইট করার অনুমতি নেই ।
  • একাধিক অঙ্ক উত্পন্ন / আউটপুট উত্পাদিত লুপগুলি নিষিদ্ধ। (একক অঙ্কের গণনা করা লুপগুলি ভাল, যদিও))
  • (1 + √5)/2একক অঙ্কের বেশি পাওয়ার জন্য একটি অস্পষ্ট সংস্করণ ব্যবহার করা বা ফিবোনাচি সংখ্যা বিভক্ত করা নিষিদ্ধ।
  • আপনি 10 টি সংখ্যার প্রাক্কলক করতে পারবেন না এবং এগুলিকে 10 ভেরিয়েবলে সংরক্ষণ করতে পারবেন এবং কেবল সেগুলি উল্লেখ করুন, কারণ সেই পরিবর্তনশীল উল্লেখগুলি অঙ্কটি তৈরি করে না - ভেরিয়েবলটি পূরণ করে এমন কোডটি তাই এই বিধি 6 এর লঙ্ঘন।
  • প্রকৃতপক্ষে, আপনি কোনও পূর্ববর্তী (বা মধ্যবর্তী ফলাফল) পুনরায় ব্যবহার করতে পারবেন না, কারণ এর অর্থ হ'ল দুটি অঙ্ক উত্পন্ন হওয়ার জন্য কোড ভাগ করবে ।
  • অন্যথায়, আপনি অঙ্কগুলি উত্পন্ন করতে কোনও উপায় (যা খাঁটি গাণিতিকের দরকার নেই) ব্যবহার করতে পারেন। (এবং আপনার উচিত!)
  • বাস্তবে কোনও কিছু গণনা করার দরকার নেই, যদি আপনি নিজের স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করে বিভিন্ন স্থান থেকে সঠিক অঙ্কগুলি বের করতে পারেন।
  • একক অঙ্ক তৈরি করার সময় আপনি একাধিকবার অপারেটর ব্যবহার করতে পারেন, তাই 2+2+2প্রথমটি উত্পন্ন করার জন্য ন্যায্য খেলাটি 6(যদিও এটি সবচেয়ে কম সম্ভাবনা রয়েছে)।
  • আপনি পারে , যেমন ঘন ঘন আপনি চান হিসাবে কোন আক্ষরিক ব্যবহার কারণ তারা বিল্ট-ইন করা হয় না ধ্রুবক। সুতরাং যতক্ষণ আপনার মুদ্রণ করতে হবে না 5, আপনি নিজের কোডটিতে 5যতগুলি চান হিসাবে দেখতে পারেন।
  • আপনি আউটপুট হার্ডকোড করতে পারবেন না, কারণ এটির মধ্যে আপনি যে অঙ্কগুলি আউটপুট করছেন তা ব্যবহার করা জড়িত।

সংক্ষেপে: দু'বার অঙ্ক তৈরির কোনও পদ্ধতি ব্যবহার করবেন না এবং আপনি বর্তমানে যে সংখ্যাটি ইতিমধ্যে আউটপুট করছেন বা কোনও ইতিমধ্যে মুদ্রিত করেছেন তা ব্যবহার করবেন না।

আপনি যদি একটি লুফোলটি স্পট করেন যা আপনাকে (অর্ধ) অনন্ত স্কোর পেতে দেয় তবে দয়া করে এটি কাজে লাগিয়ে চ্যালেঞ্জটি নষ্ট করবেন না, তবে আমাকে জানান যাতে কিছুটা না ভেঙে লুফোলটি ঠিক করা যায় কিনা তা আমি জানতে পারি।

স্কোরিং

যে প্রোগ্রামটি সর্বাধিক সংখ্যক মুদ্রণ করে সঠিকভাবে জয় করে। টাই করার ক্ষেত্রে সংক্ষিপ্ত কোডটি টাই ভেঙে দেয়।

দয়া করে একটি অব্যক্ত মন্তব্যযুক্ত সংস্করণ যুক্ত করুন যা আপনার কোডের কোন অংশটি কোন অঙ্কটি উত্পন্ন করে তা সনাক্ত করে।

PS: যদি কেউ উপরে 100 টি সংখ্যা মারধর করে তবে এখানে আরও কিছু রয়েছে


মন্তব্য শুদ্ধ; কোনও সম্ভাব্য হারিয়ে যাওয়া তথ্যের জন্য আমাকে অবহিত করুন।
ডুরকনব

"একটি অস্পষ্ট সংস্করণ ব্যবহার করা হচ্ছে ..." এটি কেবল x = (x+1)/x(বা x^2 = x+1) (বা x^2-x+1) উপর চতুর্ভুজ সূত্র ব্যবহার করছে ।
কোল জনসন

.... আমি কি একাধিকবার প্রয়োগ-সংজ্ঞায়িত অপারেটরকে উল্লেখ করতে পারি?
স্ট্যাকস্টাক

এছাড়াও, আমি কি নিয়োগ পুনরায় ব্যবহার করতে পারি?
স্ট্যাকস্টাক

উত্তর:


18

পিএইচপি, 100 সংখ্যা

আমি সম্ভবত নিয়মগুলি এখানে কিছুটা বাঁকছি, তবে পিএইচপি-র মধ্যে কয়েক ডজন ধ্রুবক রয়েছে যা থেকে বেছে নিতে হবে:

<?php
echo TRUE . '.' . PM_STR . DNS_A . MSG_EOR . LC_ALL . T_FMT . LOCK_UN . SQL_DATE
. E_NOTICE . IMG_WBMP . INI_ALL . E_PARSE . SOCKET_EBADF . LOG_USER .
IMAGETYPE_JPC . IMG_PNG . GLOB_MARK . LOCK_NB . LOG_NDELAY . D_FMT . PHP_ZTS .
GLOB_ERR . AM_STR . SQL_DOUBLE . SOL_TCP . FILE_APPEND . LOG_ERR . SORT_ASC .
SOCK_RAW . LOG_INFO . LC_TIME . SQL_FLOAT . SORT_DESC . INFO_MODULES . E_ERROR .
IMG_GIF . SQL_REAL . LOG_DEBUG . DNS_NS . CODESET . CAL_FRENCH . CURLE_OK .
LDAP_OPT_RESTART . LOCK_SH . XML_PI_NODE . SQLITE_INTERRUPT . MYSQLI_ASYNC .
CURLM_OK . SNMP_NULL . SQLITE_NOMEM . LC_MESSAGES . IMG_JPG . SO_KEEPALIVE .
SOCKET_ENXIO . LOCK_EX . D_T_FMT . ENT_QUOTES . LOG_NOTICE . SOCK_RDM .
INPUT_ENV . CURLAUTH_NTLM . INPUT_SESSION . AF_INET . IMG_JPEG . SQL_CONCURRENCY
. SEEK_SET . SOCKET_EIO . LC_CTYPE . PHP_URL_QUERY . LOG_KERN . INI_SYSTEM .
IMAGETYPE_BMP . SEEK_END . JSON_HEX_QUOT . LOG_PID . LIBXML_DTDATTR .
XML_DOCUMENT_NODE . PHP_DEBUG . LOG_CRIT . ENT_IGNORE . LC_NUMERIC .
DOM_NOT_SUPPORTED_ERR . PHP_URL_FRAGMENT . FILE_TEXT . IMAGETYPE_TIFF_II .
LOG_CONS . LOG_EMERG . UPLOAD_ERR_CANT_WRITE . MSG_PEEK . SQLITE_OK . FNM_PERIOD
. AF_UNIX . CURLPROTO_FTPS . STREAM_NOTIFY_FAILURE . MYSQL_BOTH .
CURLE_FTP_ACCESS_DENIED . MSG_OOB . FTP_TEXT . LC_MONETARY .
CURLE_COULDNT_CONNECT . SQLITE_BUSY . "\n";

এটি সম্ভবত খুব বহনযোগ্য কোড নয়, তবে এটি আমার সিস্টেমে কাজ করে। কোডটি এখানে এটি তৈরি করেছে:

<?php
$phi = "6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375";
echo "<?php\necho TRUE . '.' . ";
$consts = get_defined_constants();
foreach($consts as $k=>$v) if (preg_match('/\d|TRUE|PHP_EOL/',$k)) unset($consts[$k]);
for ($p=0;$p<strlen($phi);$p++) {
  $d = ord($phi[$p]) - 48;
  $min = 999;
  foreach($consts as $k=>$v) {
    if (strlen("$v")==1 && $v==$d && strlen($k)<$min) {
      $min = strlen($k);
      $maxk = $k;
    }
  }
  if ($min==999) break;
  echo "$maxk . ";
  unset($consts[$maxk]);
}
echo "\"\\n\";\n";

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

<?for(;;);9MB মেমরি ব্যবহার করে। এখন আমি কেন জানি ... আমি @ কর্নিগের স্ব-চাপিয়ে দেওয়া নিষেধাজ্ঞাকে # 7 পছন্দ করি, যদিও এই ধরণের ফাঁকটি বন্ধ করে দেয়। এছাড়াও, এটির মূল্যের জন্য, আমার সিস্টেমে আউটপুটটি হ'ল: codepad.org/wSrtJBco
primo

যদিও, জেনারেটরটি চালানো একটি বৈধ উপস্থাপনা তৈরি করে , সুতরাং এটির জন্য +1;) কোডেপ্যাড সার্ভারে চালিত এমন একটি সংস্করণ: কোডেপড.অর্গ
প্রিমো

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

11

পার্ল - 37 সংখ্যা

use Math::Trig;
use POSIX;

print
  !0,'.',chop$=||$=,A==A,2**3,$|,++$^F,75/5/5,pi*pi%\_,4+4,a^Y,w&'?',~"\xcb",$^=~y/_//c,
  ord"\b",unpack(h,"\t").@{[c,c,c,c]},$#{[b..j]},"$^W"|'$',$^H>>log$^H,cos()- -cos,$[,
  $-=sqrt%SIG,$%=$],$+[*$=~/($)/],split('',$~).map(glob,"{,,,}{,}"),index(\L,L),
  exp(exp)<<exp,ceil(sinh acosh$^C).keys{stat$0},rindex(\R,R),($s=ssssss)=~s/s//g,
  $?=acos(--$z),$^T=pack(u,$^T.$^T.TTTT),B~~B,C<=C,length$^V,

392 বাইট বর্তমানে, (প্রতি দশকে 10.6)।

আউটপুট:

1.618033988749894848204586834365638117

স্ব-চাপিয়ে দেওয়া সীমাবদ্ধতা

আমি ভাষা বৈশিষ্ট্যগুলির ব্যবহারকে সীমাবদ্ধ করতে কয়েকটি অতিরিক্ত বিধিনিষেধ যুক্ত করেছি যা সমস্যাটিকে তুচ্ছ করে তোলে। উদাহরণস্বরূপ, অ্যারে ডিরিফারেন্স @{...}এবং অ্যারে ফাইনাল ইনডেক্স $#{...}কেবল একবার ব্যবহার করা হবে। ব্যবহৃত প্রতিটি অ্যারের একটি ভিন্ন পদ্ধতিতে উৎপন্ন হয় (তুলনা [c,c,c,c], [b..j], split('',$~), map(glob,"{,,,}{,}"))। অতিরিক্ত হিসাবে, কোনও প্রতীক বা খালি শব্দ একাধিকবার ব্যবহৃত হয় না, যদিও চ্যালেঞ্জ বর্ণনায় এটি স্পষ্টভাবে অনুমোদিত allowed আমি মনে করি এটি পার্লের জন্য (বা কেবলমাত্র কেবলমাত্র বিশেষ ভেরিয়েবলগুলির সাথে কোনও ভাষা রয়েছে (অন্য কোনও কি আছে?)), কারণ এটি অন্তর্নিহিত সংখ্যার রূপান্তরগুলির সংখ্যাকে সীমাবদ্ধ করে।


টুকরা

!0                       # returns 1
'.'
chop$=||$=               # $= is 60, chop the 0, returns 6
A==A                     # returns 1 (because 0==0)
2**3                     # returns 8
$|                       # auto flush, returns 0
++$^F                    # max system filehandle pre-incremented, returns 3
75/5/5                   # returns 3
pi*pi%\_                 # pi² mod a large value, returns 9
4+4                      # returns 8
a^Y                      # bitwise 'a' xor 'Y', returns 8
w&'?'                    # bitwise 'w' and '?', returns 7
~"\xcb"                  # bitwise inversion of char 203, returns 4
$^=~y/_//c               # count non-underscores in $^, returns 9

ord"\b"                  # returns 8
unpack(h,"\t")           # unpack "\t" as a hex nibble, returns 9
@{[c,c,c,c]}             # anonymous array, returns 4 in scalar context
$#{[b..j]}               # final index of the range b..j, returns 8
"$^W"|'$'                # bitwise '0' or '$', returns 4
$^H>>log$^H              # $^H is 256, log$^H is ~5, returns 8
cos()- -cos              # cos(undef) is 1, subtract -1, returns 2
$[                       # array start index, returns 0

$-=sqrt%SIG              # set $- to sqrt(23), returns 4
$%=$]                    # set $% to the version number, returns 5
$+[*$=~/($)/]            # match end on *$ (aka *main::$), returns 8
split('',$~)             # split "STDOUT" into chars, returns 6 in scalar context
map(glob,"{,,,}{,}")     # an array of 8 empty strings, returns 8 in scalar context
index(\L,L)              # finds 'L' in 'SCALAR(...)', returns 3

exp(exp)<<exp            # 2.718281828 << 1, returns 4
ceil(sinh acosh$^C)      # ceil(2.30129...), returns 3
keys{stat$0}             # stat$0 is an array with 13 entries, which has 6 keys when
                         # interpreted as a hash, returns 6 in scalar context
rindex(\R,R)             # finds 'R' in 'SCALAR(...)' in reverse, returns 5
($s=ssssss)=~s/s//g      # replace the every 's' in 'ssssss' with nothing, returns 6

$?=acos(--$z)            # set $? to 3.14159... implicit int conversion, returns 3
$^T=pack(u,$^T.$^T.TTTT) # set $^T to "8,30P,...", returns 8
B~~B                     # returns 1 (because B represents the same thing as B)
C<=C                     # returns 1 (because 0<=0)
length$^V                # string length of $^V, returns 7

8

পাইথন ২.7, ১৯ টি সংখ্যা, 231 প্রাসঙ্গিক অক্ষর

from math import ceil, pi, trunc, gamma, sin

print ''.join(map(str,
[33-32,
chr(46),
~-7,
8>>3,
trunc(gamma(4.3)),
'x'.find('x'),
22/7,
range(4).pop(),
len('am I phi?'),
52%44,
2*4,
5|2,
ord('/'),
'\b',
5+2+2,
2<<2,
eval("5+2+2"),
ceil(pi),
'\b',
'\b',
str(sin(5))[5],
5&52]))

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

6

রুবি ২.১, ৫৪ টি সংখ্যার জন্য, ৮০৮ টি অক্ষরের জন্য

#!ruby -rdate -rdigest -ropenssl -rprime -rset -rsocket
print 2/2,?.,9-3,3&5,2*4,2^2,7%4,55>>4,5+4,2<<2,-~7,5|2,2**2,(2r+2+5).to_i,(2.2+5).ceil,(55r/5-2).floor,(2.2*2).to_i,(2r*2*2).ceil,(2.2**2).floor,2.to_bn<<2,__LINE__,$<.to_i,IO::LOCK_NB,Errno::EIO::Errno,File::APPEND,'aaaaaa'.size,?a.encoding.name.sub(/\D+/,''),%w[a a a].size,%w[a b c d].to_set.size,%w[a a a].count,Socket::AF_NS,Date.jd(Date::ITALY).wday,*Digest::MD5.digest(?j).scan(/\d/),Set[?a,?b,?c].count,SignalException.new('FPE').signo,Float::ROUNDS,begin
exit false
rescue Object
$!.status
end,Process::RLIMIT_NPROC,:aaaaaaa.size,Prime.first,?/.next,{a:p,b:p,c:p}.size,STDIN.lineno,?a.crypt('at')[/\d/],{a: :a}.find_index([:a,:a]),/b/=~'aaaaaaaaab',[?a,?b].index(?b),:aaaaaaab=~/b/,?\t.ord,'aaaaaaaab'=~/b/,open(?/).pos,'aaaaab'.index(?b),?\a.bytes{|b|break b},'aaaaaaa'.rindex(?a),%w[a a].map.size

এই প্রোগ্রামের সাথে কাজ করে ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-openbsd]। ওপেনবিএসডি 5.5 ব্যতীত অন্যান্য সিস্টেমে কয়েকটি সংখ্যার জন্য আলাদা মান থাকতে পারে।

ব্যাখ্যাগুলোর

এই চ্যালেঞ্জের বিধিনিষেধগুলি, বিশেষত 6 টি সীমাবদ্ধতা রুবির পক্ষে সুনির্দিষ্ট নয়। সুতরাং আমি আমার নিজস্ব ব্যাখ্যা যুক্ত করব:

  1. প্রথম বন্ধনী, ডট এবং ডাবল-কোলন অপারেটর নয়। প্রথম বন্ধনীগুলি কেবল ক্রিয়াকলাপের ক্রম পরিবর্তন করে। বিন্দু হিসাবে যেমন পদ্ধতিগুলি কল করে $<.filenoএবং ডাবল কোলন স্থির হিসাবে পায় IO::LOCK_NB। পদ্ধতি বা ধ্রুবকের নাম অপারেশনের অংশ। কারণ () . ::অপারেটার নয়, আমি তাদের কাছে সীমাবদ্ধতা 6 প্রযোজ্য হবে না। আমি আরও অঙ্ক উত্পন্ন করতে তাদের পুনরায় ব্যবহার করতে পারি।
  2. একটি ভিন্ন বাস্তবায়ন সহ একটি পদ্ধতি একটি পৃথক পদ্ধতি। উদাহরণস্বরূপ, Array#countএবং Enumerable#countসীমাবদ্ধতার জন্য একই ফাংশন নয় Both উভয় পদ্ধতিই একই রকম কাজ করে তবে ভিন্ন প্রয়োগের সাথে Array#countওভাররাইড করে Enumerable#count। আমি যদি Array#countএকটি ডিজিট উত্পন্ন করতে ব্যবহার করি তবে আমি Enumerable#countঅন্য একটি সংখ্যা তৈরি করতে ব্যবহার করতে পারি ।
  3. ক্লাস # নতুন একটি পদ্ধতি। রুবি সালে Mutex.new, Random.new, Time.newইত্যাদি একই পদ্ধতি চাই, পড়ুন Class#new। আমি SignalException.newএকটি ডিজিট উত্পন্ন করতে ব্যবহার করি । সীমাবদ্ধতার কারণে 6, আমি আর কখনও ব্যবহার করতে পারি না Class#new
  4. ক্লাস বা মডিউলগুলির জন্য ধ্রুবকগুলি এখনও ধ্রুবক। রুবি সালে, বর্গ নাম পছন্দ Floatএবং IOধ্রুবক হয়! আমি IO::LOCK_NBএকটি ডিজিট উত্পন্ন করতে ব্যবহার করি । সীমাবদ্ধতার কারণে 6, আমি আর কখনও ব্যবহার করতে পারি না IO। এই ব্যাখ্যাটি কেবল রুবিকে আবদ্ধ করে, এবং অন্যান্য ভাষা নয় যেখানে প্যাকেজের নামগুলি স্থির নয়।
  5. লিটারালরা ধ্রুবক নয়। যদিও 2 একটি গাণিতিক ধ্রুবক (কোনও ভেরিয়েবলের চেয়ে পৃথক) তবে এটি রুবিতে স্থির নয়। আমি আক্ষরিকগুলিতে 6 টি সীমাবদ্ধতা প্রয়োগ করি না এবং আমি আক্ষরিক 2 টি একাধিক অঙ্কের জন্য পুনরায় ব্যবহার করতে পারি।
  6. লিটারাল অপারেটর হয় না। আক্ষরিক অ্যারে, হ্যাশগুলি, নিয়মিত এক্সপ্রেশন বা স্ট্রিংগুলিতে গঠিত ব্র্যাকেট বা উদ্ধৃতিগুলিতে আমি সীমাবদ্ধতা 6 প্রয়োগ করি না [] {} // ''। আমি আরও অঙ্ক তৈরি করতে সর্বদা এই জাতীয় আক্ষরিক ব্যবহার করতে পারি।
  7. একই মান সহ দুটি ধ্রুবক একই ধ্রুবক। File::APPENDএবং IPSocket::LOCK_UNএকই সংখ্যার জন্য দুটি নাম 8. সীমাবদ্ধতা 6 বলে, " আপনি কোনও নাম অন্তর্নিহিত উল্লেখ করেছেন তাতে কোনও फरक আসে না।" কারণ File::APPENDএবং IPSocket::LOCK_UNশুধুমাত্র নাম অনুসারে পৃথক, এগুলি অবশ্যই একই ধ্রুবক হতে হবে, তাই আমি এগুলি দুটি অঙ্কের জন্য ব্যবহার করতে পারি না।
  8. দুটি অঙ্ক একই বৈশ্বিক চলকটিকে উল্লেখ না করে। এটি একটি ফাঁক বন্ধ করে দেয়। সীমাবদ্ধতা 6 কেবলমাত্র ফাংশন, অপারেটর এবং ধ্রুবকগুলির জন্য প্রযোজ্য। সীমাবদ্ধতা 4 কেবলমাত্র আক্ষরিক ক্ষেত্রে প্রযোজ্য। $SAFEএকটি অন্তর্নির্মিত বৈশ্বিক পরিবর্তনশীল, কোনও ফাংশন নয়, অপারেটর, ধ্রুবক বা আক্ষরিক নয়। $SAFEমান 0 রয়েছে। লুফোলের সাহায্যে, আমি $SAFEপ্রোগ্রামটিতে প্রতিটি সংখ্যা 0 উত্পন্ন করতে পুনরায় ব্যবহার করতে পারি । আমি গ্লোবাল ভেরিয়েবলগুলিকেও সীমাবদ্ধ করতে সীমাবদ্ধতা 6 ব্যাখ্যা করে লুফোলটি বন্ধ করি।

মন্তব্য

প্রথম লাইন হয় #!ruby -rdate -rdigest -ropenssl -rprime -rset -rsocket। রুবি এই লাইন এবং লোড তার আদর্শ লাইব্রেরির ছয় অংশ, যেন দ্বারা parses require 'date', require 'digest'ইত্যাদি। আমি এই 56 টি অক্ষর গণনা করি না, কারণ বিধিনিষেধ 3 স্ট্যান্ডার্ড লাইব্রেরি আমদানি / অন্তর্ভুক্ত "ছাড় দেয়।

প্রোগ্রামটির বাকী printঅংশগুলি আর্গুমেন্টগুলির একটি দীর্ঘ তালিকা সহ কল করে যাতে সেগুলিতে স্ট্রিংয়ে রূপান্তরিত হয় এবং সেগুলি প্রিন্ট করে। যুক্তিগুলি হ'ল:

  1. 1থেকে 2/2: বিভাগ ফিক্সনাম # /
    . থেকে ?.: আক্ষরিক একক-অক্ষর স্ট্রিং
  2. 6থেকে 9-3: বিয়োগফল ফিকনাম # -
  3. 1থেকে 3&5: বিটওয়াইজ এবং ফিক্সনাম # &
    • 5 ব্যাখ্যার দ্বারা, আমি 3আবার ব্যবহার করতে পারেন ।
  4. 8থেকে 2*4: গুণন ফিক্সনাম # *
  5. 0থেকে 2^2: বিটওয়াইজ এক্সক্লুসিভ-বা ফিক্সনাম # ^ ^
  6. 3থেকে 7%4: মডুলাস ফিক্সনাম #%
  7. 3থেকে 55>>4: ডান শিফট ফিক্সনাম # >>
  8. 9থেকে 5+4: সংযোজন ফিক্সনাম # +
  9. 8থেকে 2<<2: বাম শিফট ফিক্সনাম # <<
  10. 8থেকে -~7: পরিপূর্ণ ফিক্সনামের প্রত্যাখ্যান # - @ ফিক্সনাম # ~ ~
    • বিয়োগফল ফিকনাম # - এবং প্রত্যাখ্যান ফিক্সনাম # - @ বিভিন্ন পদ্ধতি।
  11. 7থেকে 5|2: বিটওয়াইস বা ফিক্সনাম # |
  12. 4থেকে 2**2: ক্ষয়ক্ষতি ফিক্সনাম # **
  13. 9থেকে (2r+2+5).to_i: যৌক্তিক সংযোজন যুক্তিযুক্ত # + যুক্তিযুক্ত # থেকে_আই
    • ব্যাখ্যা 2 দ্বারা, Fixnum + # এবং মূলদ + # বিভিন্ন পদ্ধতি আছে। তারা উভয়ই সংখ্যা যুক্ত করে তবে তাদের বাম সংখ্যার জন্য বিভিন্ন ধরণের থেকে শুরু করে বিভিন্ন প্রয়োগ রয়েছে।
    • যুক্তিযুক্ত আক্ষরিক মতো 2rরুবি ২.১-এ নতুন। যৌক্তিক # +2r+2 কল করে এবং আরও যুক্তি দেখায়; আবার যুক্তিযুক্ত কল + +2r+2+5
    • রুবি পছন্দসই যুক্তিগুলি প্রিন্ট করে 2/1এবং পছন্দ করে 2.0। : এই সমাধানের জন্য, আমি পূর্ণসংখ্যা রূপান্তর to_i শূন্য, দিকে চক্রের ছাদের নিচের পিঠ নির্মাণ চক্রের আপ, মেঝে নীচে প্রকাশ করে।
  14. 8থেকে (2.2+5).ceil: ফ্লোট সংযোজন ফ্লোট # + ফ্লোট # সিল
    • 1 ব্যাখ্যার দ্বারা, আমি প্রথম বন্ধনী ()এবং ডট ব্যবহার করতে পারি .
  15. 9থেকে (55r/5-2).floor: যৌক্তিক বিভাগ এবং বিয়োগ বিয়োগকালীন # / যুক্তিযুক্ত # - যুক্তিযুক্ত # তল
  16. 4থেকে (2.2*2).to_i: ফ্লোট গুণিত ফ্লোট # * ফ্লোট # টু_আই
  17. 8থেকে (2r*2*2).ceil: যৌক্তিক গুণন যুক্তিযুক্ত # * যুক্তিযুক্ত # সিল
  18. 4থেকে (2.2**2).floor: যৌক্তিক ক্ষয়ক্ষতি যুক্তিযুক্ত # **
  19. 8থেকে 2.to_bn<<2: ওপেনএসএসএল বড় সংখ্যার ফিক্সনাম # টু_বিএন ওপেনএসএসএল :: বিএন # << সাথে বাম শিফট
  20. 2থেকে __LINE__: বর্তমান লাইন নম্বরটির জন্য যাদু ধ্রুবক
  21. 0থেকে $<.to_i: স্ট্যান্ডার্ড ইনপুট আইও # টু_আই ফাইল বর্ণনাকারী
  22. 4থেকে IO::LOCK_NB: ব্লক করা ফাইল লক করার জন্য পতাকা
    • সিস্টেমে নির্ভর করে এমন অনেকগুলি ধ্রুবকের মধ্যে এটি প্রথম। ওপেনবিএসডি-তে রয়েছে 4।
    • 4 ব্যাখ্যা দিয়ে, আমি আর ব্যবহার করতে পারি না IO। Interpretation এর ব্যাখ্যা দ্বারা, আমি আর 4 এর মান সহ কোনও ধ্রুবক ব্যবহার করতে পারি না।
  23. 5থেকে Errno::EIO::Errno: ইনপুট / আউটপুট ত্রুটির জন্য নম্বর
  24. 8থেকে File::APPEND: ফ্ল্যাগটি কোনও ফাইলে সংযুক্ত করতে
    • এটি ব্যাখ্যার চারপাশে একটি ফাঁক 4. আমি ব্যবহার নাও করতে পারি IO, তবে Fileধ্রুবকদের কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত IO, তাই File::APPENDপাওয়ার আলাদা উপায় IO::APPEND
  25. 6থেকে 'aaaaaa'.size: স্ট্রিংয়ের দৈর্ঘ্য # আকার
  26. 8থেকে ?a.encoding.name.sub(/\D+/,''): স্ট্রিং # এনকোডিংয়ের এনকোডিং # নাম স্ট্রিং # সাব নামের অংশ
    • 6 এর ব্যাখ্যা দ্বারা, আমি আবার স্ট্রিং কোট ব্যবহার করতে পারি।
    • রুবি ২.০ থেকে ডিফল্ট এনকোডিংটি ইউটিএফ -8 is আমি "UTF-8" নাম এবং বিকল্প / \ D + / খালি স্ট্রিংয়ের সাথে "UTF-" মিলছে take এটি "8" ফলন দেয়।
  27. 3থেকে %w[a a a].size: অ্যারে অ্যারের দৈর্ঘ্য # আকার
  28. 4থেকে %w[a b c d].to_set.size: সেট অ্যারে # to_set সেট # আকারের উপাদানগুলির সংখ্যা
  29. 3থেকে %w[a a a].count: সমস্ত উপাদানকে অ্যারে # গণনা গণনা করুন
    • অ্যারে # আকার এবং অ্যারে # গণনার মধ্যে পার্থক্যটি হ'ল পরবর্তীটি কোন উপাদানগুলি গণনা করতে হবে তা চয়ন করতে alচ্ছিক যুক্তি গ্রহণ করে। আমি কোনও যুক্তি পাস করি না, সুতরাং এটি সমস্ত উপাদানকে গণনা করে।
  30. 6থেকে Socket::AF_NS: এনএস ঠিকানা পরিবারের জন্য নম্বর
  31. 5থেকে Date.jd(Date::ITALY).wday: শুক্রবার 15 ই অক্টোবর 1582 এর জন্য সপ্তাহের সংখ্যা, যখন ইতালি গ্রেগরিয়ান ক্যালেন্ডারের তারিখে চলে আসে :: জেডি তারিখ # wday
  32. 6থেকে *Digest::MD5.digest(?j).scan(/\d/): "জে" ডাইজেস্ট :: এমডি 5 :: ডাইজেস্ট স্ট্রিং # স্ক্যানের বাইনারি এমডি 5 হজমে প্রথম এএসসিআইআই সংখ্যা
    • স্ট্রিং # স্ক্যান সমস্ত ম্যাচের একটি অ্যারে প্রদান করে। *আর্গুমেন্ট হিসাবে অ্যারে উপাদানের পাসের print। এই অ্যারেটি ["6"]।
  33. 3থেকে Set[?a,?b,?c].count: সমস্ত উপাদান গণনা সেট করুন :: [] গণনাযোগ্য # গণনা
    • ব্যাখ্যার মাধ্যমে 2, অ্যারে # গণনা এবং গণনাযোগ্য # গণনা বিভিন্ন পদ্ধতি।
  34. 8থেকে SignalException.new('FPE').signo: সিগফ্পেপি ক্লাসের সংখ্যা # নতুন সিগন্যাল এক্সসেপশন # সাইনো o
  35. 1থেকে Float::ROUNDS: বৃত্তাকার মোড, এখানে রাউন্ড-টু-নিকটতমের জন্য 1
  36. 1থেকে begin(সম্পর্কে newline) exit false(সম্পর্কে newline) rescue Object(সম্পর্কে newline) $!.status(সম্পর্কে newline) endপ্রস্থান ব্যর্থতার জন্য স্থিতি:
    • এটি একই মান SystemExit.new(false).status, তবে 3 এর ব্যাখ্যা দ্বারা, আমি আর ক্লাসটিকে # নতুন কল করতে পারি না । পরিবর্তে আমি একটি সিস্টেমএক্সিট বাড়াতে এবং উদ্ধার করি।
  37. 7থেকে Process::RLIMIT_NPROC: এক ব্যবহারকারীর জন্য প্রক্রিয়া সংখ্যার জন্য সংস্থান সীমা জন্য নম্বর
  38. 7থেকে :aaaaaaa.size: প্রতীক চিহ্নের আকারের দৈর্ঘ্য
  39. 2থেকে Prime.first: প্রথম প্রাথমিক সংখ্যাটি প্রথম # গণনাযোগ্য
  40. 0থেকে ?/.next: "পরবর্তী" পরবর্তী স্ট্রিং? স্ট্রিং # পরবর্তী
  41. 3থেকে {a:p,b:p,c:p}.size: হ্যাশের দৈর্ঘ্য হ্যাশ # আকারের স্ট্রিং # পি
  42. 0থেকে STDIN.lineno: স্ট্যান্ডার্ড ইনপুট আইও # লিনেনোর জন্য বর্তমান লাইন নম্বর
    • 8 এর ব্যাখ্যা দ্বারা, আমি পুনরায় ব্যবহার করতে পারি না $<। আমি ব্যবহার STDIN। পার্থক্যটি হ'ল এটি $<একটি বৈশ্বিক পরিবর্তনশীল এবং STDINএকটি ধ্রুবক। একটি প্রোগ্রাম $<একটি ভিন্ন ইনপুট সেট করতে পারে , তবে STDINসর্বদা এর মূল মান $<
  43. 3থেকে ?a.crypt('at')[/\d/]: এনক্রিপ্ট করা পাসওয়ার্ড স্ট্রিং # ক্রিপ্ট স্ট্রিং # এ প্রথম ASCII সংখ্যা
    • বিভিন্ন ক্রিপ্ট () ফাংশন সহ সিস্টেম বিভিন্ন ফলাফল দেয়।
  44. 0থেকে {a: :a}.find_index([:a,:a]): প্রথম কীটির সূচক: ক, মান: একটি হ্যাশ গণ্য # ফাইন্ড_ইন্ডেক্স
    • আমি একটি হ্যাশ, না একটি অ্যারের ব্যবহার কারণ এরে # find_index জন্য একটি alias হয় এরে # সূচক , যা আমি শীঘ্রই ব্যবহারের পরিকল্পনা।
  45. 9থেকে /b/=~'aaaaaaaaab': সূচি যেখানে স্ট্রিং মেলে / b / Regexp # = ~ ~
  46. 1থেকে [?a,?b].index(?b): অ্যারে অ্যারে # সূচীতে প্রথম "বি" এর সূচক
  47. 7থেকে :aaaaaaab=~/b/: সূচি যেখানে প্রতীক মেলে / বি / প্রতীক # = ~ ~
  48. 9থেকে ?\t.ord: ট্যাব "\ t" স্ট্রিং # অর্ডের ASCII মান
  49. 8থেকে 'aaaaaaaab'=~/b/: সূচি যেখানে স্ট্রিং মেলে / বি / স্ট্রিং # = ~ ~
    • 2 এর ব্যাখ্যা দ্বারা, রেজিএক্সপ্লেক্স = = ~ এবং স্ট্রিং # = different বিভিন্ন পদ্ধতি।
  50. 0থেকে open(?/).pos: ফাইল ডিরেক্টরি হিসাবে "/" রুট ডিরেক্টরি খোলার পরে ফাইলের মধ্যে অবস্থান # # IO # টি ওপেন করুন
  51. 5থেকে 'aaaaab'.index(?b): স্ট্রিং স্ট্রিং # সূচকে প্রথম "বি" এর সূচক
  52. 7থেকে ?\a.bytes{|b|break b}: সতর্কতার ASCII মান "\ একটি" স্ট্রিং # বাইট
    • এটি "\ a" এ বাইটগুলি পুনরাবৃত্তি করে কাজ করে তবে প্রথম বাইটটি ফিরে এসে লুপটি ভেঙে দেয়।
  53. 6থেকে 'aaaaaaa'.rindex(?a): স্ট্রিং স্ট্রিং # রিনডেক্সে সর্বশেষ "ক" এর সূচক
  54. 2থেকে %w[a a].map.size: অ্যারি অ্যারে থেকে মানচিত্রের গণকের আকার # মানচিত্রের গণনা # আকার

চিত্তাকর্ষক! আপনার বেশিরভাগ ব্যাখ্যাগুলি যাইহোক নিয়মের সাথে সামঞ্জস্যপূর্ণ। ১. আমি কখনই অনুরোধ, ডিসিফেরেন্সিং এবং অ্যাক্সেস অপারেটরদের সীমাবদ্ধ রাখার ইচ্ছা করি নি, এ কারণেই আমি বলেছিলাম "গাণিতিক, বুলিয়ান, বিট-ওয়াইজ এবং স্ট্রিং" অপারেটররা। ২. নিয়ম অনুসারে overedাকা 3.. নতুনকে পুনরায় ব্যবহার করা অন্য ভাষায় ভাল হবে, কারণ এটি সাধারণত অপারেটর - এটি একই শ্রেণিতে পুনরায় ব্যবহার করা যায় না কারণ এটি একটি নির্মাণকারীকে (অন্তর্নির্মিত ফাংশন) বলে। কেমন আছে রুবিতে? newসত্যই কি সর্বদা একই ছদ্মবেশকে ডাকে বা এটি সাবক্লাসে ওভাররাইড করা হয়? [সিটি।]
মার্টিন এন্ডার

৪. রুবীর জন্য যদি আপনি সেখানে ব্যাতিক্রম করে থাকেন তবে আমি ভাল থাকব, তবে আপনার খেলাধুলার জন্য ধন্যবাদ। ;) ৫ এবং No. না তারা নয়, এ কারণেই কিছু বিধি তাদের মতো করে বলা হয়েছে। That's. এটি একটি ভাল সূক্ষ্ম বিন্দু যা আমি ভেবে দেখিনি। প্রযুক্তিগতভাবে, যদি তারা একই 8 টি উল্লেখ না করে তবে তাদের উভয়টি ব্যবহার করা ভাল। ৮. ভাল কথা, আমি বিল্ট-ইন ভেরিয়েবলগুলি সম্পর্কে ভাবি নি। আমি এটি অন্য কোন জমাটি যথেষ্ট পরিমাণে ভঙ্গ না করে এবং বিধি সংশোধন করে কিনা তা আমি খতিয়ে দেখব fair ফেয়ার খেলার জন্য ধন্যবাদ! :)
মার্টিন এন্ডার

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

5

জাভা, 21 সংখ্যা, 276 টি অক্ষর

class C{public static void main(String[]a){System.out.print((3&5)+"."+(2|4)+Byte.BYTES+2*4+"".length()+(7-4)+~-4+(7+2)+(2<<2)+(int)Math.sqrt('@')+(2^5)+(int)Math.pow(2,2)+32%23+Byte.SIZE+('$'>>2)+Float.BYTES+Long.BYTES+Integer.BYTES+Double.BYTES+Short.BYTES+Math.round(.2));}}

class C {
  public static void main(String[] a) {
    System.out.print(
      (3&5)+       // 1
      "."+         // .
      (2|4)+       // 6
      Byte.BYTES+  // 1
      2*4+         // 8
      "".length()+ // 0
      (7-4)+       // 3
      ~-4+         // 3
      (7+2)+       // 9
      (2<<2)+      // 8
      (int)Math.sqrt('@')+  // 8
      (2^5)+       // 7
      (int)Math.pow(2,2)+   // 4
      32%32+       // 9
      Byte.SIZE    // 8

      // rest of explanation to come later today
    );
  }
}

হা, আমি পছন্দ করি 7-4& -4+7, যে চালাক! :)
মার্টিন এন্ডার

চতুর, তবে আমি মনে করি এটি
কনস্ট্যান্টগুলি

1
@ আরঙ্গু 7কোনও ধ্রুবক নয় তবে একটি আক্ষরিক
মার্টিন এন্ডার

তাহলে আপনি সেখানে কেন থামলেন?
ভ্যালেন্টিন গ্রাগোয়ার

4

রুবি, 74 অক্ষর, 10 সংখ্যা s

এটি কেবল একটি শুরু; আমাকে যেতে হবে তাই আমি পরে এটির উন্নতি করব।

$><<[3-2,?.,3+3,?..size,2**3,$*.size,24/8,7%4,[*7..77][2],2*4,7.next].join

আমার পরে for 76 টি চরিত্র সংরক্ষণ করা হয়েছে, যখন এটি আরও বেশি কঠিন হয়ে উঠবে!


এটি একটি ভাল শুরু! অবশেষে প্রশ্নের চেতনায় একটি উত্তর। :)
মার্টিন এেন্ডার

3

রুবি, 17 ডিজিট, 168 বাইট

$><<[-~0,'.',9-3,3/3,2**3,$.,25%22,'   '=~/$/,2+7,2<<2,"10".oct,2|5,[2,2,2,2].size,[*$....2*5].last,(2^5).succ,'a'.to_i(25).pred,'aaaa'.count('a'),eval(55.chr.next)]*''

Ungolfed:

$><<[
  -~0,                # 1
  '.',                # .
  9-3,                # 6
  3/3,                # 1
  2**3,               # 8
  $.,                 # 0
  25%22,              # 3
  '   '=~/$/,         # 3
  2+7,                # 9
  2<<2,               # 8
  "#{'a'.hex}".oct,   # 8
  2|5,                # 7
  [2,2,2,2].size,     # 4
  [*$....2*5].last,   # 9
  (2^5).succ,         # 8
  'a'.to_i(25).pred,  # 9
  'aaaa'.count('a'),  # 4
  eval(55.chr.next)   # 8
]*''

এখনও বিশেষত চালাক কিছু করতে বাধ্য করা হয়নি, আমি ফিরে এসে অঙ্কগুলি যুক্ত করতে পারি।


1
"বিশেষত চালাক কিছু করতে বাধ্য করা হয়নি"। হ্যাঁ, আমি রুবি, পার্লকে আবিষ্কার করেছি এবং সাধারণ সন্দেহভাজনদের প্রতি অঙ্কের 15 টি চরিত্রের সাথে খুব কঠিন সময় কাটাতে হবে না, তবে আমি সি-ডেরিভেটিভস এবং ম্যাথেমেটিকার মতো বড় স্ট্যান্ডার্ড-লাইব্রেরি সহ আরও বেশ কয়েকটি বিশৃঙ্খলাভুক্ত নামগুলির জায়গা ছেড়ে যেতে চেয়েছিলাম।
মার্টিন এন্ডার

"যদি তারা সত্যিই কেবলমাত্র এলিয়াস হয় তবে কোনও [আপনি তাদের ব্যবহার করতে পারবেন না]"। succএবং nextএলিয়াস হয়।
ডুরকনব

1
প্রথমটিকে একটি ফিক্সনামে বলা হচ্ছে, দ্বিতীয়টি স্ট্রিংয়ে, সুতরাং আমি মনে করি না তারা একই পদ্ধতি হিসাবে গণনা করে।
হিস্টোক্র্যাট

আহ, ভাল পয়েন্ট। যাইহোক, প্রশ্নটি আরও বলেছে "আপনাকে অবশ্যই কোনও পূর্ববর্তী অঙ্ক তৈরি করে এমন কোডটিতে ধ্রুবক ব্যবহার করা উচিত না ..." এবং আপনি $.দুবার ব্যবহার করেন। যদিও, ভালবাসা দরকার $....: ডি
ডোরকনব

2

গল্ফস্ক্রিপ্ট , 17 সংখ্যা

একটি সরল প্রচেষ্টা। গল্ফস্ক্রিপ্টে অনেকগুলি অক্ষরবিহীন এক-অক্ষর অন্তর্নির্মিত থাকতে পারে, তবে এতে সামগ্রিকভাবে অনেকগুলি বিল্ট-ইন থাকে না!

".",                         # 1: string length (separate from array length)
'.'    
3 3+                         # 6: addition
''[49]+                      # 1: string concatenation
-9~                          # 8: bitwise not
2!                           # 0: boolean not
7 4%                         # 3: modulus
4(                           # 3: decrement
7))                          # 9: increment
257 2/2/2/2/2/               # 8: division
4 2*                         # 8: multiplication
22 5- 5- 5-                  # 7: subtraction
2 2?                         # 4: power
[2 5] 2 base                 # 9: base conversion
[2 2 2 2 2 2 2 2],           # 8: array length (separate from str length)
[2 2 2 2 2 2 2 2 2 5]5?      # 9: array.find()
2 2+                         # 4: addition
"2 2*2*"~                    # 8: eval

2
আমি মনে করি আপনি চালিয়ে যেতে পারেন 5,)\; # range, right uncons, flip, and pop
পিটার টেলর

1

বাশ, 65 টি অক্ষরে 5 সংখ্যা

আমি শীঘ্রই এটি আপডেট করব! আপাতত, এটি কেবল মুদ্রণ 1.6180করে এবং এতে কোনও অঙ্ক থাকে না।

false
tr -d ' '<<<$?.`wc -c<<<abcde``nl<<<' '``kill -l FPE`$(())

ব্যাখ্যা

অঙ্কগুলি উত্পন্ন করতে নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করা হয়:

1: প্রস্থান স্থিতি false

6: স্ট্রিং দৈর্ঘ্য

1: nlগালাগালি

8: killসংকেত সংখ্যা

0: একটি খালি অভিব্যক্তির সংখ্যাগত মান


1

ম্যাথমেটিকা 9 8 ডিজিট, 86 83 78 টি অক্ষরে।

10`8FromDigits@#/10^Length@#&@{a/a,3!,-I I,2π/(45°),#&''[],Prime@2,Sqrt@9,4+5}

আউটপুট:

1.6180339

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

হ্যাঁ, এই # & '' [] অনুপস্থিত ইনপুট থেকে ত্রুটি তৈরি করবে, যখন এই ফর্মটিতে এটি উপেক্ষা করে যে এটি কোনও ইনপুট পায় নি। এখনও যেখানে এটি কাজ করে সেখানে এটি ব্যবহার না করার জন্য আমাকে ক্ষমা করবেন না।
ট্যালি

1
ধন্যবাদ. আমি ব্যক্তিগতভাবে [X] = এক্স # & '' [] (মূলত চ দ্বিতীয় ব্যুৎপন্ন প্রিয়জনের
ট্যালি

(মন্তব্যগুলি পরিষ্কার করেছেন)) এটি বেশ দুর্দান্ত তবে আপনি সম্ভবত কোনও অক্ষর সংরক্ষণ করতে পারবেন, #অনুমোদিত অঙ্কের পরিবর্তে এবং কোনও একটি ড্যাশ ফেলে দিয়ে।
মার্টিন এন্ডার

এইভাবে অঙ্কিত আমি সম্ভাব্য ভবিষ্যতের ব্যবহারের জন্য সেই অঙ্কটি সংরক্ষণ করতে সক্ষম হব।
টালি

1

জুলিয়া - 345 টি অক্ষরে 23 অঙ্ক (ঠিক 15 প্রতি সংখ্যায়)

print(div(2,2),'.','/'+7,length(" "),2^3,size([])[end],isqrt(9),int(cbrt(27)),54-45,'h'$'P',[2:22][7],endof("2222222"),count(isodd,[5,5,5,5]),search("Hello man",'n'),nextpow2(5),rsearch("Love boat",'t'),sizeof('й'),("I"summary(b"H"))[22],iceil(float(pi)),iround(cosh(e)),ifloor(exp(catalan)),cmp(5,5),itrunc(5sin(one(Int))),uint(erfcx(-ones())))

আউটপুট: 1.6180339887498948482045

আমি অক্ষর এবং স্ট্রিংগুলিকে ব্যবহারযোগ্য হিসাবে ব্যাখ্যা করেছি, যতক্ষণ না আমি নির্দিষ্ট বর্ণ বা স্ট্রিং পুনরায় ব্যবহার না করি (স্ট্রিংয়ের অক্ষরগুলি পুনরায় ব্যবহার করা যেতে পারে, যতক্ষণ না স্ট্রিংটি ছিল না); তবে আমি নিজেকে কোনও চরিত্রের ইনট মান সরাসরি ব্যবহার করার অনুমতি দিইনি। একটি নন-এসসিআইআই অক্ষর রয়েছে (й)।

আরও পাঠযোগ্য ফ্যাশনে (আসল কোড নয়):

1> div(2,2)
.> '.'
6> '/'+7
1> length(" ")
8> 2^3
0> size([])[end]
3> isqrt(9)
3> int(cbrt(27))
9> 54-45
8> 'h'$'P'
8> [2:22][7]
7> endof("2222222")
4> count(isodd,[5,5,5,5])
9> search("Hello man",'n')
8> nextpow2(5)
9> rsearch("Love boat",'t')
4> sizeof('й')
8> ("I"summary(b"H"))[22]
4> iceil(float(pi))
8> iround(cosh(e))
2> ifloor(exp(catalan))
0> cmp(5,5)
4> itrunc(5sin(one(Int)))
5> uint(erfcx(-ones()))

0

সি ++ প্রতি লাইনে 12.4 অক্ষর, প্রতিটি অঙ্কের জন্য প্রতি লাইন 14 টি অক্ষর ছিল

অপারেটরদের পুনঃব্যবহারের আমার ভুল স্থির করে।

#include <iostream>
#include <math.h>
#define S std::string
#define C(x) std::cout<<x
int main()
{
C(cos(0));
C(char(46));
C('j'%'d');
C('\0'+3-2);
C(sqrt('@'));
C(log(1));
C('c'/'!');
S s("xyz");
C(s.size());
return 0;
}

নিশ্চিত নয় যে এই জাতীয় চরগুলি চার্ট আক্ষরিক হিসাবে গণনা করা হয় কিনা? যদি এই কোডটি গ্রহণযোগ্য হয় তবে তা চিরকালের জন্য চালিয়ে যেতে পারে এবং চর charণ পরিশোধ করা হবে।

#include <iostream>
#define C(x) std::cout<<x
int main()
{
C('b'-'a');//1
C(char(46));//.
C('g'-'a');//6
C('b'-'a');//1
C('i'-'a');//8
C('a'-'a');//0
C('d'-'a');//3
C('d'-'a');//3
C('j'-'a');//9
//etc
return 0;
}

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

হ্যাঁ এটি দেখতে আরও ভাল দেখাচ্ছে তবে আপনি 1একটি উত্পাদন করতে ব্যবহার করছেন 0(যা অনুমোদিত নয়, কারণ 1এটি স্বর্ণের অনুপাতে আগে উপস্থিত হয়েছিল)। এছাড়াও আপনাকে #define S(অন্যটি নয়) গণনা করতে হবে, কারণ এটি কোনও অন্তর্ভুক্ত নয় তবে কেবল একটি শর্টহ্যান্ড ওরফে সংজ্ঞা দিচ্ছে।
মার্টিন এন্ডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.