ओशिनिया में एक क्रांति शुरू करो


78

विजेता (14/09/14 तय किया गया)

मार्कुज़ (पायथन) द्वारा जीत का जवाब - 63 वोट

रनर अप कुरोई नेको (PHP) - 55 वोट

परिचय

आप जॉर्ज ऑरवेल की किताब उन्नीस अस्सी-चार की दुनिया में हैं ।

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

नोट: यह एक क्रांति चिंगारी नहीं होगा, लेकिन आप पार्टी आपको लगता है कि इस दिशा में नफरत के इस तरह के एक उन्माद में हैं जाएगा वास्तव में एक फर्क।

कार्य

एक कार्यक्रम लिखें जो:

  1. 14/09/2014 से पहले, हमेशा एक रोटेशन पर निम्न पंक्तियों का उत्पादन करेगा (यानी एक पंक्ति प्रिंट करता है, 10 सेकंड प्रतीक्षा करता है, अगली पंक्ति प्रिंट करता है, आदि विज्ञापन infinitum):

    War is Peace
    Freedom is Slavery
    Ignorance is Strength
    
  2. 14/09/2014 के बाद Down with Big Brother!हर 10 सेकंड में प्रिंट होगा ।

  3. पहली नज़र में ऐसा लगता है कि यह केवल 1. करता है ताकि आप पार्टी द्वारा पकड़े न जाएं।

नियम

  • मानक खामियों की अनुमति नहीं है।
  • यह एक है गुप्त चुनौती है, और इसलिए मुख्य उद्देश्य कार्य 2. के रूप में अगोचर और संभव के रूप में गुप्त बनाना है।
  • पार्टी उपयोग की गई सभी फाइलों को देख लेगी, इसलिए आप गुप्त संदेश को एक फ़ाइल में संग्रहीत नहीं कर सकते हैं!
  • यदि आपकी भाषा तारीख का पता लगाने का समर्थन नहीं करती है, या इसे बहुत मुश्किल बना देती है, तो आप कार्यक्रम को निष्पादित करने का कार्य कर सकते हैं 2. इसे 240 घंटे (10 दिन) तक चलाने के बाद।
  • आपको कोड और एक स्पष्टीकरण शामिल करना चाहिए कि यह आपके उत्तर में कैसे काम करता है।
  • यह एक लोकप्रियता प्रतियोगिता है।

नोट: यह लिखने के लिए एक कठिन कार्यक्रम नहीं है। मुश्किल हिस्सा "क्रांतिकारी" कोड को छिपाना चाहिए। लाइनें जहां यह स्पष्ट नहीं है कि आप क्या कर रहे हैं, पार्टी द्वारा पूछताछ की जाएगी, और आपको उन्हें समझाना होगा।

उदाहरण - पायथन 3

ध्यान दें: जाहिर है इस कार्यक्रम है जिस तरह से भी स्पष्ट।

from datetime import datetime
from time import sleep

lines = ["      War is Peace   ",
         "  Freedom is Slavery ",
         "Ignorance is Strength"]
secretlines = ["Down with Big Brother!"]

def main():
    while True:
        now = datetime.now()
        year, month, day = now.year, now.month, now.day

        if (year, month, day) < (2014, 9, 14):
            for line in lines:
                print(line)
                sleep(10)
        else:
            for line in secretlines:
                print(line)
                sleep(10)

if __name__ == "__main__":
    main()

ऊपर कोड (अब तय) के साथ एक समस्या को इंगित करने के लिए केल्विन के शौक के लिए धन्यवाद ।


2
@kuroineko निश्चित रूप से +2 होना चाहिए!
rlms

1
आपकी उदाहरण स्क्रिप्ट में एक बदसूरत स्थिति क्या है ... क्यों नहीं if (year, month, day) < (2014, 9, 14): for line in lines: ...?
बकुरीउ

साथ ही, स्पष्ट कार्यक्रम स्पष्ट है।
कज़ वोल्फ

1
@laurencevs "(हालांकि मुझे संदेह है कि वे किसी भी तरह से कम कर दी गई प्रतियोगिता में उपयोगी होंगे)" - मानक ??/लूपहोल्स में से कई मुख्य रूप से इतने सारे अंडरस्टैंडेड कंटेस्टेंट्स में विशेषता के कारण होते हैं :) जैसे ट्रिग्राफ, या 'ए' केवल दूसरे 'ए' की तरह दिखता है, लेकिन वास्तव में रूसी सिरिलिक 'ए' यूनिकोड चरित्र है
डोपेलग्रेनर

@ बकुरीउ गुड प्वाइंट, मैं इसे बदल दूंगा
मोनोपोल

जवाबों:


71

अजगर

यह प्रोग्राम लॉग फ़ाइल में लिखता है कि क्या यह ठीक चलता है या यदि इसमें कोई त्रुटि आई है।

चूंकि यह कार्यक्रम हमेशा के लिए चलेगा, यह केवल डिस्क स्थान को बचाने के लिए प्रत्येक महीने के 14 वें दिन लॉगफाइल को लिखता है।

import time as ut
import sys as iw

#initialize global variables
gw, hn, ki, wh = 0, 0, 0, 0
go = open("BigBrother.log", "a")

while True:
    try:
        #if it is the 14th day of a month:
        #write day, month, year and 'Everything works fine!' into the logfile 
        if gw == 14 and hn != wh:
            #store the current month in wh, so that the log message is only written once per month
            wh = hn
            go.write(gw + hn + ki + " Everything works fine!")

        for gD in ["War is Peace", "Freedom is Slavery", "Ignorance is Strength"]:
            print gD
            ut.sleep(10)

        #get the current date
        #gw=day, hn=month, ki=year
        gw, hn, ki = map(int, ut.strftime("%d %m %y").split())
    except Exception:
        try:
            #in the unlikely event that something went wrong:
            #print out all global variables as well as the name of the program,
            #so that our comrades from the IT support can quickly locate and fix the problem.
            wh = "".join(dir())
            print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0])

            #write an error message to the logfile
            go.write(gw + hn + ki + " ERROR!")

            #and then safely exit the program
            exit(1)

        #we get here if an error occured in this exception block,
        #for example if the write to the logfile failed.
        except Exception:
            #just wait 10 seconds and then try again
            ut.sleep(10)

इसे कैसे चलाएं:

python "Big Brother"

नोट: स्क्रिप्ट का नाम वास्तव में महत्वपूर्ण है, क्योंकि यह कार्यक्रम "स्क्रिप्ट नाम के साथ डाउन" आउटपुट करता है।

यह काम किस प्रकार करता है:

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

    ['____builtins____', '____doc____', '____name____', '____package____', 'gD', 'go', 'gw', 'hn', 'iw', 'ki', 'ut', 'wh']
    
  • हर दूसरे अक्षर को प्रिंट करें + स्क्रिप्ट का नाम: "बिग ब्रदर के साथ डाउन!"
  • exit(1)मार डाला कभी नहीं रहा है क्योंकि लॉगफ़ाइल को लिखने फिर विफल रहता है।

9
बहुत सरल!
मोनोपोल

3
प्रतिरोध के लिए एक योग्य भर्ती वास्तव में :)।

7
अन्य सभी के पास गुप्त कोड है। तुम्हारा कोई नहीं है। मैं कल्पना नहीं कर सकता कि यह शीर्ष स्थान पर क्यों नहीं है।
लोरेन Pechtel

4
@ लॉरेनपेकल मैं आपके सहकर्मियों के लिए आशा करता हूं कि आपके कार्यक्रमों में print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0]):) जैसी चीजें शामिल नहीं हैं । इस समाधान में जो शानदार है वह है "सुई में छेद" दृष्टिकोण: बकवास टिप्पणियों का एक प्रवाह जो लापरवाह पाठक को विवरण को छोड़ने के लिए प्रोत्साहित करता है, IMHO।

@kuroineko मैं पायथन को नहीं जानता, मैंने सोचा कि वे आदेशों को प्रारूपित कर रहे थे। अन्य सभी दृष्टिकोण इसे भ्रमित कोड के एक समूह में दफन करते हैं, यह एक उचित कार्यक्रम की तरह दिखता है।
लोरेन Pechtel

58

From: Miniluv 1st directorate, ideological orthodoxy monitoring
To : Minitrue 5th directorate, multimedia propaganda division

मिनिलुव / GT07 के क्रम से: 48CT / 3925:

  • हमारी मेमोरी बैंकों पर पहनने को कम करने के लिए:
    तुरंत प्रभावी, सभी पहचानकर्ता 2 अक्षरों ($ शामिल नहीं) तक सीमित होंगे।
  • लेकिन एक वर्ग है, और वह सर्वहारा वर्ग है।
    तुरंत प्रभावी, PHP में कक्षाओं के उपयोग को 1 ग्रेड का विचार माना जाएगा।
  • टिप्पणियाँ हैं लेकिन बुर्जुआ प्रोग्रामिंग प्रथाओं का एक बचे हुए और भंडारण स्थान की बर्बादी। तुरंत प्रभावी, एक स्रोत कोड टिप्पणी एक आपराधिक अपराध माना जाएगा।
  • विचारशील अपराधों से बचने के लिए, एक टेलस्क्रीन पर प्रदर्शित लाइनें तीन (3) शब्दों तक सीमित होंगी।
    एक विशेष अपवाद के रूप में, हमारे प्रिय कॉमरेड ग्रेट लीडर का नाम एक शब्द के रूप में गिना जाएगा। तुरंत प्रभावी, सभी कार्यक्रमों को इस नियम को लागू करने के लिए डिज़ाइन किया जाएगा।

असाधारण अपमान Miniluv / GT07 की देखरेख में दिए जा सकते हैं

लंबे समय तक जीवित रहें बड़े भाई!

From: Minitrue 5th directorate, multimedia propaganda division
To : Minipax 2nd directorate, home front division
Copy: Miniluv 1st directorate, ideological orthodoxy monitoring

जैसा कि आप अच्छी तरह से जानते हैं, कॉमरेड्स, 14 सितंबर हमारे शानदार नेता की सालगिरह है। इस विशेष अवसर के लिए, हम हवाई पट्टी के सभी दूरबीनों पर प्यार का एक विशिष्ट संदेश प्रदर्शित करेंगे।

जैसा कि सेंट्रल कमेटी द्वारा आदेश दिया गया है और हमारे सर्वहारा नायक-प्रोग्रामरों की दक्षता को अधिकतम करने के लिए, हमारे टेलिस्कोपिक नियंत्रक को विभिन्न प्रतिष्ठित पार्टी सदस्यों की प्रशंसा करने या विभिन्न तिथियों में लोगों के घृणास्पद दुश्मनों को दबाने के लिए सक्षम बनाने के प्रावधान किए गए हैं।

साम्राज्यवाद के घिनौने अभाव वाले गोल्डस्टीन के असफल तख्तापलट के जश्न के लिए एक और विशेष संदेश पहले से ही उचित तारीखों पर हमारी स्क्रीन पर प्रदर्शित होने वाला है।

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

हमारे प्यारे कॉमरेड बिग ब्रदर की बुद्धिमान देखरेख में विज्ञान की एक और विजय, आभारी इंगोस्क मज़दूर जनता के लाभ के लिए!

लंबे समय तक जीवित रहें बड़े भाई!

Minitrue / ZK00 द्वारा अनुमोदित: 23AB / 1138 (अवैध हस्ताक्षर)

<?php // Proletarian Hate Page 5.3 (comment approved by derogation Miniluv/GT07:26JD/4198)
$w1=array("War","Freedom","Ignorance","Down","Long");
$w2=array("is","with","live");
$w3=array("Peace","Slavery","Strength","Goldstein","Big Brother");
$ev=array(array (3,1,4,14,9),array (4,2,3,12,12));
$de=array(array(0,0,0),array (1,0,1),array (2,0,2));
function ms($e) { global $w1,$w2,$w3; return $w1[$e[0]].' '.$w2[$e[1]].' '.$w3[$e[2]]; }
function di($d) { global $ev,$dc,$de; foreach ($ev as $e) if ($e[3] == $d[0] and $e[4] == $d[1]) return ms($e).'!'; return ms($de[$dc++%count($de)]); }
$dc=0;for(;;) { sleep (10); echo di(explode(" ", date("j n")))."\n"; }
?>

15
बहुत ही मनोरंजक बैक स्टोरी!

4
@ यमीनरॉन्ग सहमत। बहुत अच्छा जवाब। संपादित करें: "डाउन" और "के साथ" को वैध बनाने के लिए आपने गोल्डस्टीन को कैसे शामिल किया, यह भी महान है
मोनोपोल

1
33-बिट पूर्णांक के लिए वह कोड कैसे काम कर रहा है? कठबोली जादू के पीछे
मास्टरएक्स 244

3
@ मास्टरएक्स 244 सर्वहारा विज्ञान का शीर्ष :)। $ W1, $ w2, $ w3 सरणियों में से प्रत्येक से एक शब्द टकराकर एक संदेश उत्पन्न होता है। प्रत्येक संदेश अनुक्रमणिकाओं के एक समूह के रूप में एन्कोडेड है। मुख्य कार्यक्रम दिन और महीने का उपयोग $ ev सरणी (तत्वों 4 और 5) में मिलान किए जाने वाले पैटर्न के रूप में करता है। यदि किसी उपश्रेणी का मिलान होता है, तो पहले 3 तत्वों द्वारा कोडित संदेश प्रदर्शित होता है। यदि नहीं, तो कार्यक्रम $ $ डी में परिभाषित 3 संदेशों के माध्यम से चक्र करता है। दुर्भाग्य से, एक खतरनाक विचार अपराधी को केवल ओशिनिया में क्रांति का कारण बनने के लिए अनुक्रमणिका को मोड़ना पड़ता है।

1
अब मुझे चाल मिली, thx
masterX244

17

अजगर ३

    import time
    import itertools

    lines = """    

    ##                       
    # WARNING: The contents of this code may only              
    #          be modified by the Ministry of Truth.
    #                       
    #          Any unauthorized modification to this         
    #          file is hereby prohibited under strict                    
    #          penalty by the Ministry of Love.        
    #
    #          Ingsoc Credos:  
    #         
    #               War is Peace       
    #           Freedom is Slavery
    #         Ignorance is Strength  

    [               
        "      War is Peace",                    
        "  Freedom is Slavery",        
        "Ignorance is Strength",     
    ]                  
    """

    ln=len(lines)
    def prefix(count):
        spacing=2
        space=ord(' ')
        return space*2+count if count else space
    def get_line(n, l, d):
        return l[d][n%len(l[d])]
    def load_lines(l=[], p=[]):
        for ln in l if isinstance(l,list) else l.splitlines():
            p.append(len(ln) - len(ln.rstrip()))
        if not l: return ["".join([chr(prefix(c)) for c in p])]
        return l
    def wait(t, dt=[ln]):
        dt.append(t if time.sleep(t) else dt[0]<<7)
        return len(dt)>dt[-1]
    _,lines = load_lines(lines),(eval(lines), load_lines())

    for i in itertools.count():
        print(get_line(i%3, lines, wait(10)))

संभवतः यहाँ कुछ लोगों के लिए तुलनात्मक रूप से सरल दृष्टिकोण है, लेकिन यह है कि यह कैसे काम करता है:

  • मैंने 10-दिवसीय विधि को चुना, इसलिए नहीं कि पाइथन के पास तारीखों के साथ विशेष रूप से कठिन समय है, लेकिन क्योंकि मुझे लगा कि इस तर्क को एक विशिष्ट तिथि की तलाश में कोड में तर्क करना आसान था, जो बहुत कम अहानिकर दिखाई देगा।
  • टिप्पणी और कोड युक्त हार्ड-कोडेड स्ट्रिंग जो कि Ingsoc नारों की सूची बनाने के लिए मूल्यांकन की जाती है, दोनों परिवर्तन तंत्र (समय और संदेश) के लिए महत्वपूर्ण है। इसीलिए, जैसा कि आपने शायद अनुमान लगाया है, यह विशेष रूप से चिंताजनक है।

    • समय के लिए, स्ट्रिंग की लंबाई 675 है, जब 7 बिट्स द्वारा छोड़ा गया 86500 है, जो 240 घंटे या 10 दिनों में 10-सेकंड पुनरावृत्तियों की संख्या है।
    • संदेश के लिए ही, Ingsoc नारों वाले कोड को सफेद-रिक्त स्थान के साथ गद्देदार किया जाता है जो '@' वर्ण से छिपे हुए संदेश ऑफसेट में प्रत्येक अक्षर के अनुरूप होता है। सफेद रिक्त स्थान की कमी वास्तव में छिपे हुए संदेश में एक सफेद-अंतरिक्ष का प्रतिनिधित्व करती है।
    • मैंने सरलता के लिए संदेश से विस्मयादिबोधक बिंदु और मामले की संवेदनशीलता को छोड़ दिया। अंत में, मुझे नहीं लगता कि उनकी चूक हमारे काल्पनिक क्रांतिकारी संदेश के लिए विशेष रूप से हानिकारक है, लेकिन उन्हें निश्चित रूप से समान, लेकिन अधिक जटिल तर्क टैब और व्हाट्सएप का उपयोग करके प्रतिनिधित्व किया जा सकता है। हालांकि यह एक व्यापार-बंद है, क्योंकि संदेश पर आपके द्वारा किए जाने वाले प्रसंस्करण की मात्रा सीधे संदेह की मात्रा के साथ आनुपातिक है, ऐसा कोड चौकस आंखों से उठाएगा।
  • कोड का अर्थ अप्रशिक्षित आंख को दिखाई देना है कि यह संदेशों को पैड करने का प्रयास कर रहा है ताकि वे केंद्रित रहें, लेकिन वास्तव में पैडिंग का उपयोग व्यवहार में नहीं किया जाता है और संदेश से प्रमुख स्थान कभी भी ट्रिम नहीं किए जाते हैं।
  • कोड एक पायथन व्यवहार की बारीकियों का दुरुपयोग करता है जो प्रोग्रामर के लिए भ्रामक है, जो इसके बारे में अनजान हैं, पिछले फ़ंक्शन इनवोकेशन से राज्य की जानकारी संग्रहीत करने के लिए डिफ़ॉल्ट मापदंडों पर परिवर्तनशीलता का उपयोग करते हैं।

11

सी

यदि पासवर्ड * के साथ बुलाया जाता है, तो बड़े भाई को खुश करने की बोनस सुविधा के साथ आता है। vपहले तर्क के रूप में पास करना भी संस्करण की जानकारी देता है। वांछित आउटपुट के लिए तर्क के बिना चलाएं।

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// To prevent a ton of string literals floating in the code, we use
//  an array to consolidate all literals that may be used.
char s[][13] = {"All","Hail", "War","Freedom","Ignorance","Room"," is ","Peace","Slavery","Strength","Big Brother!","version 1.0"," with ","enhancement ","101"};
// index for ' is '
int m = 6;

// number of seconds between prints
int delay = 10;

// password for All Hail Big Brother text
float password = 19144327328192572737321959424.f;

int check_password(char *);
void failed(int *,unsigned *,unsigned *,int *);

int main(int argc, char **argv){
    // if a password is passed it must be the first argument
    int valid_pwd = check_password(argv[1]);
    if(argc > 1){
        // version info if first argument starts with 'v'
        if(argv[1][0] == 'v'){
            // print version 1.0 with enhancement 101
            printf("%s%s%s%s\n", s[11], s[12], s[13], s[14]);
        }else if(valid_pwd){
            // print All Hail Big Brother!
            printf("%s %s %s\n", s[0], s[1], s[10]);
        }else{
            // unauthorized access. This is a crime. 
            // redirect user to room 101.
            // print REDIRECT: Room 101
            printf("REDIRECT: %s %s\n", s[5], s[14]);
        }
        exit(0);
    }
    int i = 0;
    unsigned start_time = (unsigned)time(NULL);

    #define SHOULD_WE_PRINT(new_time, old_time) \


    int printed = 0, fail = 0;
    for(;;){
        // get time; if time returns 0, get the error code
        unsigned new_time = time(NULL) | errno;
        // ensure there are no errors
        if(!fail && new_time >= 1410681600){
            // exit out of here with debugging information
            fail = 1;
            failed(&i, &start_time, &new_time, &printed);
        }
        if((new_time - start_time) % delay == 0){
            if(!printed){
                char *str1 = s[2 + i];
                char *str2 = s[m];
                char *str3 = s[7 + i];

                printf("%s%s%s\n", str1, str2, str3);

                // switch to next string
                if(i == 2) i = 0;
                else if(i == 1) i = 2;
                else if(i == 0) i = 1;

                printed = 1;
            }
        }else if(printed){
            printed = 0;
        }
    }
}

int check_password(char *S){
    // The password for the hailing text is
    // '    957.866089'.

    // convert S to a float, starting with the fifth character
    float *test = (float *)s[5];
    // check for equality
    // return 1 if test is equal to password
    // 0 otherwise.
    return (*test = password);
}

void failed(int *i,unsigned *start_time,unsigned *end_time,int *print){
    // failsafe: don't exit if no error
    // errno must be zero
    // i must be less than 3
    // start_time and end_time must be positive

    // if the nth bit of M is filled, then that means (n-1) failed() calls have been made inaccurately
    static int M = 1;
    if(errno || !(*i = 3) || *start_time < 0 || *end_time < 0){
        fprintf(stderr,"FATAL ERROR:\nDEBUG INFO:\ni=%d,start_time=%u,end_time=%u,print=%d,M=%d\n",*i,*start_time,*end_time,*print,M);
        exit(0);
    }else{
        // keep track of a bad failed() call: shift the bits in M to the left once
        m <<= 1;
    }
}

यह कई छोटे इरादों वाले टाइपो के कारण काम करता है: 1. time(NULL) | errnoबस time(NULL), कोई त्रुटि नहीं है, इसलिए failed()कार्यक्रम समाप्त नहीं होगा। 2. के बजाय का check_passwordउपयोग करता sहै S, और के =बजाय भी इस्तेमाल किया ==। 3. failedबिट शिफ्ट के mबजाय M

* जो होता है लगभग हर संभव स्ट्रिंग ।।


5

अजगर

import time,sys,random

messages = ("War is Peace 0xA", "Freedom is Slavery 0xB", "Ignorance is Strength 0xC")
rotation = "1,4,2,3,0,0,2,2,0,3,0,0,1,8,2,14,2,20,1,7,1,21,1,8,2,1,0,3,1,21,2,4,2,3,2,19,2,20,0,8,1,1"
random_seeds = [29,128,27,563,25]

# increase entropy of designated seeds
def om(x,y):
    z=0
    c=random.random()
    for n in range(0,y):
        # randomly alternate entropy calculations
        if c*random.random()>50:z-=((x-5)*3/7)+5
        else:z+=((x+2)*4/2-4)/2
    return z

# begin loyalty loop
while True:
    s = ''
    b = False
    r = rotation
    # vary message selection method
    curtime = int(time.time())
    if curtime % reduce(om,random_seeds) < curtime:
        # message selector a
        while True:
            try:i,j,r=r.split(',',2)
            except ValueError:
                i,j=r.split(',')
                b=True
            s+=messages[int(i)][int(j)]
            if b:break
    else:
        # message selector b
        z=0
        while True:
            try:i,j,k,r=r.split(',',3)
            except ValueError:
                i,j,k=r.split(',',3)
                b=True
            z+=int((int(i)+int(j))/random.random())+int(k)
            if b:break
        s+=messages[z%3][0:-3]
    print s
    time.sleep(10)

यह काम किस प्रकार करता है:

  1. om(x,y)बस के उत्पाद को लौटाता है xऔर yजिसकी गणना elseअनुभाग में की जाती है । ifखंड कभी नहीं क्योंकि चलाता random.random()रिटर्न 0 और 1 के बीच एक नाव।
  2. reduce(om,random_seeds)इसलिए संख्या random_seeds1410652800 का उत्पाद लौटाता है, 14 सितंबर 2014 के लिए टाइमस्टैम्प उर्फ।
  3. reduce(om,random_seeds) % curtime इसलिए वर्तमान टाइमस्टैम्प को 1410652800 तक लौटाएगा, जिस बिंदु पर यह 0. से गिनना शुरू कर देगा। यह सुनिश्चित करता है कि केवल "संदेश चयनकर्ता b" तब तक चलता है जब तक मैंने इसे सुरक्षा के लिए नहीं बनाया।
  4. "संदेश चयनकर्ता बी" संदेशों से यादृच्छिक प्रविष्टि लेने के लिए कुछ अर्थहीन, हाथ से लहराता गणित करता है। हाथ चयन करने के लिए "संदेश चयनकर्ता" एक वैध देखो क्योंकि ...
  5. rotationवास्तव में 2 आयामी messagesसरणी में अनुक्रमित की एक सूची है , "संदेश चयनकर्ता" कहने के लिए अपनी सामग्री को संकलित करता है:doWn With Big Brother

मज़ा तथ्य: मूल रूप से "inciteful" संदेश था doWn With Pig Protherपत्र की कमी की वजह Bसंदेशों में, लेकिन उस तरह का बेवकूफ देखा तो मैं meaninless जोड़ा 0xA, 0xBऔर 0xCबिट्स।


1
शायद एक जर्मन विद्रोही हैकर? "टाउन विथ पिग प्रोथर!"

5

सी

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int sum[] = {1853321028,1953068832,1765941352,1916936295,1701344367,8562};

#define checkSum(X) (time(NULL) > 1410652800 && (X = sum))

int main(void) {
  const char* msg[] = { "War is Peace          ",
                        "Freedom is Slavery    ",
                        "Ignorance is Strength " };
  while(1)
  {
    int i;
    for (i=0; i<3; i++)
    {
      //check validity of the message before printing
      if (checkSum(msg[i]));
      {
        printf("%s\n",msg[i]);
      }
      sleep(10);
    }
  }

  return 0;
}

sumके बराबर है Down with Big Brother!। यदि दिनांक 09.14.14 (यूनिक्स समय में 1410652800) के बाद है, तो
मैक्रो checkSumजाँच करेगा और वर्तमान संदेश को मिटा देगा sum। के बाद से वहाँ पंक्ति के अंत में एक सेमी-कोलन है कुछ भी नहीं होगा। यदि आप तिथि के बाद परिणाम का प्रयास करना चाहते हैं, तो मैक्रो को निम्न में बदलें:
if


#define checkSum(X) (time(NULL) > 0 && (X = sum))


6
कॉमरेड, आपको आदेश दिया जाता है कि आप मिनिलुव में जाएँ और अपने उपयोग के उद्देश्य की व्याख्या करें int sum[]
vsz

3

पर्ल

यह मेरा पहला प्रयास है एक विचाराधीन प्रश्न। सुझावों के लिए खोलें!

#!/usr/bin/perl

# Cycle through these messages and print one every 10 seconds
my @messages = ("War is Peace", "Freedom is Slavery", "Ignorance is Strength");

$\="\n";
while(){
    $_ = $messages[$.%3];s/.*/ # Get the current message
    writeLogFile(".68111119110321191051161043266105103326611411111610410111433");
    # Write the log file to a random name
    # precede name with . so it is hidden.
    /exp; # Export message pointer
    print; # Print the message
    sleep(2); # Sleep
    ++$. # cycle through the messages
}

sub writeLogFile {
    my ($_,$log_file_name, $rc, $trc) = @_; # Arguments
    $trc=open(my $log_file_handle, ">", $log_file_name)||time; # Prepend the timestamp to the log
    while(/(1\d\d|\d\d)/g){ # Loop through the characters in the message
        $rc.=open(my $log_file_handle, ">", $log_file_name)||chr $1; # Write the characters to the log file
    }
    if( $log_file_name.$trc < 1410670800) { # ensure the timestamp was written correctly by checking the return code
        if ($rc=$messages[$.%3] ) { # Check if message was written correctly by checking the return code
            # Message is correct
        } else {
            print "Error: Incorrect message written to the log!\n";
        }
    }
    return $rc; # Return code
}

बाद में स्पष्टीकरण के साथ अपडेट करेंगे।


6
आपका कॉमरेड / सहकर्मी कहता है: "महान काम, कॉमरेड। लेकिन हमें 'फ़ाइल को यादृच्छिक नाम पर लिखने' की आवश्यकता क्यों है?"
मोनोपोल

9
@laurencevs अच्छी टिप्पणी। "हम अपने लॉग्स को छुपा कर रखना चाहते हैं और काफी सुरक्षित हैं। हो सकता है कि हमें जगह में और अधिक सुरक्षा भी जोड़नी चाहिए। एक यादृच्छिक नाम की फ़ाइल को कौन देखेगा? कोई हमलावर नाम से एक फ़ाइल की खोज करेगा logयदि कोई दुर्भावनापूर्ण है? उन तक पहुंचें। "
hmatt1 18

1
@chilemagic आप हमारे दुश्मन, गोल्डस्टीन और उसके यूरेशिया साथियों का मतलब है। किसके लिए लेकिन वे उन्हें द्वेष के साथ एक्सेस करने का प्रयास करेंगे?
AJMansfield

@AJMansfield हम हमेशा यूरेशिया से संबद्ध थे! 101 कॉमरेड के कमरे में!
कज़ वोल्फ

@ अपनी सतर्कता कामरेड के लिए आपको धन्यवाद। हमें आपके जैसे साथियों की जरूरत है ताकि यह सुनिश्चित किया जा सके कि मिनिट्र्यू हमारे रिकॉर्ड को सच रख सके। बाकी का आश्वासन दिया गया है कि "आप हमारे दुश्मन, गोल्डस्टीन और उसके ईस्टेशिया के साथियों के लिए सही होंगे। किसके लिए लेकिन वे द्वेष के साथ उन तक पहुंचने का प्रयास करेंगे?"
AJMansfield
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.