पीपीसीजी खतरे: लुटेरों


18

आप साइट को कितनी अच्छी तरह जानते हैं? चलो पता करते हैं।

यह एक चुनौती है। कॉप का धागा

डाकू के रूप में, आपको निम्न करने की आवश्यकता है:

  1. एक गैर-हटाए गए, गैर-बंद चुनौती का पता लगाएं, जो पुलिस के प्रस्तुत करने से मेल खाती है। चुनौती में निम्नलिखित टैग नहीं हो सकते हैं: , , , , , , , । चुनौती के पास वैध आउटपुट पर प्रतिबंध होना चाहिए।
  2. यहां चुनौती पोस्ट करें, और उस पुलिस वाले से लिंक करें जिसे आप क्रैक कर रहे हैं
  3. पुलिस की पोस्ट में एक "क्रैक किया गया" टिप्पणी जोड़ें, इस उत्तर पर वापस लिंक के साथ

आपको प्रत्येक 24-घंटे की अवधि के लिए 1 अंक, प्लस 1 अंक प्राप्त होगा, सबमिशन अनियंत्रित (अधिकतम 7) रह गया था। टाईब्रेकर टूटी हुई सबमिसिसन की कुल संख्या है।

टिप्पणियाँ:

  • यदि किसी चुनौती के लिए आउटपुट की आवश्यकता होती है X, और आप आउटपुट XYया YXकहांY खाली स्थान के अलावा कुछ भी है, प्रस्तुत है कि चुनौती के लिए मान्य नहीं है।
  • 2016-11-17 की तुलना में नई चुनौती की अनुमति नहीं है।
  • मैं कुछ चुनौतियों पर प्रतिबंध लगाने का अधिकार सुरक्षित रखता हूं यदि वे व्यापक रूप से लागू हैं (सभी सबमिशन के बहुमत पर लागू किया जा सकता है)।
  • सुनिश्चित करें कि आप स्पष्टीकरण के रूप में एक वाक्य या दो जोड़ते हैं (यह आपके जमा को टिप्पणी में बदलने से भी मदद करता है)
  • प्रारंभिक विचार के लिए डैनियल का धन्यवाद !


जवाबों:


5

सिक्के के टॉस के रूप में कई सिर के आधे होने की संभावना की गणना करें।

पुलिस में प्रवेश (कोनोर ओ ब्रायन द्वारा पोस्ट): /codegolf//a/100521/8927

मूल प्रश्न: सिक्का टॉस के रूप में कई सिर के रूप में आधा होने की संभावना की गणना करें।


पोस्ट किए गए समाधान में एक जोड़े को लागू करने की तकनीक थी, जिसके बाद एक ही ऑबफ्यूजन तकनीक की कई परतें थीं। एक बार पहले कुछ ट्रिक्स के बाद, यह वास्तविक कार्य निकालने के लिए एक सरल (यदि थकाऊ!) कार्य बन गया:

nCr(a,b) = a! / ((a-b)! * b!)
result = nCr(x, x/2) / 2^x

कुछ समय के लिए महसूस कर रहा था कि मैं क्या देख रहा था (थोड़ी देर के लिए मुझे किसी चीज़ पर शक करना था)।


चूंकि कॉनर ओ'ब्रायन ने अपने कोड के गहन विवरण को चुनौती दी थी, यहां अधिक दिलचस्प बिट्स का एक प्रकार है:

यह कुछ अंतर्निहित फ़ंक्शन कॉलों को बाधित करने से शुरू होता है। यह फ़ंक्शन नामों को आधार -32 एन्कोडिंग द्वारा प्राप्त किया जाता है, फिर उन्हें एक एकल वर्ण के नए वैश्विक-नामस्थानों को असाइन किया जाता है। केवल 'एटोब' का उपयोग वास्तव में किया जाता है; अन्य 2 सिर्फ लाल-झुंड हैं (eval के रूप में वही शॉर्टहैंड लेता है, केवल ओवरराइड किया जाता है, और btoa बस उपयोग नहीं किया जाता है)।

_=this;
[
    490837, // eval -> U="undefined"       -> u(x) = eval(x) (but overwritten below), y = eval
    358155, // atob -> U="function (M,..." -> u(x) = atob(x)
    390922  // btoa -> U="function (M,..." -> n(x) = btoa(x), U[10] = 'M'
].map(
    y=function(M,i){
        return _[(U=y+"")[i]] = _[M.toString(2<<2<<2)]
    }
);

आगे कोड छिपाने के लिए तुच्छ स्ट्रिंग मिक्स-अप के कुछ जोड़े हैं। ये आसानी से उलट जाते हैं:

u(["","GQ9ZygiYTwyPzE6YSpk","C0tYSki","SkoYSkvZChhLWIpL2QoYikg"].join("K"))
// becomes
'(d=g("a<2?1:a*d(--a)"))(a)/d(a-b)/d(b) '

u("KScpKWIsYShFLCliLGEoQyhEJyhnLGM9RSxiPUQsYT1D").split("").reverse().join("")
// becomes
"C=a,D=b,E=c,g('D(C(a,b),E(a,b))')"

ऑबफसकेशन का थोक gफ़ंक्शन का उपयोग है , जो बस नए कार्यों को परिभाषित करता है। यह पुनरावर्ती रूप से लागू किया जाता है, नए कार्यों को वापस करने वाले कार्यों के लिए, या मापदंडों के रूप में कार्यों की आवश्यकता होती है, लेकिन अंततः सही तरीके से सरल होता है। इससे बाहर आने का सबसे दिलचस्प कार्य है:

function e(a,b){ // a! / ((a-b)! * b!) = nCr
    d=function(a){return a<2?1:a*d(--a)} // Factorial
    return d(a)/d(a-b)/d(b)
}

इस लाइन के साथ एक अंतिम ट्रिक भी है:

U[10]+[![]+[]][+[]][++[+[]][+[]]]+[!+[]+[]][+[]][+[]]+17..toString(2<<2<<2)
// U = "function (M,i"..., so U[10] = 'M'. The rest just evaluates to "ath", so this just reads "Math"

यद्यपि अगला बिट ".pow (T, a)" है, इसलिए यह हमेशा बहुत संभव था कि इसे "गणित" होना चाहिए!

विस्तार कार्यों के मार्ग के साथ मैंने जो कदम उठाए, वे थे:

// Minimal substitutions:
function g(s){return Function("a","b","c","return "+s)};
function e(a,b,c){return (d=g("a<2?1:a*d(--a)"))(a)/d(a-b)/d(b)}
function h(a,b,c){return A=a,B=b,g('A(a,B(a))')}
function j(a,b,c){return a/b}
function L(a,b,c){return Z=a,Y=b,g('Z(a,Y)')}
k=L(j,T=2);
function F(a,b,c){return C=a,D=b,E=c,g('D(C(a,b),E(a,b))')}
RESULT=F(
    h(e,k),
    j,
    function(a,b,c){return _['Math'].pow(T,a)}
);


// First pass
function e(a,b){
    d=function(a){return a<2?1:a*d(--a)}
    return d(a)/d(a-b)/d(b)
}
function h(a,b){
    A=a
    B=b
    return function(a){
        return A(a,B(a))
    }
}
function j(a,b){ // ratio function
    return a/b
}
function L(a,b){ // binding function (binds param b)
    Z=a
    Y=b
    return function(a){
        return Z(a,Y)
    }
}
T=2; // Number of states the coin can take
k=L(j,T); // function to calculate number of heads required for fairness
function F(a,b,c){
    C=a
    D=b
    E=c
    return function(a,b,c){return D(C(a,b),E(a,b))}
}
RESULT=F(
    h(e,k),
    j,
    function(a){return Math.pow(T,a)}
);


// Second pass
function e(a,b){...}
function k(a){
    return a/2
}
function F(a,b,c){
    C=a
    D=b
    E=c
    return function(a,b,c){return D(C(a,b),E(a,b))}
}
RESULT=F(
    function(a){
        return e(a,k(a))
    },
    function(a,b){
        return a/b
    },
    function(a){return Math.pow(2,a)}
);


// Third pass
function e(a,b) {...}
C=function(a){ // nCr(x,x/2) function
    return e(a,a/2)
}
D=function(a,b){ // ratio function
    return a/b
}
E=function(a){return Math.pow(2,a)} // 2^x function
RESULT=function(a,b,c){
    return D(C(a,b),E(a,b))
}

फ़ंक्शन नेस्टिंग की संरचना उपयोगिता के आसपास आधारित है; बाहरी सबसे "डी" / "जे" फ़ंक्शन एक अनुपात की गणना करता है, फिर आंतरिक "सी" / "एच" और "ई" (इनलाइन) फ़ंक्शन आवश्यक सिक्का फ्लिप गणना की गणना करता है। तीसरे पास में हटाए गए "एफ" फ़ंक्शन को एक साथ एक प्रयोग करने योग्य पूरे में जोड़ने के लिए जिम्मेदार है। इसी तरह "के" फ़ंक्शन उन प्रमुखों की संख्या को चुनने के लिए जिम्मेदार है जिन्हें देखने की आवश्यकता है; एक कार्य जिसे यह पैरामीटर बाइंडिंग फ़ंक्शन "L" के माध्यम से "D" / "j" अनुपात फ़ंक्शन के लिए दर्शाता है; पैरामीटर bको ठीक करने के लिए यहां उपयोग किया जाता हैT (यहाँ हमेशा 2, राज्यों की संख्या का सिक्का ले जा सकते हैं किया जा रहा है)।

अंत में, हम प्राप्त करते हैं:

function e(a,b){ // a! / ((a-b)! * b!)
    d=function(a){return a<2?1:a*d(--a)} // Factorial
    return d(a)/d(a-b)/d(b)
}
RESULT=function(a){
    return e(a, a/2) / Math.pow(2,a)
}

बहुत बढ़िया! यह थोड़ा गलत है - eval पर सेट है f। लेकिन बाकी सब सही है! इसके अलावा, कैसे RESULTव्युत्पन्न किया जा सकता है के रूप में विस्तार का एक सा ;)
कॉनर ओ'ब्रायन

@ ConorO'Brien यकीन है; मैंने उन सभी को ढहाने से पहले अपने नोट्स और प्रत्येक फ़ंक्शन की उपयोगिता का स्पष्टीकरण दिया।
डेव

@ ConorO'Brien इनाम के लिए धन्यवाद!
डेव

हमेशा एक खुशी :)
कॉनर ओ'ब्रायन

3

Matl, लुइस Mendo , गणना 2 संख्याओं के बीच भारी दशमलव की संख्या

&:"@FYAYm7>vs

मुझे लगा कि इनपुट्स के साथ खेलने से क्या होता है, लेकिन मैं इस बात का पता नहीं लगा सका कि आपको किस रेंज में पूर्णांकों की संख्या की गणना करनी होगी, जिसकी राशि अंकों की संख्या के 7 गुना से अधिक थी। MATL डॉक्स पढ़ने के बाद, मैंने एक मोटा विवरण दिया कि यह क्या करता है:

&    % Change default input format
:    % Implictly input two integers, create inclusive range
"    % For each item in this range:
  @    % Push the item
  F    % Push false
  YA   % Convert to base N digits; N is false, so this produces base-10 digits
  Ym   % Calculate arithmetic mean
  7>   % Push 1 if this is greater than 7, 0 otherwise
  v    % Concatenate result into array with previous result
  s    % Sum
     % Implicitly end loop and output

मैंने तब "डिजिट योग 7 गुना से अधिक लंबाई" से "औसत अंक 7 से अधिक" की खोज की, जिससे मुझे जो चुनौती मिली उसकी तलाश की।





2

पर्ल, गेब्रियल बेनामी , सुविधाजनक पैलिंड्रोम चेकर

कोड स्पष्ट रूप से किसी प्रकार का पैलिंड्रोम था। एक बार जब मैंने y- - -संरचना को उठाया और देखा कि अनुवाद किया जा रहा है, तो मुझे पता था कि यह क्या चुनौती है।


आपने कुछ सेकंड तक मेरी पिटाई की ... लेकिन पर्ल को डाउनलोड करने में इतना समय लगा।
लैकोनी

@ लिकोनी ईमानदारी से, एक जोड़े ने Ideone पर कोशिश करने के बाद, मैंने कोड चलाने के लिए छोड़ दिया और इसके बजाय इसे पढ़ने की कोशिश की। ;)
डीएलओएस



1

Matl, लुइस Mendo , कम आलोचनात्मक वजन के साथ गणना आलोचनात्मक वजन

dP7EGn:q^1J2/h)ts_hX=Gs[BE]Wd=~>~GBz*

मैंने संख्याओं में परीक्षण किया, और OEIS पर भारित चीज़ पाया ।

फिर मैंने पीपीसीजी पर खोज की, तार लगाने की कोशिश की और यह काम कर गया।


जैसा कि मैंने पुलिस चुनौती में टिप्पणी की, यह वास्तव में मेरे सबमिशन को क्रैक नहीं करता है। दुर्भाग्य से, मुझे लगता है कि इस उत्तर को हटाने की आवश्यकता है
लुइस मेंडू


1

रूबी, हिस्टोक्रेट , एक सत्य-मशीन को लागू करें

कोड एक पुनरावृत्त फ़ंक्शन सिस्टम को परिभाषित करता है जो आधुनिक 7 f(n) = n*(3*n-1)/2तक चलता nहै। 0. 0इसलिए इनपुट तुरंत समाप्त हो जाता है ( 0एक बार मुद्रण के बाद)। इनपुट्स 1देता है 1, जिससे मुद्रण का अनंत लूप बन जाता है 1। अन्य इनपुट 1-3 चरणों के बाद समाप्त हो जाता है अगर प्रारंभिक n0, 2, 3, 5, या 6 mod 7 के अनुरूप है, या हमेशा के लिए बढ़ता है अगर यह 1 या 4 mod 7. के अनुरूप है, लेकिन यह अप्रासंगिक है।


1

हेक्सागोनी, 548 बाइट्स, मार्टिन एंडर

यह " हर प्रोग्राम को प्रिंट करें जो आपके प्रोग्राम में नहीं है " चुनौती है!

प्रिंटों:

Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look

जो इस एक में आउटपुट के समान है । यहाँ सुराग यह था कि अंतिम .मुद्रित नहीं किया गया था। साथ ही, कोड में स्वयं कोई अक्षर नहीं थे, और हम सभी जानते हैं कि आउटपुट में वाक्यांशों में वर्णमाला के सभी अक्षर हैं।


1

पायथन, 935 बाइट्स, मेगा मैन , सबसे छोटा पॉजिटिव बेस 10 पूर्णांक क्या है जो स्वयं की तुलना में छोटे (वर्णों में) प्रोग्राम द्वारा मुद्रित किया जा सकता है?

मैं वास्तव में यह कोशिश नहीं की थी। लेकिन मुझे लगता है कि यह कार्यक्रम की तुलना में एक नंबर लंबा प्रिंट करता है।


यह 99 ** 9999 प्रिंट करता है, जो सिर्फ एक बड़ा है।
पीटर टेलर 10

0

पायथन 3, /codegolf//a/100381/31343

विश्व की आबादी को अनुमानित करने के लिए xkcd के सूत्र का उपयोग करें

मैंने सिर्फ उन चुनौतियों की तलाश की, जिसमें लीप इयर्स शामिल थे (क्योंकि चार चेकर द्वारा डिकोड की गई विभाजनशीलता) और इसका कोई इनपुट नहीं लिया गया था।


हां! मुझे पता था कि यह %4और के कारण स्पष्ट होगा strftime, लेकिन कोड के महत्वपूर्ण हिस्सों को
स्पॉट करने के

आह, मैं भी पास हो रहा था। मुझे लगा कि यह तारीखों के साथ कुछ करना है, 2005 और 2016/2017 को मिल रहा था। अच्छी नौकरी।
Yodle

मुझे आश्चर्य है कि आप में से कोई भी बस कोड नहीं चलाता है, जो आउटपुट उत्पन्न करता है 7.3 328, और उसने खोज की है। चुनौती सीधे आती है।
FlipTack



0

रूबी, वाट , 400 वां प्रश्न समारोह / चुनौती

वह पहली चीज थी जो मैंने "400" की खोज करते समय पाई थी। उस ने कहा, चुनौती गलत है और एक पॉपकॉर्न होना चाहिए और संभवतः उद्देश्य आवश्यकताओं के न होने के लिए भी बंद होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.