मैं एक नंबर (कॉप थ्रेड) के बारे में सोच रहा हूँ


32

यहां डाकू का धागा

इस चुनौती पुलिस में एक सकारात्मक पूर्णांक के बारे में सोचेंगे। वे तब एक प्रोग्राम या फ़ंक्शन लिखेंगे जो इनपुट के रूप में संख्या प्रदान करने पर एक मान और अन्य सभी सकारात्मक पूर्णांक इनपुट के लिए दूसरा मान प्रदान करता है। कॉप्स तब एक उत्तर को गुप्त रखते हुए प्रोग्राम को प्रकट करेंगे। लुटेरे संख्या का पता लगाकर उत्तर को क्रैक कर सकते हैं।

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

यह शायद बिना कहे चला जाता है, लेकिन आपको अपना जवाब देने में सक्षम होना चाहिए। यह है कि आपको पता होना चाहिए कि आपके निर्णय मशीन द्वारा किस मूल्य को स्वीकार किया गया है। बस यह जानना कि एक है काफी नहीं है।

क्रिप्टोग्राफिक कार्यों का उपयोग

अधिकांश पुलिस और लुटेरों की चुनौती के विपरीत जो आपको क्रिप्टोग्राफिक कार्यों का उपयोग नहीं करने के लिए कहते हैं, यह चुनौती न केवल उन्हें पूरी तरह से अनुमति देती है, बल्कि उन्हें प्रोत्साहित करती है। जब तक आप जीतने की कोशिश कर रहे हैं तब तक आप किसी भी तरह से जवाब देने के लिए स्वतंत्र हैं। कहा जा रहा है, अन्य तरीकों का उपयोग करने वाले उत्तर भी यहां स्वागत करते हैं। चुनौती का लक्ष्य जीतना है, और जब तक आप कुछ भी धोखा नहीं देते मेज पर नहीं है।


1
यदि आप क्रायोग्राफ़िक फ़ंक्शंस की अनुमति देते हैं, तो मैं कार्यक्रमों पर समय सीमा लगाने की सलाह दूंगा।
ओकेक्स

12
मैंने इस चुनौती को कम कर दिया, क्योंकि अधिकांश भाषाओं में, यह केवल मैपिंग एल्गोरिथ्म या एक साधारण लूप का उपयोग करके क्रैक किया जा सकता है। मैं समझता हूं कि पुलिस और लुटेरों की चुनौती के लिए थोड़ा आसान है ।
श्री एक्सकोडर

2
मुझे ऐसा लगता है कि बहुत सारे पुलिस वाले होने वाले हैं जो एक (शायद सबसे छोटा) मूल्य को जानते हैं, लेकिन यह नहीं जानते कि क्या अधिक सही उत्तर हैं या वे क्या हैं।
हिस्टोक्रेट

12
@ Mr.Xcoder हालांकि आप इस बात को खारिज करने के लिए स्वतंत्र हैं कि मैं यह कहूंगा कि यह चुनौती की तरह है और मेरी राय में दोष नहीं है। चुनौती ज्यादातर उन पुलिसकर्मियों के लिए मजेदार है, जिन्हें गणना को धीमा करके जितना संभव हो उतना बलपूर्वक प्रयास करना पड़ता है। अधिक रचनात्मक उत्तरों को अधिक से अधिक कठिन बनाने के लिए छोटे और छोटे संख्याओं का उपयोग करने की अनुमति देना चाहिए।
गेहूं जादूगर

1
@WheatWizard मुझे लगता है यह जीत नहीं होगा, लेकिन यह जैसे एक प्रोग्राम है जो सिर्फ करने के लिए इनपुट तुलना दरार संभव नहीं होगा A(9,9)जहां Aएकरमैन कार्य है।
दोष

जवाबों:


10

टैम्पियो , क्रैक

m:n tulos on luvun funktio tulostettuna m:ään, missä luku on x:n kerrottuna kahdella seuraaja, kun x on luku m:stä luettuna
x:n funktio on luku sadalla kerrottuna sadalla salattuna, missä luku on x alempana sadan seuraajaa tai nolla
x:n seuraajan edeltäjä on x
x:n negatiivisena edeltäjä on x:n seuraaja negatiivisena
nollan edeltäjä on yksi negatiivisena
x salattuna y:llä on örkin edeltäjä, missä örkki on x:n seuraajan seuraaja jaettuna y:llä korotettuna kahteen
sata on kiven kolo, missä kivi on kallio katkaistuna maanjäristyksestä
kallio on yhteenlasku sovellettuna mannerlaatan jäseniin ja tulivuoren jäseniin
tulivuori on nolla lisättynä kallioon
mannerlaatta on yksi lisättynä mannerlaattaan
maanjäristys on kallion törmäys
a:n lisättynä b:hen kolo on yhteenlasku kutsuttuna a:lla ja b:n kololla
tyhjyyden kolo on nolla
x:n törmäys on x tutkittuna kahdellatoista, missä kaksitoista on 15 ynnä 6
x ynnä y on y vähennettynä x:stä

साथ दौड़ो:

python3 suomi.py file.suomi --io

इंटरप्रेटर को स्थापित करने के निर्देशों को जीथब पृष्ठ में शामिल किया गया है। कृपया बताएं कि क्या आपको इसे चलाने में कोई कठिनाई है।

छद्मकोश में कार्यक्रम। कार्यक्रम बहुत धीमी गति से करता है क्योंकि मेरा दुभाषिया सुपर अक्षम है। इसके अलावा, मैंने उपलब्ध किसी भी ऑप्ट-इन ऑप्टिमाइज़ेशन का उपयोग नहीं किया, जो मूल्यांकन के समय को कई मिनट से लेकर लगभग 10 सेकंड तक कम कर सकता है।


1
क्या टैम्पियो के लिए कोई ऑनलाइन दुभाषिया नहीं है?
झबरा

@ शागिर्दी अभी नहीं, दुर्भाग्य से। मुझे शायद पूछना चाहिए कि क्या इसे टीआईओ में जोड़ा जा सकता है।
fergusq


5

पर्ल 6 - फटा हुआ!

एक सख्त अर्थ में, यह एक स्वीकार्य सबमिशन नहीं है क्योंकि यह जीतने के लिए बहुत कठिन प्रयास नहीं करता है। इसके बजाय, यह एक सुखद पहेली की पेशकश करने की उम्मीद करता है।

यह एक "शुद्ध गणित" कार्यक्रम है जिसका उद्देश्य चिंतन द्वारा क्रैक किया जाना है। मुझे यकीन है कि आप समाधान को bruteforce कर सकते हैं (कुछ मैला प्रोग्रामिंग जो मैंने उद्देश्यपूर्ण रूप से प्रतिबद्ध है, सफाई के बाद), लेकिन "पूर्ण क्रेडिट" (: -) के लिए, आपको यह समझाने में सक्षम होना चाहिए कि यह गणित के आधार पर क्या करता है ।

sub postfix:<!>(Int $n where $n >= 0)
{
	[*] 1 .. $n;
}

sub series($x)
{
	[+] (0 .. 107).map({ (i*($x % (8*π))) ** $_ / $_! });
}

sub prefix:<∫>(Callable $f)
{
	my $n = 87931;
	([+] (0 .. $n).map({
		π/$n * ($_ == 0 || $_ == $n ?? 1 !! 2) * $f(2 * $_/$n)
	})).round(.01);
}

sub f(Int $in where $in >= 0)
{
	 { series($_)**11 / series($in * $_) }
}

आप फ़ंक्शन f () को क्रैक करने वाले हैं। (यह वह फ़ंक्शन है जो एक प्राकृतिक संख्या लेता है और दो परिणामों में से एक को वापस करता है।) चेतावनी: जैसा कि @Nitrodon द्वारा दिखाया गया है, कार्यक्रम वास्तव में गलत व्यवहार करता है और अनंत संख्या में इनपुट को "स्वीकार" करता है। चूंकि मुझे यह पता नहीं है कि इसे कैसे ठीक किया जाए, मैं भविष्य के सॉल्वरों के लिए सिर्फ टिप्पणी करता हूं कि मेरे पास जो संख्या थी वह 70000 से कम है

यदि आप इसे TIO में चलाने का प्रयास करते हैं, तो यह समय समाप्त हो जाएगा । यह जानबूझकर किया गया है। (चूंकि यह बिल्कुल भी नहीं चलने वाला है!)

अंत में, मैंने कुछ स्पष्ट रूप से स्पष्ट कोड लिखने की कोशिश की। यदि आप भाषा से परिचित नहीं हैं तो भी आपको इसे धाराप्रवाह पढ़ने में सक्षम होना चाहिए। केवल दो टिप्पणी: वर्ग कोष्ठक [ सेशन ] कम करने का मतलब है ("तह", हास्केल लिंगो में) ऑपरेटर ऑप के साथ एक सूची ; और उप बुलाया postfix:<!>वास्तव में एक उपसर्ग ऑपरेटर नाम परिभाषित करता है! (जैसे इस्तेमाल किया 5!- यह वही करता है जो आप उम्मीद करेंगे)। इसी तरह prefix:<∫>एक के लिए।

मुझे उम्मीद है कि किसी को यह आनंद मिलता है, लेकिन मुझे यकीन नहीं है कि अगर मुझे कठिनाई सही है। बेझिझक मुझे टिप्पणी में बेझिझक: -।

इसे ऑनलाइन आज़माएं!



4

जावास्क्रिप्ट, क्रैक किया गया

मैंने इसे इस बात के लिए उतने ही मोटे तौर पर स्वीकार किया है, जितना कि इस उत्तर के भीतर नहीं हो सकता।

यहाँ कोशिश करो! रन पर क्लिक करें, फिर कंसोल में टाइप करेंguess(n)

यदि आपको गलत उत्तर मिले, तो अपरिभाषित रिटर्न

संपादित करें: किसी तरह मैंने अपने स्कोर की संख्या के बारे में भाग की अनदेखी की। ओह ठीक है, मेरी संख्या बहुत बड़ी है। गुड लक इसे वैसे भी हल करना।



3

जेली , स्कोर: ... 1 ( फटा )

5ȷ2_c⁼“ḍtṚøWoḂRf¦ẓ)ṿẒƓSÑÞ=v7&ðþạẆ®GȯżʠṬƑḋɓḋ⁼Ụ9ḌṢE¹’

इसे ऑनलाइन आज़माएं!

1 वास्तव में मुझे यह प्रकट करने की उम्मीद थी? आओ! ओह, यह 134 का स्कोर है। वहाँ, मैंने कहा!



@ Mr.Xcoder यह लंबे समय तक रहता था ...
आउटगॉल्फ

मैंने अभी जोड़ा है Ç€Gऔर 1...1000इनपुट के रूप में सीमा : पी
श्री Xcoder

आपने 5ȷ2_भाग सही देखा ?
आउटगॉल्फ

नहीं, मैंने कोड लोल को भी नहीं देखा था। बस टेस्ट सूट जोड़ा और देखा कि कहां 1है, तो मैंने शुरुआत से स्ट्रिंग को 1पायथन स्क्रिप्ट में चिपकाया है और इससे पहले शून्य की संख्या गिना है ...
श्री Xcoder

3

अजगर 2 (फटा)

मैं ब्रूट फोर्स का सुझाव नहीं दूंगा। आशा है कि आप जनरेटर पसंद करेंगे!

print~~[all([c[1](c[0](l))==h and c[0](l)[p]==c[0](p^q) for c in [(str,len)] for o in [2] for h in [(o*o*o+o/o)**o] for p,q in [(60,59),(40,44),(19,20),(63,58),(61,53),(12,10),(43,42),(1,3),(35,33),(37,45),(17,18),(32,35),(20,16),(22,30),(45,43),(48,53),(58,59),(79,75),(68,77)]] + [{i+1 for i in f(r[5])}=={j(i) for j in [q[3]] for i in l} for q in [(range,zip,str,int)] for r in [[3,1,4,1,5,9]] for g in [q[1]] for s in [[p(l)[i:i+r[5]] for p in [q[2]] for i in [r[5]*u for f in [q[0]] for u in f(r[5])]]] for l in s + g(*s) + [[z for y in [s[i+a][j:j+r[0]] for g in [q[0]] for a in g(r[0])] for z in y] for k in [[w*r[0] for i in [q[0]] for w in i(r[0])]] for i in k for j in k] for f in [q[0]]]) for l in [int(raw_input())]][0]

इसे ऑनलाइन आज़माएं!

1सही संख्या के लिए आउटपुट , 0अन्यथा।



@ LeakyNun वाह, मैं उम्मीद से थोड़ा तेज।
स्सिफस

एक सुडोकू सॉल्वर ऑनलाइन खोजना मुश्किल नहीं है।
लीक नून

आपके सुडोकू चेकर के साथ कुछ समस्या है: आपने क्षैतिज रेखाओं और ऊर्ध्वाधर रेखाओं को ठीक से जाँच लिया है, लेकिन आपने केवल पहले तीन कक्षों की जाँच की है।
लीक नुन्

@LeakyNun तुम सही हो, एक aहोना चाहिए i+a। मैंने इसे ठीक कर दिया है, लेकिन यह वैसे भी सिकुड़ गया है
Sisyphus

3

हास्केल , फटा

यह विशुद्ध रूप से अंकगणित पर आधारित है। ध्यान दें कि myfunवास्तविक कार्य है, जबकि hसिर्फ एक सहायक कार्य है।

h k = sum $ map (\x -> (x*x)**(-1) - 1/(x**(2-1/(fromIntegral k)))) [1..2*3*3*47*14593]
myfun inp | inp == (last $ filter (\k -> h k < (-7.8015e-5)  )[1..37*333667-1]) = 1
          | otherwise = 0

main = print $ show $ myfun 42 -- replace 42 with your input

इसे ऑनलाइन आज़माएं!


प्रोग्राम को सभी इनपुट पर त्रुटि के बिना समाप्त करना होगा। क्या यह भी असीमित स्मृति पर एक दिन के भीतर खत्म हो जाता है?
michi7x7

आपको मेमोरी की बहुत आवश्यकता है लेकिन आपको निश्चित रूप से असीमित मेमोरी की आवश्यकता नहीं है। यह शायद कार्यान्वयन और आपके हार्डवेयर पर निर्भर करता है। लेकिन यह स्पष्ट रूप से जानवर बल के हमलों को मुश्किल बनाने और कार्यक्रम का विश्लेषण करने के लिए प्रोत्साहित करने के लिए गणना करने के लिए कुछ समय लेने के लिए डिज़ाइन किया गया है। गुडलक :)
निर्दोष


2

जावा, निट्रोडन द्वारा क्रैक किया गया

import java.math.BigDecimal;

public class Main {
    private static final BigDecimal A = BigDecimal.valueOf(4);
    private static final BigDecimal B = BigDecimal.valueOf(5, 1);
    private static final BigDecimal C = BigDecimal.valueOf(-191222921, 9);
    private static BigDecimal a;
    private static BigDecimal b;
    private static int c;

    private static boolean f(BigDecimal i, BigDecimal j, BigDecimal k, BigDecimal l, BigDecimal m) {
        return i.compareTo(j) == 0 && k.compareTo(l) >= 0 && k.compareTo(m) <= 0;
    }

    private static boolean g(int i, int j, BigDecimal k) {
        c = (c + i) % 4;
        if (j == 0) {
            BigDecimal l = a; BigDecimal m = b;
            switch (c) {
                case 0: a = a.add(k); return f(C, b, B, l, a);
                case 1: b = b.add(k); return f(B, a, C, m, b);
                case 2: a = a.subtract(k); return f(C, b, B, a, l);
                case 3: b = b.subtract(k); return f(B, a, C, b, m);
                default: return false;
            }
        } else {
            --j;
            k = k.divide(A);
            return g(0, j, k) || g(1, j, k) || g(3, j, k) || g(3, j, k) || g(0, j, k) || g(1, j, k) || g(1, j, k) || g(3, j, k);
        }
    }

    private static boolean h(int i) {
        a = BigDecimal.ZERO; b = BigDecimal.ZERO; c = 0;
        return g(0, i, BigDecimal.ONE);
    }

    public static void main(String[] args) {
        int i = Integer.valueOf(args[0]);
        System.out.println(!h(i) && h(i - 1) ? 1 : 0);
    }
}

मैं सामान्य हैश और यादृच्छिक कार्यों की तुलना में कुछ अलग करने की कोशिश करना चाहता था। आप कमांड लाइन तर्क के रूप में संख्या को पास कर सकते हैं। 1यदि सही संख्या दी गई है और 0अन्यथा आउटपुट । छोटी संख्या के लिए आप इसे ऑनलाइन भी आज़मा सकते हैं ।

संकेत:

कार्यक्रम का मुख्य भाग एक बहुत अच्छी तरह से ज्ञात एल्गोरिथ्म के एक संस्करण को लागू करता है। एक बार जब आप जानते हैं कि यह क्या करता है, तो आप गुप्त संख्या की गणना करने के लिए दिए गए प्रोग्राम का अनुकूलन कर पाएंगे।

स्पष्टीकरण:

यह कार्यक्रम अच्छी तरह से ज्ञात कोच वक्र (छवि विकिपीडिया से) के द्विघात प्रकार (2 प्रकार) के अनुक्रमण को लागू करता है : गुप्त संख्या पहला पुनरावृत्ति है जो बिंदु (बी, सी) से नहीं गुजरती है। जैसा कि नाइट्रोडॉन द्वारा सही ढंग से मान्यता प्राप्त है , पहले पुनरावृत्ति को छोड़कर हम वक्र के सभी भागों की पुनरावृत्ति को सुरक्षित रूप से अनदेखा कर सकते हैं, जो दिए गए बिंदु से नहीं गुजरते हैं। तदनुसार मूल कार्यक्रम में एक पंक्ति बदलकर, हम ऑनलाइन दुभाषिया में भी सही संख्या की जांच कर सकते हैं ।

Quadratic_Koch_curve_type2_iterations.png


फटा , मुझे लगता है; दौड़ने का समय सीधे सत्यापित करने के लिए बहुत लंबा है, लेकिन मैंने आसान मूल्यों के साथ जांच की और मेरी दरार काम करने लगती है।
नाइट्रोडन

1

पाइथ, क्रैक द एरिक द आउटगोलर *

मैंने इसे जितना संभव हो उतना बाधित करने की कोशिश की।

hqQl+r@G7hZ@c." y|çEC#nZÙ¦Y;åê½9{ü/ãѪ#¤
ØìjX\"¦Hó¤Ê#§T£®úåâ«B'3£zÞz~Уë"\,a67Cr@G7hZ

यहाँ कोशिश करो!

* संख्या 9 थी।



1

सप्तक, स्कोर: ???

यह बहुत अधिक गारंटी है कि किसी भी अन्य संख्या में संख्याओं की सूची के अंत में ठीक 20 यादृच्छिक संख्याएँ नहीं होंगी 1e8

function val = cnr(num)
rand("seed", num);
randomints = randi(flintmax-1,1e4,1e4);
val = isequal(randomints(end+(-20:0))(:), ...
 [7918995738984448
  7706857103687680
  1846690847916032
  6527244872712192
  5318889109979136
  7877935851634688
  3899749505695744
  4256732691824640
  2803292404973568
  1410614496854016
  2592550976225280
  4221573015797760
  5165372483305472
  7184095696125952
  6588467484033024
  6670217354674176
  4537379545153536
  3669953454538752
  5365211942879232
  1471052739772416
  5355814017564672](:));
end

1गुप्त संख्या के लिए आउटपुट , 0अन्यथा।

मैंने इसे ओक्टेव 4.2.0 में चलाया।


"क्रूरता के दौरान नींद और अन्य मंदी को हटाया जा सकता है।"

उसके साथ अच्छा भाग्य :)


यह भी नहीं लगता है कि tio
Okx

1
@ ओएक्सएक्स यह टीआईओ पर कई बार निकलता है, लेकिन यह डेस्कटॉप संस्करण में चलता है।
R

1
क्यों होता है पतन?
गेहूं जादूगर

3
@WheatWizard शायद इसलिए क्योंकि यह सैद्धांतिक रूप से संभव है कि इसकी कई संख्याएँ हैं। इसके अलावा, यह थोड़े उबाऊ tbh है। मैं अधिक मैथी समाधान देखना पसंद करता हूं, आरएनजी थोड़े उबाऊ है।
R

1
@ रिकर लेकिन क्योंकि आप RNG के लिए एक बीज का अनुमान लगा रहे हैं, वह RNG का उपयोग स्वयं अपने कार्य के रूप में कर रहा है जो वास्तव में नियतात्मक है। लेकिन हाँ, यह देखते हुए कि आप जो उम्मीद करते हैं, वह एक-तरफ़ा काम करने में मुश्किल है, एक अच्छी तरह से भरोसा कर सकता है, बस एक यादृच्छिक संख्या के साथ एक स्ट्रिंग "सच" को एन्क्रिप्ट करें और फिर जो भी एन्क्रिप्शन स्कीम चुनी गई थी उसे तोड़ने के लिए चुनौती है। निजी कुंजी खोजने के लिए।
शफलेपेंट

1

ली , स्कोर 239, फटा

(1014750)1sp[l1+sp1-]28^RrnI24^=u;

इसे ऑनलाइन आज़माएं!

मैं यहाँ पर किसी को नहीं जान रहा हूँ, हालाँकि मैं जानता हूँ कि कितनी आसानी से बदल सकता है ... पसीना

स्पष्टीकरण:

(1014750)1sp[l1+sp1-]              # meaningless code that counts up to 1014750 and discards the result
                     28^Rr         # range from 255 to 0
                          nI       # get the index from the range equal to the input
                            24^=   # check if it's 16
                                u; # print the result


1

ब्रेन-फ्लैक , स्कोर 1574 ( क्रैक )

<>(((((((((((((((((((([([(((()()()){}){}){}])]){})))){}{}{}{}()){}){})){}{})){}{})){}((((((((()()){}){}){}){}[()]){}){}){}){}())){})){}){}{}{}){})(((((((((((((((((((()()){}){}()){}){}){}()){}){}()){}){})){}{}())){}{})){}{}){}){}){})(((((((((((((((()()){}()){}()){}){}){}()){}){}){}()){}){}){}()){}()){}()){})<>{({}[()])<>({}({})<({}({})<({}({})<({}({}))>)>)>)<>}({}<>(){[()](<{}>)}<>)

इसे ऑनलाइन आज़माएं!



1

डीसी

#!/bin/dc
[[yes]P] sy [[no]P] sn [ly sp] sq [ln sp] sr [lp ss] st [ln ss] su
?  sa
119560046169484541198922343958138057249252666454948744274520813687698868044973597713429463135512055466078366508770799591124879298416357795802621986464667571278338128259356758545026669650713817588084391470449324204624551285340087267973444310321615325862852648829135607602791474437312218673178016667591286378293
la %
d 0 r 0
=q !=r
10 154 ^ 10 153 ^ +
d la r la
<t !<u
1 la 1 la
>s !>n

इसे ऑनलाइन आज़माएं!


नोट: इस सबमिशन को संशोधित किया गया है क्योंकि इसे सबमिट किया गया था। मूल प्रस्तुत (नीचे) अमान्य था और नीचे की टिप्पणियों में स्लिफ़र द्वारा क्रैक किया गया था। (एक इनपुट 1आउटपुट को जन्म देता है yes, लेकिन एक अन्य संख्या है जो समान परिणाम देती है।)

#!/bin/dc
[[yes]P] sy [[no]P] sn [ly sp] sq [ln sp] sr
?  sa
119560046169484541198922343958138057249252666454948744274520813687698868044973597713429463135512055466078366508770799591124879298416357795802621986464667571278338128259356758545026669650713817588084391470449324204624551285340087267973444310321615325862852648829135607602791474437312218673178016667591286378293
la %
d 0 r 0
=q !=r
10 154 ^ 10 153 ^ +
d la r la
<p !<n

इसे ऑनलाइन आज़माएं!


ऑनलाइन इंटरप्रेटर इनपुट "1" के लिए "हां" देता है। क्या यह अब दरार के रूप में गिना जाता है?
स्लेफ़र

@ सलफ़र सीघ ... हाँ, यह मेरी ओर से एक मूर्खतापूर्ण गलती थी।
जॉन गोवर्स

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

1

रूबी , सुरक्षित, स्कोर:

63105425988599693916

#!ruby -lnaF|
if /^#{eval [$F,0]*"**#{~/$/}+"}$/ && $_.to_i.to_s(36)=~/joe|tim/
  p true
else
  p false
end

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

पहले सशर्त जांच के लिए इनपुट संख्या अहंकार । मूल रूप से मैंने जिस धागे के लिए लिखा था वह संयोग से उसी समय के आसपास टकराया था जब मैंने इसे पोस्ट किया था, लेकिन मुझे लगता है कि किसी ने ध्यान नहीं दिया। दूसरा संख्या को आधार 36 में परिवर्तित करता है, जो अक्षरों को अंकों के रूप में उपयोग करता है, और जांचता है कि क्या स्ट्रिंग में "जो" या "टिम" शामिल हैं। यह सिद्ध किया जा सकता है (थकावट के माध्यम से) कि जो या टिम (जो) नाम का केवल एक नशीली संख्या है, क्योंकि मादक संख्याएं परिमित हैं। सबूत है कि वे परिमित हैं: एक n- अंक संख्या लेने का परिणाम, प्रत्येक अंक को nth पावर तक पहुंचाना, और योग द्वारा बनाया गया हैn*9^n, जबकि n-अंक संख्या का मान n ^ 10 से नीचे है। इन शब्दों के बीच का अनुपात n * (9/10) ^ n है, जो अंततः n के रूप में नीरस रूप से घटता है। एक बार यह 1 से नीचे आने के बाद, कोई n-अंक narcissistic नंबर नहीं हो सकता है।


1

PHP, सुरक्षित, स्कोर:

60,256

<?php

$a = $argv[1];

$b ='0123456789abcdefghijklmnopqrstuvwxyz';

$c = strlen($b);

$d = '';
$e = $a;
while ($e) {
    $d .= $b[$e % $c];
    $e = floor($e / $c);
}

echo ((function_exists($d) && $d($a) === '731f62943ddf6733f493a812fc7aeb7ec07d97b6') ? 1 : 0) . "\n";

आउटपुट 1 अगर सही, 0 अन्यथा।

संपादित करें: मुझे नहीं लगता कि किसी ने भी ऐसा करने की कोशिश की क्योंकि:

यह बल को भंग करना आसान होगा।

स्पष्टीकरण:

मैं इनपुट लेता हूं और इसे "बेस 36" में परिवर्तित करता हूं, लेकिन मैं अंतिम संख्या का उत्पादन करने के लिए अवशेषों को उल्टा नहीं करता। बेस 36 में संख्या 60256 "1ahs" है। अपरिवर्तित, वह "sha1" है, जो PHP में एक फ़ंक्शन है। अंतिम जांच यह है कि sha1 (60256) हैश के बराबर है।



0

पायथन 3, स्कोर: ???

उम्मीद है कि यह, अगर कुछ भी, यह दर्शाता है कि यह वास्तव में एक समस्या का कैसे टूट गया है:

from hashlib import sha3_512

hash_code = 'c9738b1424731502e1910f8289c98ccaae93d2a58a74dc3658151f43af350bec' \
            'feff7a2654dcdd0d1bd6952ca39ae01f46b4260d22c1a1b0e38214fbbf5eb1fb'


def inc_string(string):
    length = len(string)
    if length == 0 or all(char == '\xFF' for char in string):
        return '\x00' * (length + 1)
    new_string = ''
    carry = True
    for i, char in enumerate(string[::-1]):
        if char == '\xFF' and carry:
            new_string = '\x00' + new_string
            carry = True
        elif carry:
            new_string = chr(ord(char) + 1) + new_string
            carry = False
        if not carry:
            new_string = string[0:~i] + new_string
            break
    return new_string


def strings():
    string = ''
    while True:
        yield string
        string = inc_string(string)


def hash_string(string):
    return sha3_512(string.encode('utf-8')).hexdigest()


def main():
    for string in strings():
        if hash_string(string) == hash_code:
            exec(string)
            break


main()

अनिवार्य रूप से, यह कोड जो कुछ भी करता है वह आलसी हर स्ट्रिंग को तब तक संभव बनाता है जब तक कि स्ट्रिंग्स में एक हैश न हो जो ठीक hash_codeऊपर मेल खाता हो । अशिक्षित कोड मूल रूप लेता है:

num = int(input('Enter a number:\n'))
if num == <insert number here>:
    print(1)
else:
    print(0)

के सिवाय <insert number here> एक नंबर के साथ बदल दिया गया है और कोड को लगभग अस्पष्ट बनाने के उद्देश्य से कोड में टिप्पणियां हैं।

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

आशा है कि आप सभी मेरी प्रतिक्रिया पर बहुत क्रोधित नहीं होंगे, मैं बस यह दिखाना चाहता था कि पुलिस और लुटेरे पोस्ट आमतौर पर हैशिंग एल्गोरिदम पर प्रतिबंध क्यों लगाते हैं।


इनपुट स्टड से लिया गया है। आउटपुट एक 1 (एक सही ढंग से अनुमानित संख्या के लिए) या 0 (एक गलत अनुमान के लिए) है।
सोनार 235

मुझे नहीं पता कि आपने इसे सामुदायिक विकि क्यों बनाया है। यह आपका उत्तर है जो दिखता है कि इसे बनाने के लिए काफी काम किया गया था। मैं निश्चित रूप से इस उत्तर को प्रश्न के टूटने का प्रमाण नहीं कहूंगा। यह एक चतुर उत्तर है, जो संभवत: अच्छा स्कोर कर सकता है, (मैं यह भी साबित नहीं कर सकता कि यह 1 के लिए काम नहीं करता है)। एक प्रश्न का बिंदु हमेशा उन उत्तरों को आकर्षित करना है जो प्रश्न को चतुर दिलचस्प तरीकों से आकर्षित करते हैं (और मज़े करने के लिए भी लेकिन मैं आपके मनोरंजन के लिए वाउच नहीं कर सकता), और जहां तक ​​मेरा सवाल है कि ऐसा होता है।
गेहूं जादूगर

3
वास्तव में यह उत्तर अमान्य है। यह लगभग निश्चित रूप से (लंबाई की कोई स्ट्रिंग की खगोलीय संभावना के साथ 512 बिट हैश से मेल खाते हुए) निष्पादन () कुछ और है जो संभवतः इच्छित कोड तक पहुंचने से पहले मान्य अजगर कोड भी नहीं है।
जोशुआ

1
@ sonar235: आपके टुकड़े के टेम्पलेट में 512 से अधिक बिट्स हैं।
जोशुआ

1
यहोशू के उत्तर पर विस्तार करने के लिए: आपका बिट कोड 102 वर्ण लंबा है। विशेष रूप से, आपका प्रोग्राम आपके कोड पर पहुंचने से पहले प्रत्येक 100-वर्ण स्ट्रिंग पर पुनरावृति करेगा। चूँकि आपका कोड 0x00-0xFF में वर्णों से अधिक है, जो कि 256 ^ 100या 2 ^ 800तार है। इस बीच, केवल 2 ^ 512512-बिट हैश हैं। इसका मतलब यह है कि आप जिस स्ट्रिंग्स को संभव से कम से कम 2 ^ 288एक तक फैलाते हैं - ब्रह्मांड में परमाणुओं की संख्या से 10,000 गुना अधिक संख्या में। उस विशेष हैश अप्रयुक्त होने की संभावना अविश्वसनीय रूप से छोटा है
जॉन गोवर्स

0

शून्य एक पूर्णांक पूर्णांक नहीं है। मैं नहीं जानता कि अगर यह इच्छित समाधान था, लेकिन यह काम करता है।
गेहूं जादूगर

0 इरादा समाधान नहीं है।
ED

8
उह, आपका TIO पेज समाधान दिखा रहा है ...
LyricLy

2
इसके अलावा "एक प्रोग्राम या फ़ंक्शन लिखें जो इनपुट के रूप में संख्या प्रदान करने पर एक मान और अन्य सभी सकारात्मक पूर्णांक इनपुट के लिए एक और मूल्य प्रदान करता है "
जोनाथन एलन


0

जावा, स्कोर: 3141592 ( क्रैक )

\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0073\u0073\u0020\u004d\u0061\u006e\u0067\u006f\u0020\u007b
\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0073\u0029\u007b\u0066\u006f\u0072\u0028\u0063\u0068\u0061\u0072\u0020\u0063\u0020\u003a\u0020\u0073\u002e\u0074\u006f\u0043\u0068\u0061\u0072\u0041\u0072\u0072\u0061\u0079\u0028\u0029\u0029\u007b\u0020\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u0028\u0022\u005c\u005c\u0075\u0030\u0030\u0022\u002b\u0049\u006e\u0074\u0065\u0067\u0065\u0072\u002e\u0074\u006f\u0048\u0065\u0078\u0053\u0074\u0072\u0069\u006e\u0067\u0028\u0063\u0029\u0029\u003b\u007d\u007d
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0061\u0072\u0067\u0073\u0029\u0020\u007b\u0069\u006e\u0074\u0020\u0078\u0020\u0020\u003d\u0020\u0049\u006e\u0074\u0065\u0067\u0065\u0072\u002e\u0070\u0061\u0072\u0073\u0065\u0049\u006e\u0074\u0028\u0061\u0072\u0067\u0073\u005b\u0030\u005d\u0029\u003b
\u0064\u006f\u0075\u0062\u006c\u0065\u0020\u0061\u003d\u0020\u0078\u002f\u0038\u002e\u002d\u0033\u0039\u0032\u0036\u0039\u0039\u003b\u0064\u006f\u0075\u0062\u006c\u0065\u0020\u0062\u0020\u003d\u0020\u004d\u0061\u0074\u0068\u002e\u006c\u006f\u0067\u0031\u0030\u0028\u0028\u0069\u006e\u0074\u0029\u0020\u0028\u0078\u002f\u004d\u0061\u0074\u0068\u002e\u0050\u0049\u002b\u0031\u0029\u0029\u002d\u0036\u003b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0028\u0061\u002f\u0062\u003d\u003d\u0061\u002f\u0062\u003f\u0022\u0046\u0061\u0069\u006c\u0022\u003a\u0022\u004f\u004b\u0022\u0020\u0029\u0029\u003b
\u007d\u007d

1
मुझे नहीं लगता कि एक कष्टप्रद पहला कदम जोड़ने के अलावा ओब्यूशन कुछ भी करने जा रहा है।
इंजीनियर टोस्ट


2
@EngineerToast नहीं, वास्तव में नहीं, यह विशुद्ध रूप से आलसी लोगों को डराने के लिए था।
user902383

0

पायथन 3, स्कोर 1 (सुरक्षित)

एक बहुत दिलचस्प समाधान नहीं है, लेकिन एक मृत पुलिस वाले की तुलना में बेहतर सुरक्षित पुलिस है।

import hashlib

def sha(x):
    return hashlib.sha256(x).digest()

x = input().encode()
original = x

for _ in range(1000000000):
    x = sha(x)

print(int(x==b'3\xdf\x11\x81\xd4\xfd\x1b\xab19\xbd\xc0\xc3|Y~}\xea83\xaf\xa5\xb4]\xae\x15wN*!\xbe\xd5' and int(original.decode())<1000))

1लक्ष्य संख्या के लिए आउटपुट , 0अन्यथा। इनपुट स्टड से लिया गया है। अंतिम भाग ( and int(original.decode())<1000) केवल एक उत्तर को सुनिश्चित करने के लिए मौजूद है, अन्यथा स्पष्ट रूप से असीम रूप से कई उत्तर होंगे।


1
क्या आप एक TIO लिंक जोड़ सकते हैं, कृपया?
झबरा

1
भविष्य के लुटेरों के लिए: पूर्णांक से छोटा नहीं लगता है 100000000
श्री एक्सकोडर

1
@ शैग्य यह TIO पर टाइमआउट होगा, SH25256 के अरब पुनरावृत्तियों को चलाने के लिए मेरे कंप्यूटर पर लगभग आधे घंटे का समय लगा।
193 पर L3viathan

2
किसी भी लुटेरों को यह हल करने के लिए एक टीम बनाने के लिए फैंसी? हमें सिर्फ हमारे बीच 1000 से कम की संख्या को विभाजित करने की आवश्यकता है ताकि हमारे पास समय-सीमा से पहले पुनरावृत्त-एसएचए पचाने की गणना करने का समय हो।
जॉन गोवर्स

2
जब तक आप यह साबित नहीं कर सकते कि 1 एकमात्र समाधान है, यह उत्तर अमान्य है। प्रमाण का बोझ उस व्यक्ति पर होना चाहिए जो एक वैध उत्तर देने का दावा कर रहा है।
डेनिस

0

सी (जीसीसी) , स्कोर ???

#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <wmmintrin.h>

#include <openssl/bio.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>

union State
{
    uint8_t u8[128];
    __m128i i128[8];
} state;

void encrypt()
{
    BIO *key = BIO_new_mem_buf
    (
        "-----BEGIN PUBLIC KEY-----\n"
        "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5CBa50oQ3gOPHNt0TLxp96t+6\n"
        "i2KvOp0CedPHdJ+T/wr/ATo7Rz+K/hzC7kQvsrEcr0Zkx7Ll/0tpFxekEk/9PaDt\n"
        "wyFyEntgz8SGUl4aPJkPCgHuJhFMyUflDTywpke3KkSv3V/VjRosn+yRu5mbA/9G\n"
        "mnOvSVBFn3P2rAOTbwIDAQAB\n"
        "-----END PUBLIC KEY-----\n",
        -1
    );

    RSA *rsa = PEM_read_bio_RSA_PUBKEY(key, &rsa, NULL, NULL);

    uint8_t ciphertext[128];

    RSA_public_encrypt(128, state.u8, ciphertext, rsa, RSA_NO_PADDING);
    memcpy(state.u8, ciphertext, 128);
}

void verify()
{
    if (memcmp
    (
        "\x93\xfd\x38\xf6\x22\xf8\xaa\x2f\x7c\x74\xef\x38\x01\xec\x44\x19"
        "\x76\x56\x27\x7e\xc6\x6d\xe9\xaf\x60\x2e\x68\xc7\x62\xfd\x2a\xd8"
        "\xb7\x3c\xc9\x78\xc9\x0f\x6b\xf0\x7c\xf8\xe5\x3c\x4f\x1c\x39\x6e"
        "\xc8\xa8\x99\x91\x3b\x73\x7a\xb8\x56\xf9\x28\xe7\x2e\xb2\x82\x5c"
        "\xb8\x36\x24\xfb\x26\x96\x32\x91\xe5\xee\x9f\x98\xdf\x44\x49\x7b"
        "\xbc\x6c\xdf\xe9\xe7\xdd\x26\x37\xe5\x3c\xe7\xc0\x2d\x60\xa5\x2e"
        "\xb8\x1f\x7e\xfd\x4f\xe0\x83\x38\x20\x48\x47\x49\x78\x18\xfb\xd8"
        "\x62\xaf\x0a\xfb\x5f\x64\xd1\x3a\xfd\xaf\x4b\xaf\x93\x23\xf4\x36",
        state.u8,
        128
    ))
        exit(0);
}

static inline void quarterround(int offset)
{
    int dest = (offset + 1) % 8, src = offset % 8;

    state.i128[dest] = _mm_aesenc_si128(state.i128[src], state.i128[dest]);
}

int main(int argc, char *argv[])
{
    if (argc != 2)
        exit(0);

    uint64_t input = strtoull(argv[1], NULL, 0);

    state.i128[0] = _mm_set_epi32(0, 0, input >> 32, input);

    for (uint64_t round = 0; round < 0x1p45; round += 2)
    {
        quarterround(0);
        quarterround(2);
        quarterround(4);
        quarterround(6);

        quarterround(7);
        quarterround(1);
        quarterround(3);
        quarterround(5);
    }

    encrypt();
    verify();
    puts("something");
}

चूंकि क्रिप्टोग्राफिक समाधान को प्रोत्साहित किया जाता है, यहां। वास्तव में एक सकारात्मक पूर्णांक प्रिंट होगा कुछ , अन्य सभी कुछ भी नहीं छापेंगे। इसमें एक लंबा समय लगता है , इसलिए इसे ऑनलाइन परीक्षण नहीं किया जा सकता है।


0

जावा, 164517378918, सुरक्षित

import java.math.*;import java.util.*;
public class T{
    static boolean f(BigInteger i){if(i.compareTo(BigInteger.valueOf(2).pow(38))>0)return false;if(i.longValue()==0)return false;if(i.compareTo(BigInteger.ONE)<0)return false;int j=i.multiply(i).hashCode();for(int k=3^3;k<2000;k+=Math.abs(j%300+1)){j+=1+(short)k+i.hashCode()%(k+1);}return i.remainder(BigInteger.valueOf(5*(125+(i.hashCode()<<11))-7)).equals(BigInteger.valueOf(0));}
    @SuppressWarnings("resource")
    public static void main(String[]a){long l=new Scanner(System.in).nextLong();boolean b=false;for(long j=1;j<10;j++){b|=f(BigInteger.valueOf(l-j));}System.out.println(f(BigInteger.valueOf(l))&&b);}
}

0

TI-BASIC, स्कोर: 196164532 गैर-प्रतिस्पर्धात्मक

गुप्त संख्या के लिए 1 लौटाता है, अन्यथा 0।

Ans→rand
rand=1

अधिक जानकारी के लिए randकमांड पर इस पृष्ठ पर नोट देखें ।


8
क्या यह बिलकुल एक मिलान इनपुट संख्या की गारंटी है?
R

@ रिकर: मुझे लगता है कि टीआई कैलकुलेटर आंतरिक रूप से कुछ प्रकार के फ्लोटिंग पॉइंट का उपयोग करता है; अगर रैंड बाकी के रूप में एक ही फ्लोटिंग पॉइंट का उपयोग करता है, तो मुझे पूरा यकीन है कि केवल 1 समाधान है।
जोशुआ

@ जोशुआ मेरा मानना ​​है कि यह L'Ecuyer के एल्गोरिथ्म का उपयोग करता है ।
15

@ जोशुआ "बहुत यकीन" पर्याप्त नहीं है। जब तक आप यह साबित नहीं कर सकते कि केवल 1 समाधान मौजूद है, यह एक वैध उत्तर नहीं है।
R

1
@ डेनिस: 196164532 * 2 के लिए जांच; यदि वह समाधान नहीं है तो कोई अन्य उपाय नहीं है।
जोशुआ

0

पायथन 3 , स्कोर:?

def check(x):
    if x < 0 or x >= 5754820589765829850934909 or pow(x, 18446744073709551616, 5754820589765829850934909) != 2093489574700401569580277 or x % 4 != 1:
        return "No way ;-("
    return "Cool B-)"

इसे ऑनलाइन आज़माएं!

सरल, लेकिन ब्रूट-फोर्स के लिए कुछ समय लग सकता है ;-) एक तेज दरार की प्रतीक्षा कर रहा है ;-)

फुटनोट: पहली दो और अंतिम स्थितियाँ उत्तर को विशिष्ट बनाती हैं।

BTW स्कोर की गणना कैसे की जाती है?

संकेत १

आप उम्मीद कर सकते हैं कि भीतर 2 64 उत्तर होंगे 0 <= x < [the 25-digit prime], लेकिन वास्तव में केवल 4 हैं, और अंतिम स्थिति अन्य को समाप्त करती है 3. यदि आप इसे क्रैक कर सकते हैं, तो आपको अन्य 3 समाधान भी पता चलेंगे।




-2

सी #, मोनो, लिनक्स, अल्फा, स्कोर 1 (सुरक्षित)

class Program
{
public static void Main()
{
//Excluding out-of-range inputs at ppperry's request; does not change solution
//original code:
//var bytes = System.BitConverter.GetBytes((long)int.Parse(System.Console.ReadLine()));
int i;
if (!int.TryParse(System.Console.ReadLine(), out i || i <= 0 || i > 1000000) { System.Console.WriteLine(0); Environment.Exit(0); }
var bytes = System.BitConverter.GetBytes((long)i);
using (var x = System.Security.Cryptography.HashAlgorithm.Create("MD5"))
{
    for (int i = 0; i < 1000000; ++i)
            for (int j = 0; j < 86400; ++j)
                    bytes = x.ComputeHash(bytes);
}
if (bytes[0] == 91 && bytes[1] == 163 && bytes[2] == 41 && bytes[3] == 169)
    System.Console.WriteLine(1);
else
    System.Console.WriteLine(0);
}
}

सावधान। वाकई। वहाँ बाहर बहुत सारे अल्फा सिमुलेटर हैं। एक घबराना के साथ एक का उपयोग करें या यह खत्म नहीं होगा।

यह इस तथ्य पर निर्भर करता है कि अल्फा बड़ा-एंडियन है, जिससे System.BitConverter गलत काम करता है अगर कोई x86 या x64 पर यह कोशिश करता है। मैंने इस जवाब को चुनौती की खराबता को प्रदर्शित करने के लिए कुछ और से ज्यादा लिखा।


1
इसका ठीक एक समाधान नहीं हो सकता है; पूर्णांक की एक अनंत संख्या है, और एमडी 5 फ़ंक्शन में संभावित आउटपुट की एक सीमित संख्या है, इसलिए एक टक्कर होनी चाहिए
pppery

@ चापलूसी: केवल 2 अरब हैं और हालांकि सकारात्मक जड़ें बदल जाती हैं।
जोशुआ

यदि आप इसके बारे में इस तरह सोचते हैं, तो यह 2 ^ 31 से अधिक के इनपुट पर होने वाली त्रुटियां हैं , और इस प्रकार यह अमान्य है।
पीपीपी

@ppperry: अब उस पर कोई त्रुटि नहीं होगी।
जोशुआ

2
जब तक आप यह साबित नहीं कर सकते कि 1 एकमात्र समाधान है, यह उत्तर अमान्य है। प्रमाण का बोझ उस व्यक्ति पर होना चाहिए जो एक वैध उत्तर देने का दावा कर रहा है।
डेनिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.