रुचि के लोग


28

पृष्ठभूमि

पर्सन ऑफ इंट्रेस्ट सीबीएस पर क्राइम ड्रामा है, और मेरा पसंदीदा टीवी शो, देर से।

यह शो एक अरबपति प्रोग्रामर हेरोल्ड फिंच नाम के एक शख्स और उसके साथी जॉन रीज़, एक विशेष बल के अनुभवी और पूर्व सीआईए ऑपरेटिव के बारे में है। इस प्रोग्रामर ने "द मशीन" नामक एक भावुक AI बनाया, जो उनके होने से पहले हिंसक अपराधों की भविष्यवाणी करता है। यह दुनिया भर के सभी निगरानी कैमरों और इलेक्ट्रॉनिक संचार की निगरानी और विश्लेषण करके पृथ्वी पर हर व्यक्ति को हर समय ट्रैक करता है।

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

हेरोल्ड ने खुद के लिए "अप्रासंगिक" सूची से निपटने की उम्मीद में खुद के लिए एक छोटा सा बैकडोर बनाया। यह पिछले दरवाजे का कारण बनता है कि मशीन पे फोन को निकटतम हेरोल्ड (हर दिन या एक बार) बुलाती है और उसे एक सामाजिक सुरक्षा नंबर पढ़ती है। यह SSN किसी ऐसे व्यक्ति से संबंधित है, जिसका जीवन किसी पूर्व-निर्धारित अपराध के भाग के रूप में खतरे में है, या ऐसे किसी व्यक्ति के लिए जो ऐसे अपराध की योजना बना रहा है।


चुनौती

एक प्रोग्राम लिखें जो कोई इनपुट नहीं लेता है, और 30 यादृच्छिक फोन नंबर और SSNs (नीचे देखें) आउटपुट करता है।


उत्पादन

पाठ की दो पंक्तियाँ हैं जो हर "दिन" में छपी होंगी।

  1. Crime predicted: 555-55-5555
  2. Calling: 1-555-555-5555 इसके बाद एक नई पंक्ति है

इस प्रक्रिया को एक "महीने" (30 "दिन") के लिए दोहराना चाहिए।


फोन नंबर

प्रत्येक फ़ोन नंबर में निम्नलिखित तत्व होने चाहिए:

  • संयुक्त राज्य अमेरिका देश कोड (पहला अंक) होना चाहिए।

  • एक यादृच्छिक क्षेत्र कोड (तीन अंकों का पहला सेट) होना चाहिए।

  • फोन नंबर के पहले तीन अंक खुद होने चाहिए555 , उसके बाद 4 यादृच्छिक अंक।

यहाँ एक एनोटेट उदाहरण दिया गया है:

1-814-555-3857
|  |   |   |
|  |   |   |
|  |   |   +---------->   random four digits
|  |   |
|  |   +-------------->   the set 555
|  |
|  +------------------>   area code
|
+--------------------->   country code

सामाजिक सुरक्षा संख्या

निम्नलिखित प्रारूप में प्रत्येक SSN के 9 यादृच्छिक अंक होने चाहिए।

342-98-1613

उदाहरण

Crime predicted: 234-72-8311
Calling: 1-633-555-0188

Crime predicted: 135-77-0910
Calling: 1-202-555-4719

Crime predicted: 722-90-6653
Calling: 1-466-555-1069

...

27 और चक्रों के लिए जारी है।


स्कोरबोर्ड

आपके स्कोर बोर्ड पर दिखाई देने के लिए, यह इस प्रारूप में होना चाहिए:

# Language, Bytes

स्ट्राइकथ्रू समस्या का कारण नहीं होना चाहिए।


3
इसके अलावा, अमेरिकी देश कोड / क्षेत्र कोड के लिए मान्य मूल्य क्या हैं?
mınxomaτ

2
मैंने समय की पाबंदी हटा दी है। आपके दूसरे प्रश्न के संबंध में, अमेरिकी देश कोड स्पष्ट रूप से एक है 1। क्षेत्र कोड के लिए, इस चुनौती के प्रयोजनों के लिए, कोई भी तीन अंक करेगा। @minxomat
Zach Gates

1
@LuisMendo मेटा पर एक आम सहमति है कि क्या यादृच्छिक अर्थ है अगर पूरी तरह से परिभाषित नहीं किया गया है
FryAmTheEggman

5
बेशक, वे वास्तव में शो में मशीन द्वारा प्रसारित प्रारूप में संख्या पैदा कर रहे हैं और भी अधिक जटिल हो जाएगा ...;)
मेसन व्हीलर

जवाबों:


10

CJam, 68 66 64 बाइट्स

2 बाइट बचाने के लिए डेनिस के लिए धन्यवाद!

"Crime predicted: --
Calling: 1--555-

"30*{_5<{iAa*:mr}&}/

कुछ अनप्रिंट (प्रत्येक रैंडम समूह के स्थान पर एक) होने के कारण कॉपिपस्टिंग काम नहीं करेगा, इसलिए यहां एक xxdडंप है:

00000000: 2243 7269 6d65 2070 7265 6469 6374 6564  "Crime predicted
00000010: 3a20 032d 022d 040a 4361 6c6c 696e 673a  : .-.-..Calling:
00000020: 2031 2d03 2d35 3535 2d04 0a0a 2233 302a   1-.-555-..."30*
00000030: 7b5f 353c 7b69 4161 2a3a 6d72 7d26 7d2f  {_5<{iAa*:mr}&}/

इसे रिवर्स करने के लिए, इसे एक फ़ाइल में पेस्ट करें और लॉन्च करें xxd -r in_file > out_file। आप इसे ऑनलाइन भी आज़मा सकते हैं ।

व्याख्या

"..."30*     Push the string 30 times
{ ... }/     For each character in the string:
_5<{ ... }&    If the ASCII code is < 5:
iAa*             Push an array of as many 10s as the ASCII code
:mr              For each 10, choose a random 0-9 number

मैंने खुद कभी इसके बारे में नहीं सोचा होगा, लेकिन यह पाइथ में दो बाइट्स से कम लगता है ।
FryAmTheEggman

@FryAmTheEggman शायद मुझे Pyth सीखना चाहिए, यह अक्सर CJam से छोटा होता है। यदि आप चाहते हैं तो आप उस उत्तर को पोस्ट कर सकते हैं :)
एंड्रिया बियोन्डो

8

अजगर 2, 129

from random import*
print''.join([c,`randint(0,9)`][c>'w']for c in'Crime predicted: xxx-xx-xxxx\nCalling: 1-xxx-555-xxxx\n\n'*30)

एक भोली विधि। संदेश लेता है

Crime predicted: xxx-xx-xxxx
Calling: 1-xxx-555-xxxx

और इसे 30 बार कॉपी करता है। फिर, xएक यादृच्छिक अंक के साथ प्रत्येक को बदलता है randint(0,9), अन्य सभी पात्रों को समान रखते हुए।


6

पायथन 2, 151 बाइट्स

के लिए स्वामी (और @ डेनिस) को धन्यवाद %0nd: डी

from random import randrange as r
for i in[1]*30:print"Crime predicted: %03d-%02d-%04d\nCalling: 1-%03d-555-%04d\n"%(r(1e3),r(100),r(1e4),r(1e3),r(1e4))

6

पर्ल, 85 बाइट्स, डेनिस और grc के लिए धन्यवाद!

$_="Crime Predicted: NNN-NN-NNNN 
Calling: 1-NNN-555-NNNN 

"x30;s/N/0|rand 10/eg;print

मूल पर्ल, 91 92 बाइट्स

print"Crime Predicted: NNN-NN-NNNN
Calling: 1-NNN-555-NNNN

"=~s/N/int rand 10/egr for 1..30

1
@ डेनिस जगा, मैं पोस्ट करने वाला था कि जब तक मैंने यह जवाब नहीं देखा। मैं था $_="..."x30;s/_/0|rand 10/eg;printजो बचाता है /rझंडा।
grc

धन्यवाद @ डेनिस और @grc! क्या यह टिप्पणियों में सुझाए गए परिवर्तनों को शामिल करने के लिए प्रथागत है (निश्चित रूप से) यदि नहीं तो मैं अपना संपादन वापस कर दूंगा। लेकिन, किसी भी मामले में, धन्यवाद! मैं पूरी तरह से 0|rand ...चाल और पुनरावृत्ति ऑपरेटर के बारे में भूल गया हूँ जो अब मैं दोहरा रहा हूँ कि लापता होने के लिए मेरे सिर को थप्पड़ मारना!
type_outcast

2
हाँ, यह प्रथागत है। यदि आप पहले से ही नहीं है, तो आपको पर्ल में गोल्फिंग के लिए टिप्स की जांच करनी चाहिए ? । यह एक महान संसाधन है।
डेनिस

5

CJam, 73 71 70 बाइट्स

30{"Crime predicted: x-x-x
Calling: 1-x-555-x
"'x/[ZY4Z4]Aaf*::mr.+N}*

CJam दुभाषिया में इसे ऑनलाइन आज़माएं ।

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

30{     e# Repeat 30 times:

e# Push the following string:

"Crime predicted: x-x-x
Calling: 1-x-555-x
"

'x/     e# Split at x's.
[ZY4Z4] e# Push the array [3 2 4 3 4].
Aaf*    e# For each integer in that array, repeat [10] that many times.
        e# This pushes [[10 10 10][10 10][10 10 10 10][10 10 10][10 10 10 10]].
::mr    e# For each 10, select a random integer between 0 and 9 (inclusive).
.+      e# Vectorized concatenation.
        e# This places the digits at the spots of the x's.
N       e# Push a linefeed.
}*      e#

5

112 , 121 118 112 बाइट्स

°/N=1°(30°/M°=ß$-ß$$'Crime predicted: 000-00-0000\nCalling: 1-000-555-0000\n\n'),'',3)µ€(M='0')?ß!G0,9,1):M)°)°)

मूल रूप से एक यादृच्छिक संख्या के साथ 0 बदलता है और 30 बार खुद को कॉल करता है।

ऑनलाइन टर्मिनल का उपयोग करके इसका परीक्षण करें :

sharps:~$ "<ctrl+v the code here>"                       
Crime predicted: 214-59-4707                              
Calling: 1-850-555-8529                                   

Crime predicted: 722-97-6832                              
Calling: 1-864-555-6965                                   

<and so on...>

संपादित करें (112B): (स्प्रिंटफ $$जैसी चीज) और टर्नरी ऑपरेटर का उपयोग करना ।


क्या आप इस भाषा की युक्ति का लिंक प्रदान कर सकते हैं?
लीजियनममाल 978

@ LegionMammal978 लिखने के लिए कुछ समय लेता है। सरल शब्दों में: क्या ऑटोइट में प्रत्येक सुविधा है।
mınxomaτ

4

अजगर, ६६

V30sX"Crime Predicted: v-w-x
Calling: 1-y-555-z
">5GmjkmOTdj32434T

5 यादृच्छिक संख्याओं पर Xवर्णमाला के अंतिम 5 अक्षरों ( >5G == 'vwxyz') का अनुवाद करने के लिए उपयोग करता है । उसी RNG का उपयोग करता है जो सोक को मिला।

इसे यहाँ ऑनलाइन आज़माएँ


4

अजगर, ६२

एंड्रिया के शानदार सीजेएम उत्तर का कार्यान्वयन ।

sm?<Cd5jkmOTCdd*30"Crime Predicted: --
Calling: 1--555-

"

ध्यान दें कि स्रोत में कई अनपेक्षित वर्ण हैं, और एक अनुगामी नहीं होना चाहिए "। यह एसई के लिए जोड़ा गया था ताकि यह थोड़ा अधिक पठनीय लगे। मैं अभी तक एक हेक्सडंप प्राप्त नहीं कर सका हूं, लेकिन नीचे दिए गए लिंक काम करता है और आपको इसे कॉपी-पेस्ट करने में सक्षम होना चाहिए।

इसे यहाँ ऑनलाइन आज़माएँ


3

सीजेएम, 74 बाइट्स

30{[ZY4Z4]{Aa*:mrs}%"Crime predicted: %s-%s-%s
Calling: 1-%s-555-%s

"e%}*

विजेता नहीं है, लेकिन यह डेनिस के पास अब तक कम से कम कुछ हद तक करीब है, और यह एक अलग दृष्टिकोण का उपयोग कर रहा है। तो मैंने सोचा कि यह वैसे भी पोस्ट करने लायक था।

यह सीजेएम e%ऑपरेटर का उपयोग करता है , जो प्रिंटफ शैली प्रारूप स्ट्रिंग के साथ आउटपुट उत्पन्न करता है।

30      Repeat count for whole output.
{       Start loop.
  [ZY4Z4] Build list of random number lengths: [3 2 4 3 4].
  {       Start loop over all random number lengths.
    Aa*     Build list of [10 ... ] with the random number length.
            E.g. for length 3, this will be [10 10 10].
    :mr     Apply the random number operator to the list. This will generate
            a list of random numbers between 0 and 9, with the given length.
    s       Convert it to a string.
  }%      End of loop over random number lengths.
  "..."   Format string, with a %s for each random number.
  e%      Apply printf style formatting.
}*      End of main repeat loop.

वाह, मुझे लगा कि आप उस अवतार के साथ @DavidCarraher थे!
बीटा डिके

@ बेताडे ये? codegolf.stackexchange.com/users/3967/david-carraher । एक ही जानवर भी नहीं! :) रंग लगभग समान हैं, हालांकि।
रेटो कोराडी

यदि हम अपने दृष्टिकोणों को जोड़ते हैं, तो हम 70 बाइट्स प्राप्त कर सकते हैं: पर्मलिंक
डेनिस

@ डेनिस इसके लिए बेझिझक जाते हैं। आपने कई बार मेरी मदद की है।
रेटो कोराडी

@RetoKoradi पर्याप्त बंद;)
बीटा डिके


3

जावास्क्रिप्ट (ईएस 6), 142

साइड नोट मिक्समैट जवाब ß इस कार्य को पूरा करने के लिए एक बेहतर तरीका दिखाता है, और जेएस में आसानी से बेहतर स्कोर दे सकता है। काश मैंने इसके बारे में सोचा होता।

संपादित करेंअनुपलब्ध पाठ को (मैंने चुनौती को गलत किया)

एक EcmaScript 6 अनुरूप ब्राउज़र में नीचे स्निपेट का परीक्षण करें

/* TEST redirect console.log */ console.log=x=>O.innerHTML+=x+'\n'

for(i=30;i--;)console.log(`Crime predicted: ${(R=d=>(1e-9+Math.random()+'').substr(2,d))(3)}-${R(2)}-${R(4)}
Calling: 1-${R(3)}-555-${R(4)}
`)
<pre id=O></pre>


बहुत अच्छा समाधान! हालाँकि, फ़ोन नंबर के अंतिम भाग में कभी-कभी 4 अंक से कम होते हैं; SSN के दूसरे और तीसरे भाग के साथ भी ऐसा ही है।
ETHproductions

@ETHproductions चूहों! पिछले संस्करण में बदलने!
edc65

3

फूरियर, 166 142 बाइट्स

45~d030(~i67a114a-9a+4a-8a32a112a^^a101ava+5a-6a116a101ava58a32a999roda99roda9999ro10a67a97a108aa-3a+5a-7a58a32a1oda999roda5oooda9999ro10aai^)

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

इसे तोड़कर:

45~d

चर को 45 पर सेट करता है, एक हाइफ़न के लिए ASCII कोड। यह चरित्र इतना अधिक मुद्रित है कि यह यहाँ घोषित करने के लिए कुछ बाइट्स बचाता है।

030(...)

संचयकर्ता को शून्य तक लूप में सेट करता है और जब तक यह 30 तक नहीं पहुंच जाता है तब तक कोष्ठक के अंदर रह जाता है।

67a114a-9a+4a-8a32a112a^^a101ava+5a-6a116a101ava58a32a

प्रिंट "अपराध की भविष्यवाणी की:"।

999roda99roda9999ro10a

एक पूरी तरह से यादृच्छिक SSN + newline प्रिंट करें।

67a97a108aa-3a+5a-7a58a32a

"कॉलिंग:" प्रिंट करें।

1oda999roda5oooda9999ro

दिशानिर्देशों का पालन करने वाला फ़ोन नंबर प्रिंट करें: 1-xxx-555-xxxx

10aa

शुरू करने के लिए दो नए समाचारों को प्रिंट करें।


1
अरे, आपकी रुचि हो सकती है कि अब fourier.tryitonline.net (और labs.turbo.run/beta/fourier पर एक ऑनलाइन दुभाषिया भी है )
बीटा

2

पायथ, 67 बाइट्स

V30s.ic"Crime predicted: |-|-|
Calling: 1-|-555-|
"\|mjkmOTdj32434T

नए अंक महत्वपूर्ण हैं, और बाइट की गिनती में शामिल हैं। इसे यहाँ आज़माएँ ।

                                Implicit: T=10, k=''
       "..."                    The output string
      c     \|                  Split on '|' placeholders
                     j32434T    32434 to base ten -> [3,2,4,3,4]
              m                 Map for d in the above:
                 mOTd             Generate d random numbers from 0-9
               jk                 Concatenate into string (join on empty string)
    .i                          Interleave segments of output string with random strings
   s                            Concatenate and output
V30                             Perform the above 30 times

2

हास्केल, 150 बाइट्स

import System.Random
p '#'=putChar=<<randomRIO('0','9')
p x=putChar x
main=mapM p$[1..30]>>"Crime predicted: ###-##-####\nCalling: 1-###-555-####\n\n"

2

जावास्क्रिप्ट (ईएस 6), 130 123 बाइट्स

मिनक्सोमैट के a समाधान को एक कदम आगे ले जाते हुए, मैंने 0एस को उस संख्या के साथ बदल दिया है जो 0कि वहां होती। कोड उन संख्याओं का उपयोग करता है, जो अंकों की सही संख्या को खींचने के Math.random()लिए प्रक्रिया में एक अच्छा सा बाइट बचाते हैं।

for(i=30;i--;)console.log(`Crime predicted: 3-2-4
Calling: 1-3-555-4
`.replace(/[2-4]/g,x=>`${Math.random()}`.substr(2,x)))

कोशिश करके देखो:

// redirecting console.log() for this demonstration
console.log=x=>O.innerHTML+=x+'\n';
O.innerHTML='';

for(i=30;i--;)console.log(`Crime predicted: 3-2-4
Calling: 1-3-555-4
`.replace(/[2-4]/g,x=>`${Math.random()}`.substr(2,x)))
<pre id=O>

हमेशा की तरह, सुझावों का स्वागत है!


2

जावा, 246 बाइट्स

import java.util.*;class C{static{Random r=new Random();for(int i=0;i++<30;)System.out.printf("Crime predicted: %s-%s-%s\nCalling: 1-%s-555-%s\n\n",r.nextInt(900)+100,r.nextInt(90)+10,r.nextInt(900)+100,r.nextInt(900)+100,r.nextInt(9000)+1000);}}

लाइन ब्रेक के साथ:

import java.util.*;
class C{
    static{
       Random r = new Random();
       for(int i = 0; i++<30;)
           System.out.printf("Crime predicted: %s-%s-%s\nCalling: 1-%s-555-%s\n\n",r.nextInt(900)+100,r.nextInt(90)+10,r.nextInt(900)+100,r.nextInt(900)+100,r.nextInt(9000)+1000);
    }
}

यह एक शुरुआत है। यादृच्छिक अंकों के उत्पादन के बजाय मैंने यादृच्छिक 3-अंकों या 4-अंकीय संख्याओं का उपयोग किया।


2

आर, 151 146 या 144 बाइट्स

कोड

for(l in 1:30)cat(sep="","Crime predicted: ",(i=floor(runif(16,,10)))[1:3],"-",i[4:5],"-",i[6:9],"\nCalling: 1-",i[10:12],"-555-",i[13:16],"\n\n")

इसे ऑनलाइन टेस्ट करें ।

Ungolfed

for(l in 1:30) {
  i=floor(runif(16,,10))
  cat(sep="","Crime predicted: ",
      i[1:3],"-",i[4:5],"-",i[6:9],
      "\nCalling: 1-",i[10:12],"-555-",
      i[13:16],"\n\n")
  }

मुझे लगता है कि सुधार करने के लिए बहुत जगह है लेकिन मैं आर में तार के साथ कोई अच्छा खिलवाड़ नहीं कर रहा हूं।

संपादित करें 1: बदल runif(16,max=10)करने के लिए runif(16,,10)

मैंने एक और कोड ( 147 144 बाइट्स) के साथ किया है, sprintfलेकिन मुझे नहीं लगता कि यह एक आर जैसा कोड है।

for(l in 1:30)cat(do.call(sprintf,as.list(c('Crime predicted: %s%s%s-%s%s-%s%s%s%s\nCalling: 1-%s%s%s-555-%s%s%s%s\n\n',floor(runif(16,,10))))))

एक और दृष्टिकोण (149 बाइट्स):

for(p in 1:30)cat(sep="",replace(s<-strsplit("Crime predicted: '''-''-''''\nCalling: 1-'''-555-''''\n\n","")[[1]],which(s<"-"),floor(runif(16,,10))))

2

PHP , 144 143 बाइट्स

<?=preg_replace_callback('/x/',function($x){return chr(rand(48,57));},str_repeat("Crime predicted: xxx-xx-xxxx
Calling: 1-xxx-555-xxxx

",30));


2

सी #, 280 263 246 बाइट्स

golfed:

using System;class C{static string G(){var r=new Random();var s="";n h=x=>r.Next(x).ToString("D"+x);for(int i=0;i++<30;){s+="Crime predicted: "+h(3)+"-"+h(2)+"-"+h(4)+"\nCalling: 1-"+h(3)+"-555-"+h(4)+"\n\n";}return s;}delegate string n(int x);}

इंडेंट:

using System;
class C
{
    static string G()
    {
        Random r = new Random();
        string s = "";
        Func<int, string> f = x => r.Next((int)Math.Pow(10, x)).ToString("D" + x);            

        for (int i = 0; i++ < 30;)
        {
            s += "Crime predicted: " + f(3) + "-" + f(2) + "-" + f(4) + "\nCalling: 1-" + f(3) + "-555-" + f(4) + "\n\n";
        }
        return s;
    }
}

कोडगुल्फ़ पर नई, सुझावों का स्वागत है!


प्रोग्रामिंग पहेलियाँ और कोड गोल्फ में आपका स्वागत है! मैं के साथ सी # परिचित परिचित नहीं हूँ, लेकिन क्योंकि यह नेट पर प्रतिपादित है जैसे PowerShell है, मुझे लगता है कि h(999)से एक नंबर उत्पन्न होगा 000करने के लिए 998तो समावेशी, कि साधन इस नहीं है काफी विनिर्देशों की भावना मारा। मैं उसी मुद्दे में भाग गया ।
AdmBorkBork

तुम सही हो, मैं इसे अब ठीक कर दूँगा!
एंथोनीटिमर्स

तय होने के बाद 280 बाइट तक गई, फिर डेलीगेट हैंडलर में फॉर्मेटिंग करने की सोची, फिर से इसे घटाकर 263 बाइट्स कर दिया।
एंथोनीटाइमर

1

हासियम , 230 बाइट्स

func main(){foreach(x in range(1,31){println("Crime predicted: "+r(3)+"-"+r(2)+"-"+r(4));println("Calling: 1-"+r(3)+"-555-"+r(4)+"\n");}}
func r(l){z=new Random();a="";foreach(y in range(1,l))a+=z.next(0,10).toString();return a;}

विस्तारित:

func main () {
        foreach (x in range(1, 31) {
                println("Crime predicted: " + r(3) + "-" + r(2) + "-" + r(4));
                println("Calling: 1-" + r(3) + "-555-" + r(4) + "\n");
        }
}
func r (l) {
        z = new Random();
        a = "";
        foreach (y in range(1, l))
                a += z.next(0, 10).toString();
        return a;
}

1

रूबी, 98 वर्ण

30.times{puts"Crime Predicted: DEF-GH-IJKL
Calling: 1-MNO-555-QRST

".tr"D-OQ-T",rand.to_s[2..-1]}

नमूना रन:

bash-4.3$ ruby -e '30.times{puts"Crime Predicted: DEF-GH-IJKL\nCalling: 1-MNO-555-QRST\n\n".tr"D-OQ-T",rand.to_s[2..-1]}' | head
Crime Predicted: 867-29-2637
Calling: 1-278-555-5424

Crime Predicted: 913-31-6306
Calling: 1-744-555-8188

Crime Predicted: 868-36-4612
Calling: 1-926-555-3576

Crime Predicted: 988-06-1643

1

जावास्क्रिप्ट, 146 141

console.log(Array(30).join("Crime predicted: 3-2-3\nCalling: 1-3-555-4\n\n").replace(/[2-4]/g,function(m){return(m+Math.random()).substr(3,m)}))

आपकी तुलना में कम वर्णों वाली भाषा में पहले से ही उत्तर है।
जकुजे

@Jakuje अन्य उत्तर ES6 का उपयोग करता है जो अभी तक व्यापक रूप से उपलब्ध नहीं है
Peleg

तब शायद ठीक है। इसे अपने उत्तर में उल्लेख करना अच्छा होगा।
जकुजे १e

1
@Jakuje लोग जो चाहें जमा कर सकते हैं! यह चुनौती के बारे में उतना ही है जितना कि यह दूसरों की पिटाई के बारे में है।
ErikE

1

प्री-ईएस 6 जावास्क्रिप्ट, 128

for(i=30;i--;)console.log('Crime predicted: x-x-x\nCalling: x-555-x\n'.replace(/x/g, function(){return 1e3*Math.random()|0}))

मुझे लगता है कि डैश किसी तरह हटाया जा सकता है, लेकिन निश्चित नहीं है।


1
कई त्रुटियां: 1) यादृच्छिक भाग सही लंबाई के नहीं हैं (और 2 भी नहीं कोशिश कर रहे हैं) "1-" गायब है।
edc65


1

जूलिया, 120 बाइट्स

R(n)=lpad(rand(0:10^n-1),n,0)
for i=1:30 println("Crime Predicted: "R(3)"-"R(2)"-"R(4)"\nCalling: 1-"R(3)"-555-"R(4))end

Ungolfed:

# Define a function for returning a random number with a
# specified number of digits
function R(n::Int)
    lpad(rand(0:10^n-1), n, 0)
end

# Print 30 times
for i = 1:30
    println("Crime Predicted: " R(3) "-" R(2) "-" R(4)
            "\nCalling: 1-" R(3) "-555-" R(4))
end

1

रूबी, 90 88 बाइट्स

30.times{puts"Crime predicted: NNN-NN-NNNN
Calling: 1-NNN-555-NNNN

".gsub(?N){rand 10}}

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


1
स्ट्रिंग संकेतन की कोई आवश्यकता नहीं है, बस चरित्र ?Nपर्याप्त है। कोष्ठक के लिए कोई ज़रूरत नहीं है, randपैरामीटर के आसपास ।
9

1

पॉवरशेल, 120 108 103 102 बाइट्स

0..29|%{("Crime predicted: XXX-XX-XXXX`nCalling: 1-XXX-555-XXX"-split"X"|%{$_+(Random 10)})-join'';""}

विभाजित-लूप सेट करके कुछ और बाइट्स को छोटा कर दिया, इसके बजाय एक कोड ब्लॉक किया जा सकता है जो एक सरणी में आउटपुट करता है @(..)और फिर से जुड़ जाता है।

किसी भी तरह से पहले निष्पादित एक कोड ब्लॉक नामित करता है @कि याद करके समाप्त हो गया ।(...)-join''

यह $aचर को निर्दिष्ट करने की आवश्यकता को समाप्त करता है। यह भी देखा गया कि -splitकार्यक्षमता कैसे काम करती है, इस कारण से पिछला कोड फोन नंबर के लिए बहुत सारे अंकों को थूक रहा था, इसलिए सिकुड़ कर वहाँ एक मुफ्त बाइट की बचत हुई 1-XXX-555-XXX। यह उस त्रुटिपूर्ण के लिए बना है Random 9जो वास्तव में यादृच्छिक रूप से चुनता है 0-8, इसलिए हमें इसके बजाय निर्दिष्ट करने की आवश्यकता हैRandom 10.

डबल-डिजिट के करीब सोओ खतरा, लेकिन मुझे यकीन नहीं है कि एक और चार 3 बाइट्स से गोल्फ कहां संभव है ...


पिछला, १० Previous

0..29|%{$a="";"Crime predicted: XXX-XX-XXXX`nCalling: 1-XXX-555-XXXX"-split"x"|%{$a+="$_$(Random 9)"};$a;""}

इसके बजाय एक तार बंटवारे के द्वारा एक कोड बाइट को छोटा किया X, फिर तार के परिणामी सरणी के माध्यम से फिर से पाशन किया और Randomहमारे अंतिम आउटपुट स्ट्रिंग के निर्माण के लिए प्रत्येक प्रविष्टि को एक अंक के साथ समेटना $a। ध्यान दें कि हम ऐसा कुछ नहीं कर सकते "string".replace("x",$(Random 9))क्योंकि तबRandom केवल एक बार कॉल जाएगा, इसलिए आपके पास 1-222-555-2222एक फ़ोन नंबर होगा, उदाहरण के लिए।


पिछला-एर, 120

0..29|%{"Crime predicted: "+(Random 1e9).ToString("000-00-0000");"Calling: "+(Random 1e7).ToString("1-000-555-0000");""}

क्रियात्मक भाषा के लिए बहुत खतरा प्रतिस्पर्धी, उदार आउटपुट विनिर्देशों के लिए धन्यवाद (यानी, 000-00-0001एक वैध एसएसएन के रूप में माना जाता है) और वास्तव में मजबूत .ToString()स्वरूपण एल्गोरिथ्म जो पॉवरशेल का उपयोग करता है। PowerShell \r\nहर स्ट्रिंग आउटपुट के बाद भी आउटपुट करता है, इसलिए पुनरावृत्तियों के बीच एक नई रेखा की आवश्यकता बस एक सरल है ""

ध्यान दें कि यह Get-सामने एक निहित का उपयोग करता है Random, इसलिए यह वास्तव में कुछ प्लेटफार्मों / कार्यान्वयन पर धीमा हो सकता है।


0

बेफुज -98, 170

मुझे लगता है कि यह अभी भी थोड़ा नीचे गोल्फ हो सकता है। लेकिन कम से कम मैंने C # को हराया। Befungius.aurlien.net पर परीक्षण किया गया

a3*>  82*v>":detciderp emirC">:#,_$...'-,..'-,....av
>1 -:!#;_v^;v,,,"-555-"...,,,,,,,,,,,"Calling: 1-",<
\  ^v< <2?1v,
+    ^;^3<;<,
^ <0?3vv....<
^;^6<;<>a,v
   v_@#:-1<

0

पायथन 2, 151 150 बाइट्स

from random import*
p="Crime predicted: xxx-xx-xxxx\nCalling: 1-xxx-555-xxxx\n\n"*30
while'x'in p:p=p.replace('x',str(randint(0,9)),1)
print p.strip()

के रूप में गोल्फ के रूप में मैं इस विधि मिल सकता है।

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