সবচেয়ে দীর্ঘতম কোডটি লিখতে সবচেয়ে কম কোড


12

আপনার চ্যালেঞ্জটি হ'ল আপনার পছন্দের ভাষায় একটি সংক্ষিপ্ত কোড তৈরি করা যা কোনও .txtফাইলটিতে দীর্ঘতম কোড লেখায় দুটি সংখ্যাকে ইনপুট এবং আউটপুট হিসাবে দুটি সংখ্যা নিয়ে দুটি সংখ্যা গুণ করে

লেখার কাজটি করছে যা আপনার কোডের প্রয়োজন নেই কোনও ইনপুট !

জেনারেটর কোড এবং উত্পন্ন কোড যে কোনও ভাষায় হতে পারে

পাঠ্য ফাইলটি বড় করতে সীমাহীন সিরিজ বা অগ্রগতি ব্যবহার করবেন না । স্কোর বাড়াতে অপ্রয়োজনীয় বিবৃতি ব্যবহার
করবেন না

স্কোরিং

( size of text file generated in bytes )  (without any unnecessary white spaces, tabs or newlines)
-----------------------------------------
     ( size of your code in bytes )  

বিজয়ী

সর্বোচ্চ স্কোর নিয়ে এখন থেকে 1 সপ্তাহের পরে বিজয়ী নির্বাচন করা হবে ।

সম্পাদনা: কোড দুটি সংখ্যার গুণমান ইনপুট এর পরিধি -32768 থেকে 32767 মধ্যে হওয়া উচিত


3
আমি অবশেষে বুঝতে পেরেছি, কিন্তু আপনি আউটপুটটির জন্য কোড বিন্যাস ব্যবহার করার বিষয়টি দেখে মনে হচ্ছে আপনি আক্ষরিক স্ট্রিংটির "সর্বাধিক দীর্ঘ কোড ..." খুঁজছেন।
আন্ডারগ্রাউন্ডোমোনাইল

3
আমার মনে হয় আপনি শুধু ব্যবহার করতে পারেন Comintern দ্বারা এই উত্তরটি পরিবর্তন +করতে *জেনারেটরের প্রোগ্রাম তিনি প্রদান করে, এবং আপনি সম্ভবত ইতিমধ্যেই এই জানি, যেহেতু আপনি যে প্রশ্ন পাশাপাশি উত্তর।
জিওবিটস

@ জিওবিটস আমি আমার উত্তরটি এই উত্তর থেকে দূরে রাখার চেষ্টা করেছি, তবে আমি মনে করি যে প্রচেষ্টা যথেষ্ট নয়, তখন আমার কী উত্পন্ন করতে বলা উচিত, যাতে প্রশ্নটির অন্যান্য প্রশ্ন-উত্তরগুলির সাথে সম্পর্কিত হওয়ার কিছু নেই?
মুকুল কুমার

1
আপনার কী জিজ্ঞাসা করা উচিত তা আমি জানি না , মনে হচ্ছে এখানে কোনও বিজয়ী উত্তরগুলির সাথে নিখুঁতভাবে মিলে যাবে seems
জিওবিটস

@ মুকুলকুমার সম্ভবত দীর্ঘ কোডটি সংক্ষিপ্ত কোড তৈরি করবে? তবে এই প্রশ্নটিকে এটিকে পরিবর্তন করবেন না, পরিবর্তনটি বেশ সরল is তবে এটি আরেকটি কুইন-সম্পর্কিত চ্যালেঞ্জের জন্য ধারণা হতে পারে (যদি এটি আগে জিজ্ঞাসা করা হয়নি)।
মার্টিন এন্ডার

উত্তর:


11

পার্ল / পার্ল, সীমিত সীমার সীমার সাথে সীমাহীন স্কোর

এখানে কিছু কোড যা জিততে পারে না:

$l=-2**5-1;
$h=2**5;
sub p{print@_}
p"sub add {(\$i,\$j)=\@_;\n";
for($i=$l;$i<=$h;++$i){
  for ($j=$l;$j<=$h;++$j){
    p" return ".($i*$j)." if (\$i == $i) && (\$j == $j);\n";
  }
}
p"}print add(<>,<>)\n";

আউটপুট এই ফর্ম আছে:

sub add {($i,$j)=@_;
 return 1089 if ($i == -33) && ($j == -33);
 return 1056 if ($i == -33) && ($j == -32);
 return 1023 if ($i == -33) && ($j == -31);
 return 990 if ($i == -33) && ($j == -30);
...
 return 928 if ($i == 32) && ($j == 29);
 return 960 if ($i == 32) && ($j == 30);
 return 992 if ($i == 32) && ($j == 31);
 return 1024 if ($i == 32) && ($j == 32);
}print add(<>,<>)

আউটপুট ফাইলটি 181030 বাইট দীর্ঘ, তবে স্পেস এবং নিউলাইনগুলি সরিয়ে দেওয়ার পরে এটি কেবল 133109 বাইট দীর্ঘ। সুতরাং, স্কোর 133109/248 = 536.7289 ...

এখানে অন্য কিছু কোড যা জিততে পারে না - এটি প্রথম 2 লাইন বাদে একই প্রোগ্রাম:

$l=-2**6-1;
$h=2**6;

আউটপুট ফাইলটি 718138 বাইট দীর্ঘ, তবে স্পেস এবং নিউলাইনগুলি সরিয়ে দেওয়ার পরে এটি কেবল 532233 বাইট দীর্ঘ। সুতরাং, স্কোর 532233/248 = ~ 2146। উত্তম! 7 টি ফলন using 8750 এর স্কোর ব্যবহার করে 8 টি ~ 35347, 9 ফলন ~ 149129, 10 ফলন 151100000 অ-স্থান / 250 = 604,400 ....

অবশ্যই আমরা এটি যতক্ষণ চাই করতে পারি। উত্স প্রোগ্রামের আকার, এন, ও (লগ (এন)) হিসাবে বৃদ্ধি পাবে। আউটপুট প্রোগ্রামের আকার হ'ল ও (2 * n)। 2 * এন / লগ (এন) এর সীমাটি অনন্তের দিকে চলে যাওয়ার বিষয়টি স্পষ্টতই অনন্ত, সুতরাং আমি যদি কেবল আমার প্রিয় সংখ্যক, গুগলপ্লেক্সে স্থান পাই তবে আমি জিতেছি (যতক্ষণ না কেউ গুগলপ্লেক্স + 1 পরামর্শ দেয়)।


আউটপুট ধরনের কি? যেমন আপনি প্রথম অ-পুনরাবৃত্ত লাইন দিতে পারেন।
মুকুল কুমার

প্রথমবার আমি আসলে পার্ল পড়তে পারি। এটি নামের একটি ফাংশন উত্পন্ন করে addযা দুটি পরামিতি নেয়। তখনই আগমন বিবৃতিগুলির মতো খুঁজছেন যে ফাংশন মান return 39 if ($i == 13) && ($j == 3);থেকে সব মান ব্যবহার $lকরতে $hজন্য $iএবং $j। "শুধুমাত্র অপ্রয়োজনীয় বিবৃতি" নিয়মের স্মার্টাস নমন।
টমসডিং

মুকুল, আমি কয়েকটি নমুনা আউটপুট অন্তর্ভুক্ত করার জন্য উত্তরটি সম্পাদনা করেছি।
skibrianski

@ এসকিবারিয়ানস্কি ভাল তবে এটি সসীম, কারণ আমি, জে যে ভেরিয়েবলের মান রাখতে পারি তা সীমাবদ্ধ। তবে, বেশ বড়।
মুকুল কুমার

Mujul। সীমাবদ্ধ তবে সীমাহীন। আমাকে যে কোনও নম্বর দিন এবং আমি those ভেরিয়েবলগুলি কেবল সামঞ্জস্য করে একটি বৃহত আকারের আউটপুট (বা স্কোর) চয়ন করতে পারি।
skibrianski

9

সি, 27297/245 = 111.4

উত্স কোড (245 বাইট)

#include<stdio.h>
main(int c,char**v){char*s;FILE*f=fopen("/tmp/x.c","w");fprintf(f,"#include<stdio.h>\n#include<stdlib.h>\nmain(){int a=%s,b=%s;printf(\"%s * %s = %%d\\n\",a*b);}",v[1],v[2],v[1],v[2]);fclose(f);system("cc -E /tmp/x.c >add.c");}

কমান্ড লাইনে দুটি পূর্ণসংখ্যক যুক্তি সংকলন করে চালিত হওয়ার পরে এটি তাদের পণ্য গণনা করার জন্য প্রয়োজনীয় কোড সহ অন্য একটি সি ফাইল উত্পন্ন করে এবং -Eপতাকা সহ এটি সংকলন করে । এই পতাকাটি নির্দিষ্ট করে যে সংকলকটি প্রাক প্রসেসিংয়ের পরে পর্যায়ক্রমে থামানো উচিত এবং প্রক্রিয়াজাত উত্স কোড আউটপুট দেয় (এতে সম্পূর্ণ সামগ্রীর stdio.hএবং অন্তর্ভুক্ত থাকবে stdlib.h)।

আউটপুট ফাইল (27297 বাইট)

# 1 "/tmp/x.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/tmp/x.c"
# 1 "/usr/include/stdio.h" 1 3 4
# 64 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/_types.h" 1 3 4
# 27 "/usr/include/_types.h" 3 4
# 1 "/usr/include/sys/_types.h" 1 3 4
# 32 "/usr/include/sys/_types.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 33 "/usr/include/sys/_types.h" 2 3 4

********* LINES 13-1273 OMITTED *********

long long
  strtoq(const char *, char **, int);
unsigned long long
  strtouq(const char *, char **, int);

extern char *suboptarg;
void *valloc(size_t);







# 3 "/tmp/x.c" 2
main(){int a=6,b=7;printf("6 * 7 = %d\n",a*b);}

আউটপুট কোড চালানোর ফলাফল

আউটপুট ফাইলটি সংরক্ষণ করা হয় add.c, যা সংকলন করা যায় এবং সাধারণত চালানো যায়:

$ ./a.out 6 7
$ cc add.c -o add
$ ./add
6 * 7 = 42
$ 

4

পার্ল, 125 অক্ষর, 1,630,326,497.312 স্কোর

আমার অন্যান্য উত্তর হিসাবে একই বেসিক পদ্ধতির, তবে এই সময়টি আপডেট হওয়া নিয়ম অনুসারে -32768 এবং 32767 এর মধ্যে আবদ্ধ এবং সমস্ত অপ্রয়োজনীয় সাদা স্থান পুরোপুরি ছিটকে গেছে:

$l=-($h=32767)-1;print"sub a{";for$i($l..$h){print"return ".$i*$_." if\$_[0]==$i&&\$_[1]==$_;"for$l..$h;}print"}print a<>,<>"

আউটপুট প্রোগ্রামটি এভাবে শুরু হয়:

sub a{return 1073741824 if $_[0]==-32768&&$_[1]==-32768;return 1073709056 if $_[0]==-32768&&$_[1]==-32767;

এবং শেষ:

return 1073643522 if $_[0]==32767&&$_[1]==32766;return 1073676289 if $_[0]==32767&&$_[1]==32767;}print a<>,<>

আউটপুট প্রোগ্রামটি 190GB দীর্ঘ। আরও স্পষ্টভাবে, 203790812164 বাইট। স্কোর = 203790812164/125 = 1630326497.312


3

উইন্ডোজ কমান্ড স্ক্রিপ্ট: ~ 1,000,000,000 pts

কোড: 158 বাইট

আউটপুট: 8 158000000000 বাইট

echo>.txt @goto :%%1_%%2
set,=for /l %%a in (-32768 1 32767) do call :
%,%1 %%a
:1
%,%2 %1 %%a
:2
set/a]=%1*%2
echo :%1_%2>>.txt
echo @echo.%]%^&exit/b0>>.txt

আউটপুট প্রায় অনেকগুলি নিয়ে গঠিত:

@goto :%1_%2
:-32768_-32768
@echo.1073741824&exit/b0
:-32768_-32767
@echo.1073709056&exit/b0
...
:32767_32767
@echo.1073676289&exit/b0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.