কিছু সময় আগে, নিম্নলিখিত প্রশ্ন জিজ্ঞাসা করা হয়েছিল: গল্ফস্ক্রিপ্ট, সিজেম, বা পাইথ? কেবল শিরোনামের ভিত্তিতে, আমি ভেবেছিলাম যে এটি একটি খুব সুন্দর চ্যালেঞ্জ হবে, তবে দুর্ভাগ্যক্রমে, এটি টিপস জিজ্ঞাসা করার প্রশ্নে পরিণত হয়েছিল। আমি যে চ্যালেঞ্জটি পড়তে চেয়েছিলাম তা এখানে:
কে বলেছিলেন যে রিয়েল ওয়ার্ল্ডে গল্ফিংয়ের ভাষা ব্যবহার করা হয়নি? যেহেতু সবাই জানেন, কোড লাইন প্রতি বাগের অনুপাত প্রোগ্রামিং ভাষা ব্যবহারের মতো স্বাধীনভাবে একই, তাই সেই ভাষাগুলির সাথে ডিবাগিং এবং রক্ষণাবেক্ষণ ব্যয় হ্রাস করার একটি সুস্পষ্ট সুযোগ রয়েছে। আপনার সংস্থাটি শেষ পর্যন্ত আলোটি দেখে এবং এর পণ্যগুলি বিকাশের জন্য গল্ফস্ক্রিপ্ট, সিজেম এবং পাইথ ব্যবহার করার সিদ্ধান্ত নিয়েছে।
দুর্ভাগ্যক্রমে, কয়েক মাস পরে, আপনার হার্ড ড্রাইভগুলি কোডের স্নিপেটের সাথে বিশৃঙ্খল হয়ে যায় এবং আপনি জানেন না যে কোনটি কোন ভাষায় লিখিত হয়েছে (এমনকি আপনি পার্ল ব্যবহার করার ক্ষেত্রে আপনার কিছু প্রোগ্রামারকে সন্দেহ করছেন)।
কোন প্রোগ্রামে কোন সিজে্যাম, গল্ফস্ক্রিপ্ট বা পাইথ যে ভাষাতে লেখা আছে তা সনাক্ত করার জন্য আপনাকে অবশ্যই একটি সরঞ্জাম লিখতে হবে। পরিস্থিতি সংকটজনক, আপনি যে কোনও ভাষা ব্যবহার করতে পারেন তবে তা সংক্ষিপ্ত করে রাখুন (ডেটা স্টোরেজ ব্যয়বহুল: আমরা যত বেশি বাইট ব্যবহার করি, তত বেশি খরচ হয়)।
সাধারণ
- সংক্ষিপ্ততম কোড জয়
- স্ট্যান্ডার্ড লুফোলস, ইত্যাদি
- কোনও অনলাইন দোভাষী ব্যবহার করবেন না
- আপনি একটি ফাংশন বা একটি প্রোগ্রাম লিখতে পারেন
- আপনি নিজের ভাষা সনাক্ত করতে ইওল ব্যবহার করতে পারেন
ইনপুট
- আপনার ইনপুটটি স্ট্যান্ডার্ড ইনপুট স্ট্রিম বা স্ট্রিং হিসাবে নেওয়া হয়েছে
- ইনপুটটিতে কেবল ASCII মুদ্রণযোগ্য অক্ষর এবং লাইনফিড রয়েছে
- ইনপুটটির আকার 256 বাইট পর্যন্ত দীর্ঘ
আউটপুট
- আউটপুট আউটপুট প্রবাহে মুদ্রিত হয় বা স্ট্রিং / প্রতীকগুলির ক্রম হিসাবে ফিরে আসে
যদি ইনপুটটি কোনও সন্দেহ ছাড়াই একটি বৈধ এক্স প্রোগ্রাম, এক্স , এক্স ∈ {সিজেম, পাইথ, গল্ফসক্রিপ্ট প্রিন্ট বা রিটার্ন করুন return
মন্তব্য : "সন্দেহ ছাড়াই" এর অর্থ এই নয় যে আপনাকে বোবা বিশ্লেষকের সাথে উত্তর দেওয়ার অনুমতি দেওয়া হয়েছে যা ধারাবাহিকভাবে কোনও ভাষা সনাক্ত করতে ব্যর্থ হয়। জন্য Pyth , আমি আশা সরল প্রোগ্রাম চিনে নিতে দিতে (কিন্তু কোন hardcoding)। একই জন্য যায় CJam ( ঠকাই শীট , উদাহরণ ) এবং Golfscript ( উদাহরণ )। পূর্ববর্তী লিঙ্কগুলি প্রতিটি ভাষার নির্দিষ্টকরণগুলিকে নির্দেশ করে। যদি আপনি কোনও অস্পষ্ট / বেয়েসিয়ান পদ্ধতির ব্যবহার করেন তবে "সন্দেহ ছাড়াই" অর্থ উচ্চ স্তরের আত্মবিশ্বাসের সাথে (উদাহরণস্বরূপ আপনি আপনার শ্রেণিবদ্ধকরণের সাথে 99% স্কোর করেছেন)। আসল পরীক্ষা স্যুট জন্য নীচে দেখুন।
যদি ইনপুটটি একাধিক ভাষায় বৈধ হয় তবে প্রতিটি সনাক্তিত ভাষা মুদ্রিত / ফিরে আসতে হবে। মুদ্রিত হলে, একাধিক আউটপুট (যেমন স্থান, নিউলাইন, কমা ...) এর মধ্যে অবশ্যই একটি বিভাজক থাকতে হবে।
- যে ক্রমে ভাষাগুলি চেষ্টা করা হয়েছে তাতে কিছু যায় আসে না
- আমি কেস (সিজাম, সিজাম, সিজেএএম, স্প্যাম) সম্পর্কে চিন্তা করি না [1]
- তাহলে উপরে ভাষা কেউই সনাক্ত করা হলে, মুদ্রণ "
Probably Perl
" । Mbomb007 এর এই মন্তব্যে ধন্যবাদ , উপরের ক্ষেত্রে আপনিSeriously
4 বাইটের জরিমানা (উভয় স্ট্রিংয়ের মধ্যে পার্থক্য) " " আউটপুটও দিতে পারেন can
[1] কেবল পরিষ্কার করার জন্য, স্প্যামটি অবৈধ
উদাহরণ
-
"Crime predicted: -- Calling: 1--555- "30*{_5<{iAa*:mr}&}/
আউটপুট (একাধিক রিটার্ন মানগুলির উদাহরণ)
["Golfscript", "Cjam"]
ইনপুট
3
আউটপুট (স্ট্যান্ডার্ড আউটপুট উদাহরণ)
golfscript cjam pyth
ইনপুট
if {} aazd
আউটপুট
Probably Perl
শেষ ক্ষেত্রে, ইনপুট প্রোগ্রাম সমস্ত তিনটি অনলাইন দোভাষী দিয়ে একটি ত্রুটি তৈরি করে ।
স্কোরিং, জয়ের মানদণ্ড
সংক্ষিপ্ততম কোড জয়। আপনি যদি "সিরিয়াসলি" আউটপুট দেন তবে 4 বাইট যুক্ত করুন। তারপরে, বোনাস প্রয়োগ করুন।
ব্যর্থ পরীক্ষা
নিম্নলিখিত স্নিপেটগুলি যা উপরের তিনটি ভাষার কোনওরূপে স্বীকৃত হওয়া উচিত নয় ।
ওয়ান-লাইনার (প্রতি লাইন প্রতি একটি প্রবেশ)$^X=~/([a-z]+)[^\/]+$/;print$1,$/
<>;map($s-=(-1)**$_/(2*$_-1),1..$_),$s=!print$s,$/for<>
((THIS IS LISP HAIKU) (TRULY THIS IS LISP HAIKU) (THIS IS LISP HAIKU))
(format t"~@(~{~R~^, ~}~).~%~:*~@(~{~:R~^, ~}~)."(loop for i to 99 collect(1+ i)))
print sum(ord(c) for c in 'Happy new year to you!')
Brainfuck
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
++++++++++++++++++++++++++++++++++++++++++++++++.
-----------------.
++++++++.
+++++.
--------.
+++++++++++++++.
------------------.
++++++++.
পার্ল
@list=( "aaaa",
"aaaaaaaa",
"aaaaaaaaaaaaaaa",
"aaaaaaaaaaaaaaaa",
"aaaaaaaaaaaaaaaaaaaaaaa",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
while (@list) {
for($i=0;$i<6;$i++){
print length($list[$i])." ";
}
print "\n";
}
মাছ
#ifndef __linux
#include "x.h"
#define X/*\
a=1 set -e
+++++++++++++++++++++_+++++++++++++....Hello World!?:Q:
#endif
echo "Hello, World!"
int m(){}
বেসিক পরীক্ষার স্যুট
সেগুলি অবশ্যই পরীক্ষায় উত্তীর্ণ হতে হবে। নীচে প্রতিটি প্রোগ্রামের জন্য এক-লাইনার রয়েছে যেখানে আপনার প্রোগ্রামটি অবশ্যই লেখা হচ্ছে সেই ভাষাটি সনাক্ত করতে হবে (আমি সেগুলির মধ্যে কোনটি বহুভোজী তা পরীক্ষা করে দেখিনি)।
Pyth
*2Q
FNrZTN
FNrZhTN
FNUhTN
VhTN
FNr1hQN
=N5N
K5K
K1FNr1hQ=K*KN
K1FNr1hQ=K*KNK
K1FNr1hQ=K*KN;K
DhZK*3ZRK
L?b*bytb1yQ
A(Z1)VQHA(H+HG
Golfscript
;'2706 410'~{.@\%.}do;
;''6666,-2%{2+.2/@*\/10.3??2*+}*`50<~\;
'Hello, world!'
1 2 [\]
CJam
"Hello, world"
{`"_~"}_~
"`_~"`_~
T1{_2$+}A*]`
{__'`>\'x>26*2-*-}/
Y38#
N/s:X,8-,{X>9<__{'a<},,\4%{'Z>},,*I={4=}{;}?}/
সিলভার বোনাস: বাইট-কাউন্ট * 0.6
পূর্ববর্তী সমস্ত পরীক্ষাগুলি পাশাপাশি নীচের ওয়ান-লাইনারগুলি অবশ্যই পাস করতে হবে। এই সমস্ত স্নিপেটগুলি প্রকৃত কোডগল্ফ উত্তর থেকে নেওয়া হয়েছে।
Pyth
VzJ:zZhZpkJ~Zhy}rJ0-G"aeoui
Vzjdm?@zd}N,dt-lzd\ Uz
jd.iSQs*RtQ,\?":0
rsXOtQmO*-GJ"aeiou"J/Q2*%Q2O"hy"4
VhQIq`N_`NN
s["$$\\varphi=1+"*Q"\cfrac1{1+"\\<\dQ"dots"*Q\}"$$
@c"weak trick fair"d-!JlfhT-M.:us_cG.u+NYtKrH7-52hK.zU52 2>J26
Golfscript
);:|;{0):0;|$:§-1%" - "§" = ""0"4$~§~-+-4>:|n|6174`=!}do"Iterations: "0"."
'-+,/'{)))))}%
4:echo(2+2);
#undef X;A!"$%&'()*+-[,.]/0123456789:<=>?@BCDEFGHIJKLMNOPQRSTUVWYZ\^_`abcghijklmopqrstvwxyz{|}~
{`),32>^.}.~
"126,32>''+".~\-'.~\-"'-
"),@`^^32>#.~".~
...[[]]{{}}&%%++++5i
*++..0011125::::;;;?bbbbcccc{}
"This program wasn't written in "o"GolfScript"", it was built for ""CJam"oo"!"
CJam
"Q"c("ASSW"1$("aRD"(((T1
%\@_@){;_0}*__*)\15
"This program wasn't written in "o"GolfScript"", it was built for ""CJam"oo"!"
"P2"1e3K51_,1>K*$K*~]N*
li__,\mf:i2m1+:*/fb:+
ri:B__(^2/):G/,{_BBG/@-(#G@*G(B2/*+*}/]:+
{1$+S@]_1=4+1$`,-S*"2$~"}21D2$~
[S'-26*N]:Z[S'|:PS24*PN]:RR'(PS5*qi:XD=X0<-X2%2*+:Y[" ^ "_" > ""(O)"" - "__]=S8*Y[" ^ "" "" < ""(O)"" - "__]=S5*P')NRRXD=[SPS7*'oA*S7*PN]:QR?Y[[SPS5*'oSC*'oS5*PN]:T_R[SPS7*'oS8*'oS7*PN]RRR]=QY2=TR?RRZ
li4H#+2bW%32<2b
q~:R100:H*\d:T/i){R-H*HT-/m]}6*_H)<*
"JamesBdo,"YZ+/)BA*c+Y*Y%:BS@SB)))[JW:Z____)ci+*]U*
সোনার বোনাস: পূর্ববর্তী স্কোর * 0.8
Pyth
তুলনা করাjdm@cd)._-FQcj"
is
equal greater less
to than
"Qb
তুষারে গঠিত মানবমুর্তি
M@GCHgc" ___
___
_"bhzgc" (_*_)
_===_
.....
/_\\"bhzs[g" \ "@z4\(g"-.oO"@z2g" ,._"@z1g"-.oO"@z3\)g" / "@z5)s[g" < /"@z4\(gc"
:
] [
> <"b@z6\)g" > \\"@z5)++" ("gc"
:
\" \"
___"bez\)
CJam
বৃহৎrri:Hri:Vri:Q[q~]3/_Qa3*a+_|$W%:Pf{\a#}:AH/:B0ff*
P,,[AHAW%HBz:+_W%V\V]2/
ff{~@@f=/::|1#}0Ua4*t:R;
P0f<
V{H{BI=J=_2$=
0R{"I>! I+V<J>! J+H<"4/+4/z{~~}%:&1$*\)}%);2$-|t
}fJ}fI
[P,{_La#\1$0t1$f-}*;;]
{:TR=2/~\~V\-,>\f{\_3$=@~H\-,>{Tt}/t}~}/
:~Pf=:~
~]S*N
তুষারে গঠিত মানবমুর্তি
q:Q;SS"
_===_,___
....., _
/_\,___
(_*_)"',/0{Q=~(=}:G~N" \ "4G'(".oO-"_2G",._ "1G@3G')" / "5GN"< / "4G'(" : ] [> < "3/6G')"> \ "5GNS'(" : \" \"___ "3/7G')
Golfscript
Lorem IpsumLorem ipsum dolor sit amet, consectetur adipiscing elit. Cras imperdiet est ut sem commodo scelerisque. Sed ut ultricies enim. Nam eget lectus suscipit, gravida turpis a, volutpat tellus. Cras efficitur luctus neque, at semper massa condimentum at posuere.
ডিজিটাল ঘড়ি
:*{32' _':$@'14'{?~!=}:&~32}%n*{:x' |':|\'1237'&$x'017'&|x'56'&}%n*{:x|\'134579'&$x'147'&|x'2'&}%
শুভ জন্মদিন
4,{"Happy Birthday "["To You""Dear GolfScript"]@2==n}%
ফারি ক্রম
~:c[,{){.}c(*}%.c/zip{+}*]zip{~{.@\%.}do;1=},{~<},{~\10c?*\/}${'/'*}%', '*'F'c`+' = {0/1, '+\', 1/1}'