कुछ समय पहले, निम्नलिखित प्रश्न पूछा गया था: गोल्फस्क्रिप्ट, सीजाम, या पायथ? केवल शीर्षक के आधार पर, मैंने सोचा कि यह एक बहुत अच्छी चुनौती होगी, लेकिन दुर्भाग्य से, यह एक सवाल है जो युक्तियों के लिए पूछ रहा है। यहाँ चुनौती है जिसे मैं पढ़ना चाहता था:
किसने कहा कि रियलिटी में गोल्फ भाषाओं का उपयोग नहीं किया गया था? जैसा कि हर कोई जानता है, कोड की प्रति पंक्ति बग का अनुपात प्रोग्रामिंग भाषा का स्वतंत्र रूप से उपयोग किया जा रहा है, इसलिए उन भाषाओं के साथ डिबगिंग और रखरखाव लागत को कम करने का एक स्पष्ट अवसर है। आपकी कंपनी ने आखिरकार प्रकाश को देखा और अपने उत्पादों को विकसित करने के लिए गोल्फस्क्रिप्ट, सीजाम और पायथ का उपयोग करने का निर्णय लिया।
दुर्भाग्य से, कुछ महीनों के बाद, आपकी हार्ड ड्राइव कोड के स्निपेट्स के साथ बंद हो जाती है और आपको यह भी नहीं पता होता है कि कौन सी भाषाएं लिखी जाती हैं (आप पर्ल के उपयोग के अपने कुछ प्रोग्रामर पर भी संदेह करते हैं)।
आपको यह जानने के लिए एक टूल लिखना होगा कि सीजाम, गोल्फस्क्रिप्ट या पायथ में से कौन सी भाषा वह प्रोग्राम है जिसमें लिखा गया है। स्थिति गंभीर है, आप अपनी इच्छित किसी भी भाषा का उपयोग कर सकते हैं, लेकिन कृपया इसे छोटा रखें (डेटा संग्रहण महंगा है: हम जितना अधिक बाइट्स का उपयोग करते हैं, उतना ही अधिक खर्च होता है)।
सामान्य
- सबसे छोटा कोड जीत
- मानक खामियां, आदि।
- एक ऑनलाइन दुभाषिया का उपयोग न करें
- आप एक फ़ंक्शन या प्रोग्राम लिख सकते हैं
- आप अपनी खुद की भाषा का पता लगाने के लिए eval का उपयोग कर सकते हैं
इनपुट
- आपका इनपुट मानक इनपुट स्ट्रीम या स्ट्रिंग के रूप में लिया गया है
- इनपुट में केवल ASCII प्रिंट करने योग्य अक्षर और लाइनफीड शामिल हैं
- इनपुट का आकार 256 बाइट तक लंबा है
उत्पादन
- आउटपुट को आउटपुट स्ट्रीम पर प्रिंट किया जाता है या स्ट्रिंग्स / प्रतीकों के अनुक्रम के रूप में लौटाया जाता है
यदि इनपुट बिना किसी शक के वैध एक्स प्रोग्राम है, तो X , X J {CJam, Pyth, Golfscript} को प्रिंट या रिटर्न करें
टिप्पणी : "बिना किसी संदेह के" का मतलब यह नहीं है कि आपको एक गूंगा विश्लेषक के साथ जवाब देने की अनुमति है जो लगातार किसी भी भाषा का पता लगाने में विफल रहता है। के लिए Pyth , मैं उम्मीद सरल कार्यक्रम मान्यता प्राप्त होना (लेकिन कोई hardcoding)। वही सीजेएम ( चीट शीट , उदाहरण ) और गोल्फस्क्रिप्ट ( उदाहरण ) के लिए जाता है। पिछले लिंक प्रत्येक भाषा के विनिर्देशों की ओर इशारा करते हैं। यदि आप एक फजी / बायेसियन दृष्टिकोण का उपयोग करते हैं, तो "एक शक के बिना" का मतलब उच्च स्तर के आत्मविश्वास के साथ होता है (उदाहरण के लिए, आप अपने वर्गीकरण के साथ 99% स्कोर करते हैं)। वास्तविक परीक्षण सूट के लिए नीचे देखें।
यदि इनपुट कई भाषाओं में मान्य है, तो प्रत्येक पता की गई भाषा को मुद्रित / वापस किया जाना चाहिए। जब मुद्रित किया जाता है, तो कई आउटपुट (जैसे स्थान, न्यूलाइन, अल्पविराम ...) के बीच एक विभाजक होना चाहिए।
- जिस क्रम में भाषाओं को आज़माया जाता है वह मायने नहीं रखता
- मैं मामले की परवाह नहीं करता (CJam, cjam, CJAM, SPAM) [1]
- यदि उपरोक्त भाषा में से किसी का भी पता नहीं चला है, तो "
Probably Perl
" प्रिंट करें । Mbomb007 की इस टिप्पणी के लिए धन्यवाद , उपरोक्त मामले में आपSeriously
4 बाइट्स (दोनों तारों के बीच का अंतर) के दंड के लिए " " आउटपुट भी कर सकते हैं ।
[१] बस स्पष्ट होने के लिए, स्पैम अमान्य है
उदाहरण
-
"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(){}
बेसिक टेस्ट सूट
वे परीक्षण हैं जो पास होने चाहिए । Belows प्रत्येक भाषा के लिए एक-लाइनर हैं जहां आपके प्रोग्राम को उस भाषा का पता लगाना चाहिए जो उसमें लिखी जा रही है (मैंने यह नहीं जांचा कि उनमें से कौन-सी पॉलीग्लॉट हैं)।
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 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}'