ট্রিপলগল্ফ - শুধুমাত্র উত্স কোড দৈর্ঘ্য গণনা করা হয় না!


15

এই চ্যালেঞ্জের লক্ষ্য হ'ল এমন একটি প্রোগ্রাম লিখুন যেখানে নিম্নলিখিত তিনটির দৈর্ঘ্য হুবহু:

  • উত্স কোড দৈর্ঘ্য
  • আউটপুটটির দৈর্ঘ্য এটি স্ট্যান্ডার্ড আউটপুটে প্রিন্ট করে
  • সংকলক সতর্কতাগুলির দৈর্ঘ্য এটি আপনার পছন্দের (মোমডেড) সংকলক দিয়ে উত্পন্ন করে

তিনটি মানদণ্ড পূরণের জন্য বিজয়ী হ'ল সংক্ষিপ্ত কোড এবং কমপক্ষে 1 টি অক্ষর দীর্ঘ হতে হবে।

জিনিসগুলি স্পাই করতে, যদি আউটপুটে তিনটির চেয়ে কম আলাদা অক্ষর থাকে তবে এটি প্রতিটিটির দৈর্ঘ্যে 5 পয়েন্ট পেনাল্টি পায় (সুতরাং +10 কেবল যদি একক প্রকারের জন্য, দু'জনের জন্য +5)।

(নিউলাইনগুলি 1 বা 2 অক্ষর হিসাবে বিবেচনা করে, আপনার পছন্দ হিসাবে বিবেচনা করে তবে এটি তিনটি মাপদণ্ডের সাথে সঙ্গতিপূর্ণ হতে হবে Lead তিনটি মাপদণ্ডে নেতৃস্থানীয় এবং অনুসরণকারী শ্বেতস্থানগুলি সমস্ত লাইনে উপেক্ষা করা হবে)

সমান স্কোর ক্ষেত্রে, সবচেয়ে আকর্ষণীয় ফলাফল মুদ্রণ এক (আবর্জনা পরিবর্তে) বিজয়ী হয়।


1
"চরিত্রের ধরণ" কী?
পিটার টেলর

5
এছাড়াও, যদি সংকলকটি অ-সতর্কতা আউটপুট উত্পাদন করে (উদাহরণস্বরূপ "কম্পাইলিং মেইন")? এছাড়াও, যদি উত্স ফাইলটির নাম সতর্কতা বার্তাগুলিতে উপস্থিত হয় (যেমন "foo.c: 1: 1: ...")?
জোয়ে অ্যাডামস

3
আমার পছন্দের অস্ত্রটি ভিবিএ, যার সত্যই সংকলক নেই এবং চালানোর জন্য একটি বাইনারি ফাইল আউটপুট দেয় না (যেমন কিছু অন্যান্য ভাষার ক্ষেত্রে, আমি বিশ্বাস করি)। এটির জন্য কি বিবেচনা আছে, বা আমি কি কেবলমাত্র ডিফল্টর দ্বারা অযোগ্য?
গাফি

2
আমি ভাবছি যদি কোনও ভাষায় ট্রিপল-কুইন সম্ভব হয়?
রাই-

2
বর্ণিত ভাষার জন্য, আমরা কোনও ত্রুটি ঘটলে এমনকি একটি আউটপুট পাই, যেমন একটি ক্ষেত্রে, সেই ত্রুটিগুলি গ্রহণ করা হয় বা কেবল সতর্কতা গ্রহণ করা হয়?
l0n3sh4rk

উত্তর:


14

বাশ, 23 টি অক্ষর

ত্রুটি:

bash: /: Is a directory

সূত্র:

echo       $0-$01234;/;

আউটপুট:

/bin/bash-/bin/bash1234


Brainf * সি কে, 32 টি অক্ষর

এই কোডটি প্রায় 3 সেকেন্ডের জন্য কার্যকর করে এবং থামিয়ে দেয় এবং নিম্নলিখিত ত্রুটি এবং আউটপুট প্রদর্শন করে।

ত্রুটি:

bff: out of memory (-2058691272)

সূত্র:

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

আউটপুট: (হেক্সডাম্প)

0505 0505 0505 0404 0404 0404 0303 0303
0303 0202 0202 0202 0101 0101 0101 0000


সি, 35 টি অক্ষর

সতর্কতা:

b.c:1:30: warning: division by zero

উত্স এবং আউটপুট:

main(){system("cat "__FILE__)/0;;;}


পিএইচপি, 50 টি অক্ষর

সতর্কতা:

PHP Warning:  Division by zero in /tmp/3 on line 1

উত্স এবং আউটপুট:

<?php echo (0/0).''.file_get_contents(__FILE__);?>

1
বাশ উদাহরণটি একটি ত্রুটি, সতর্কবার্তা নয়।
পিটার টেলর

আপনি সি সমাধানের জন্য কোন সংকলকটি ব্যবহার করছেন?
ব্রেডবক্স

@ ব্রেডবক্স জিসিসি সংস্করণ 4.7.0 20120505 (প্রিরিলেজ) (জিসিসি)
l0n3sh4rk

8

সি - 48 অক্ষর

main(i){while(++i<49)putchar(i);putchar('\z');}

দ্রষ্টব্য: একটি চূড়ান্ত (ইউনিক্স-স্টাইল) নিউলাইন অন্তর্ভুক্ত।

gcc a.cপাঠ্য থেকে আউটপুট :

a.c:1:41: warning: unknown escape sequence '\z'

আউটপুটটি a.outবেশিরভাগ মুদ্রণবিহীন অক্ষরগুলির হয়, তাই হেক্সডাম্পের মাধ্যমে পাইপিংয়ের পরে দেখতে এটি দেখতে কেমন:

00000000: 0203 0405 0607 0809 0A0B 0C0D 0E0F 1011  ................
00000010: 1213 1415 1617 1819 1A1B 1C1D 1E1F 2021  .............. !
00000020: 2223 2425 2627 2829 2A2B 2C2D 2E2F 307A  "#$%&'()*+,-./0z

আমার উপলব্ধিটি হ'ল যে মুদ্রণযোগ্য (হুইটপেস?) কেটে গেছে, সুতরাং এটি গণনা করা হবে না। যদি এটি কাজ করে তবে আমি নিজের উত্তরটি উন্নত করতে পারি।
গাফি

1
নিয়ন্ত্রণের অক্ষরগুলি সাধারণত ites t,। N, \ r,। F এবং কখনও কখনও \ v এর ব্যতীত সাদা স্থান হিসাবে বিবেচিত হয় না। এগুলির কোনওই শীর্ষস্থানীয় বা পিছনের অবস্থানে নেই, তাই আমি বুঝতে পেরেছিলাম যে আমি নিরাপদ was
ব্রেডবক্স 17'12

1
আমি মনে করি এটি পুরোপুরি গ্রহণযোগ্য। তারা হোয়াইটস্পেস হয় না, এবং উভয় ক্ষেত্রে এই এসিএম হবার কথা নয় যে প্রয়োজনীয়তা কঠোর। এই "হোয়াইটস্পেস রুল" এর মূল কারণ হ'ল কিছু আইডিই তাদের ভারক সংস্থাপক আউটপুটকে ভারি ফর্ম্যাট করতে পারে।
বনাম

1
@ কপি, বা main(i){i='\z';while(i-->74)putchar(i);}- তবে প্রোগ্রামের আকার হ্রাস করা আসলে পাল্টা উত্পাদনশীল।
ব্রেডবক্স

1
এটি আমার প্রিয় উত্তর, আমি জানি যে ফাইলের বিষয়বস্তুগুলি অ্যাক্সেস করতে আমার নিষেধাজ্ঞা
জাগানো

5

জাভাস্ক্রিপ্ট, 63 66

!function x(){console.log(x+'...');eval(Array(33).join('$'))}()

আউটপুটটি হ'ল:

function x(){console.log(x+'...');eval(Array(33).join('$'))}...

ক্রোমে ত্রুটিটি হ'ল:

ReferenceError: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ is not defined

3

ভিজ্যুয়াল বেসিক। নেট, 185

জিৎ, vbcএটি সংকলনের সতর্কতাগুলির সাথে বেশ ভার্জোজ। যাইহোক, কোডটি হ'ল:

Public Module Main
    Public Sub Main()
        Console.WriteLine(New String("a"c,185))
    End Sub

    Public Function A()
        'This is actually just padding.
        'Hi
    End Function
End Module

(মনে রাখবেন যে তারা ফাঁকা স্থান নয়, ট্যাব হওয়ার কথা)

আউটপুটটি হ'ল:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

এবং সংকলক সতর্কতা হ'ল:

warning BC42105: Function 'A' doesn't return a value on all code paths. A null reference exception could occur at run time when the result is used.

    End Function
    ~~~~~~~~~~~~

(এবার, এটি আসলে চারটি স্থান নয়, ট্যাব নয় s)


3

Zsh , 20 বাইট

<<<   $-$_$_$_$_$_
[

আমরা এখানে যে সমস্যার মুখোমুখি হয়েছি তা উপরের মন্তব্যে ইঙ্গিত করা হয়েছে: প্রতিটি ত্রুটির আগে ল্যাশ নম্বর ছাড়াও প্রোগ্রামটির নাম মুদ্রণ করে জেডএস । সমাধানটি এখানে অপব্যবহারের জন্য এক-চরিত্রের ফাইল নাম ব্যবহার করে। এটি ঠিক কী প্রিন্ট করে এবং ব্যবহার করে তা দেখাতে আমি এটি কোনও সহায়ক স্ক্রিপ্টে জড়িয়ে রেখেছিwc -c স্ট্যাডার, স্টাডআউট এবং উত্স ফাইলটিতে

আউটপুট: 569Xcatcatcatcatcatএকটি নতুন লাইন
ত্রুটিগুলি: s:[:2: ']' expectedএকটি নতুন লাইন পরে


সম্পাদনা: কোনও ফাইলের বাধা ছাড়াই বিকল্প 20 বাইট সমাধান:

<<<$-$-$-$-$_>&1 >&2

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

জেডএস ,, zsh -x10 বাইট

<<<$_$_$_

-xপতাকা xtrace সক্ষম করে। এটির জন্য আবার একটি একক-অক্ষরের ফাইল নাম প্রয়োজন। এটি অনলাইন চেষ্টা করুন!

Zsh zsh -JNTwEDY , 12 বাইট

<<<$->&1 >&2

-flagকোনও ফাইল নামের প্রয়োজন ছাড়া সংক্ষিপ্ত উত্তর। আরও বেশি পতাকা সেট করে এবং $-সেগুলি সমস্ত মুদ্রণ করে। এটি অনলাইন চেষ্টা করুন!


2

জাভাস্ক্রিপ্ট (ফায়ারফক্স 54), 34 বাইট

alert((f=function(x)1234)(56)+f+f)

আউটপুট:

1234function(x)1234function(x)1234

এবং এটি এই সতর্কতাটি ব্রাউজার কনসোলে প্রেরণ করে:

expression closures are deprecated

এটা দেখে মনে হচ্ছে এই ফায়ারফক্স ডেভেলপার সংস্করণ (54.0a2) আমার কপি হবে। এটি ফায়ারফক্সের অন্যান্য সংস্করণগুলিতেও কাজ করতে পারে।


2

রুবি, 48 টি অক্ষর

IO=1;puts ?a*48;# let's make it 48 bytes long :)

আউটপুট

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

r.rb:1: warning: already initialized constant IO

(ফাইলটি r.rb, আমি পথটি সরিয়েছি, আপনি যদি এটি আরবি থেকে চালনা করেন তবে আপনি পাবেন (আইআরবি): 1: সতর্কতা ...)

রুবিতে সতর্কতা পদ্ধতি রয়েছে তবে এটি তার আর্গুমেন্টটিকে স্টাডারের কাছে আউটপুট করে দেয়, এটিকে সতর্কতার মতো দেখতে কম দেখায়।


1

পাইথন, 57 বাইট

অন্যান্য অনুবাদকরা সতর্কতাটি অন্যভাবে প্রদর্শন করতে পারেন। এটি কেবল টিআইওতে কাজ করার জন্য পরীক্ষা করা হয়েছিল।

from warnings import*
print("prt"*19)
warn("Warning...!")

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

আউটপুট

prtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprtprt

সতর্কতা

.code.tio:3: UserWarning: Warning...!
  warn("Warning...!")

নোট করুন যে নেতৃস্থানীয় স্পেসগুলি বাইট গণনা অনুসারে গণনা করা হয় না। যদি নেতৃস্থানীয় স্পেসগুলি অগ্রাহ্য না করা হয় তবে এটি 51 বাইটে করা যেতে পারে।


1

জাভাস্ক্রিপ্ট (ES6), 32 30 বাইট

Screen(console.log(Function));

কপি করে প্রিন্ট

ƒ Function() { [native code] }

ক্রোমে এবং তারপরে নিক্ষেপ করে

TypeError: Illegal constructor

আমার আসল 32 বাইট সমাধান:

(x=y=>console.log(x+!0+10)||z)()

প্রথম, প্রিন্ট

y=>console.log(x+!0+10)||ztrue10

এবং ত্রুটি ছুড়ে

ReferenceError: z is not defined

0

ভিবিএ, 39 বাইট

কম্পাইলারের সীমাবদ্ধতায় এই যোগ্যতা অর্জন করে কিনা তা নিশ্চিত নয় তবে:

ইনপুট: (তাত্ক্ষণিক উইন্ডোতে)

For i=1 To 39:a=a & Chr(i):Next:Print a

* আউটপুটে মুদ্রণবিহীন অক্ষর রয়েছে যা এই উইন্ডোতে ভাল খেলেন না play


ভিবিএ কোনও সংকলক সতর্কতা দেয় না তাই আমি মনে করি না যে এটি একটি বৈধ হিসাবে গণ্য
টেলর স্কট

0

পার্ল 6 , 10 বাইট

dd say 1e9

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

STDOUT 1000000000, এবং Bool::TrueSTDERR এ মুদ্রণ করে । উভয়ই একটি অনুবর্তনযোগ্য নিউলাইন তৈরি করে, তবে এই চ্যালেঞ্জের পিছনে সাদা স্থানটিকে অগ্রাহ্য করা হয়। ddএকটি রাকুডো নির্দিষ্ট ডিবাগিং ফাংশন

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