Persona de interés

28

Fondo

Person of Interest es un drama criminal en CBS, y mi programa de televisión favorito, recientemente.

El programa trata sobre un hombre llamado Harold Finch, un programador multimillonario, y su compañero John Reese, un veterano de las fuerzas especiales y ex agente de la CIA. Este programador creó una IA inteligente llamada "La máquina" que predice crímenes violentos antes de que sucedan. Rastrea a cada persona en la Tierra en todo momento mediante el monitoreo y análisis de todas las cámaras de vigilancia y comunicaciones electrónicas en todo el mundo.

Harold construyó The Machine para que el gobierno de los Estados Unidos detecte la actividad terrorista antes del hecho. Divide los delitos que predice en listas según sean relevantes o no para la seguridad nacional. Los casos relevantes son manejados por el gobierno, mientras que la lista "irrelevante" está programada para ser eliminada diariamente.

Harold hizo una pequeña puerta trasera para sí mismo con la esperanza de lidiar con la lista "irrelevante", él mismo. Esta puerta trasera hace que The Machine llame al teléfono público más cercano a Harold (una vez al día más o menos) y le lea un número de Seguro Social. Este número de seguro social pertenece a alguien cuya vida está en peligro como parte de un delito premeditado, o de alguien que está planeando dicho delito.


El reto

Escriba un programa que no reciba entrada y genere 30 números de teléfono aleatorios y SSN (consulte a continuación).


Salida

Hay dos líneas de texto que se imprimirán cada "día".

  1. Crime predicted: 555-55-5555
  2. Calling: 1-555-555-5555 seguido de una nueva línea

Este proceso debe repetirse durante un "mes" (30 "días").


Números de teléfono

Cada número de teléfono debe tener los siguientes elementos:

  • Debe tener el código de país de Estados Unidos (el primer dígito).

  • Debe tener un código de área aleatorio (primer conjunto de tres dígitos).

  • Los primeros tres dígitos del número de teléfono deberían ser555 , seguidos de 4 dígitos aleatorios.

Aquí hay un ejemplo anotado:

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

Números de seguridad social

Cada SSN debe tener 9 dígitos aleatorios en el siguiente formato.

342-98-1613

Ejemplo

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

...

Continuando por 27 ciclos más.


Marcador

Para que su puntaje aparezca en el tablero, debe estar en este formato:

# Language, Bytes

Los tachados no deberían causar un problema.

Puertas de Zach
fuente
3
Además, ¿cuáles son los valores válidos para los códigos de país / códigos de área de EE. UU.
mınxomaτ
2
He eliminado la restricción de tiempo. Con respecto a su segunda pregunta, el código de país de EE. UU. Es explícitamente a 1. En cuanto a los códigos de área, lo harán tres dígitos, a los efectos de este desafío. @minxomat
Zach Gates
1
@LuisMendo hay un consenso sobre meta sobre lo que significa aleatorio si no está completamente definido
FryAmTheEggman
55
Por supuesto, generar los números en el formato en que realmente son transmitidos por The Machine en el programa sería aún más complicado ...;)
Mason Wheeler
1
¿A quien vas a llamar? @ DTI-Matt
Puertas de Zach

Respuestas:

10

CJam, 68 66 64 bytes

¡Gracias a Dennis por guardar 2 bytes!

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

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

El copypasting no funcionará ya que hay algunos no imprimibles (uno en lugar de cada grupo aleatorio), así que aquí hay un xxdvolcado:

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}&}/

Para revertirlo, péguelo en un archivo y ejecútelo xxd -r in_file > out_file. También puedes probarlo en línea .

Explicación

"..."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
Andrea Biondo
fuente
Nunca hubiera pensado en esto yo mismo, pero parece ser dos bytes más corto en Pyth.
FryAmTheEggman
@FryAmTheEggman Probablemente debería aprender Pyth, a menudo es más corto que CJam. Puedes publicar esa respuesta si quieres :)
Andrea Biondo
8

Pitón 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)

Un método ingenuo. Toma el mensaje

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

y lo copia 30 veces. Luego, reemplaza cada uno xcon un dígito aleatorio randint(0,9), manteniendo todos los demás caracteres iguales.

xnor
fuente
6

Python 2, 151 bytes

Gracias al señor (y @Dennis) por %0nd: D

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))
Decaimiento Beta
fuente
6

Perl, 85 Bytes, gracias a Dennis y grc!

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

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

Perl original, 91 92 bytes

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

"=~s/N/int rand 10/egr for 1..30
type_outcast
fuente
1
@ Dennis aw, estaba a punto de publicar eso hasta que vi esta respuesta. Tuve $_="..."x30;s/_/0|rand 10/eg;printque salva la /rbandera.
grc
Gracias @Dennis y @grc! ¿Es habitual incorporar los cambios sugeridos en los comentarios (con atribución, por supuesto)? Si no, revertiré mi edición. Pero, en cualquier caso, ¡gracias! ¡Me había olvidado por completo del 0|rand ...truco y el operador de repetición que ahora estoy usando para golpearme repetidamente la cabeza por perder eso!
type_outcast
2
Si, es costumbre. Si aún no lo ha hecho, debería consultar Consejos para jugar al golf en Perl. . Es un gran recurso.
Dennis
5

CJam, 73 71 70 bytes

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

Pruébelo en línea en el intérprete de CJam .

Cómo funciona

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#
Dennis
fuente
5

ß, 121 118 112 bytes

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

Básicamente reemplaza 0 con un número aleatorio cada uno y se llama a sí mismo 30 veces.

Pruébelo usando el terminal en línea :

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...>

Editar (112B): Uso $$(algo así como sprintf) y operador ternario.

mınxomaτ
fuente
¿Podría proporcionar un enlace a las especificaciones de este idioma?
LegionMammal978
@ LegionMammal978 Toma tiempo para escribir. En términos simples: tiene todas las características que tiene AutoIt.
mınxomaτ
4

Pyth, 66

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

Utiliza Xpara traducir las últimas 5 letras del alfabeto ( >5G == 'vwxyz') en los 5 números aleatorios. Utiliza el mismo RNG que encontró Sok.

Pruébalo en línea aquí

FryAmTheEggman
fuente
4

Pyth, 62

Una implementación de la fantástica respuesta CJam de Andrea .

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

"

Tenga en cuenta que hay varios caracteres no imprimibles en la fuente, y no debe haber un final " . Eso se agregó para SE para que parezca un poco más legible. Todavía no he podido obtener un hexdump, pero el siguiente enlace funciona y deberías poder copiarlo y pegarlo.

Pruébalo en línea aquí

FryAmTheEggman
fuente
3

CJam, 74 bytes

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

"e%}*

No es un ganador, pero al menos está cerca de lo que Dennis tiene hasta ahora, y está usando un enfoque diferente. Así que pensé que valía la pena publicar de todos modos.

Esto utiliza el e%operador CJam , que genera resultados con una cadena de formato de estilo printf.

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.
Reto Koradi
fuente
Woah, ¡pensé que eras @DavidCarraher con ese avatar!
Beta Decay
@BetaDecay esto? codegolf.stackexchange.com/users/3967/david-carraher . ¡Ni siquiera el mismo animal! :) Sin embargo, los colores son casi iguales.
Reto Koradi
Si combinamos nuestros enfoques, podemos llegar a 70 bytes: enlace permanente
Dennis
@ Dennis Siéntete libre de hacerlo. Me has ayudado muchas veces.
Reto Koradi
@RetoKoradi lo suficientemente cerca;)
Beta Decay
3

Matlab / Octave, 108 172 bytes

disp(sprintf('Crime predicted: %i%i%i-%i%i-%i%i%i%i\nCalling: 1-%i%i%i-555-%i%i%i%i\n\n',randi(10,1,480)-1))

Pruébalo en línea

Luis Mendo
fuente
3

JavaScript (ES6), 142

La respuesta mixmat de la nota al margen en ß muestra una manera mejor de realizar esta tarea, y podría implementarse fácilmente en JS dando una mejor puntuación. Desearía haberlo pensado.

Editar Se agregó el texto que falta (leí mal el desafío)

Pruebe a ejecutar el fragmento a continuación en un navegador compatible con 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>

edc65
fuente
Muy buena solución! Sin embargo, la última parte del número de teléfono ocasionalmente tiene menos de 4 dígitos; lo mismo con la segunda y tercera parte del SSN.
ETHproductions
@ETHproductions ratas! Volviendo a la versión anterior!
edc65
3

Fourier, 166 142 bytes

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

Este tiene uno de los conteos de bytes más altos, pero soy un gran admirador de Fourier y quería probar mi solución. No muy optimizado.

Desglosándolo:

45~d

Establece la variable d en 45, el código ASCII para un guión. Este carácter se imprime tanto que ahorra algunos bytes para declararlo aquí.

030(...)

Establece el acumulador en cero y se repite dentro de los paréntesis hasta que alcanza 30.

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

Imprimir "Delito predicho:".

999roda99roda9999ro10a

Imprima una SSN + nueva línea completamente al azar.

67a97a108aa-3a+5a-7a58a32a

Imprimir "Llamando:".

1oda999roda5oooda9999ro

Imprima un número de teléfono que siga las pautas: 1-xxx-555-xxxx

10aa

Imprima dos líneas nuevas para comenzar de nuevo.

bkul
fuente
1
Hola, puede que le interese que ahora haya un intérprete en línea en fourier.tryitonline.net (y también labs.turbo.run/beta/fourier )
Beta Decay
2

Pyth, 67 bytes

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

Las nuevas líneas son importantes y se incluyen en el recuento de bytes. Pruébalo aquí .

                                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
Sok
fuente
2

Haskell, 150 bytes

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

JavaScript (ES6), 130 123 bytes

Llevando la solución ß de minxomat un paso más allá, he reemplazado la 0s con la cantidad de 0s que habría estado allí. El código usa esos números para extraer el número correcto de dígitos deMath.random() , ahorrando un buen bit de bytes en el proceso.

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)))

Pruébalo:

// 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>

Como siempre, las sugerencias son bienvenidas!

ETHproducciones
fuente
2

Java, 246 bytes

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);}}

Con saltos de línea:

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);
    }
}

Es un comienzo. En lugar de producir dígitos aleatorios, utilicé números aleatorios de 3 o 4 dígitos.

TNT
fuente
2

R, 151 o 144 bytes

Código

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")

Pruébalo línea .

Sin golf

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")
  }

Creo que hay mucho espacio para mejorar, pero no soy bueno jugando con las cuerdas en R.

Edición 1: cambió el runif(16,max=10)arunif(16,,10) .

He hecho otro código ( 147 144 bytes) sprintfpero no creo que sea un código similar a R.

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))))))

Otro enfoque (149 bytes):

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

PHP , 144 143 Bytes

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

",30));
Lern2Golf
fuente
2

GolfScript, 91 bytes

{9rand}+:r;{"Crime Predicted: "{r}3*"-"{r}2*"-"{r}4*"
Calling: 1-"{r}3*"-555-"{r}4*"

"}30*

Pruébalo en línea.

dinamita
fuente
2

C #, 280 263 246 bytes

Golfizado:

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);}

Sangrado:

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;
    }
}

Nuevo en Codegolf, ¡los consejos son bienvenidos!

anthonytimmers
fuente
¡Bienvenido a Programming Puzzles & Code Golf! No estoy muy familiarizado con C #, pero ya que se basa en .NET como PowerShell es, creo que la h(999)va a generar un número del 000que 998ambos inclusive, de manera que mediante este no lo hace bastante golpean el espíritu de las especificaciones. Me encontré con el mismo problema .
AdmBorkBork
Tienes razón, lo arreglaré ahora!
anthonytimmers
Fueron hasta 280 bytes después de la corrección, luego pensé en formatear en el controlador de delegado, reduciéndolo a 263 bytes.
anthonytimmers
1

Hasio , 230 Bytes

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;}

Expandido:

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;
}
Jacob Misirian
fuente
1

Ruby, 98 caracteres

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

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

Ejecución de muestra:

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
hombre trabajando
fuente
1

JavaScript, 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)}))
Peleg
fuente
Ya hay una respuesta en el mismo idioma con menos caracteres que la suya.
Jakuje
@Jakuje la otra respuesta usa ES6, que aún no está ampliamente disponible
Peleg
Entonces probablemente esté bien. Mencionar esto en tu respuesta sería bueno.
Jakuje
1
@Jakuje ¡Las personas pueden enviar lo que quieran! Se trata tanto del desafío como de vencer a los demás.
ErikE
1

Javascript pre-ES6, 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}))

Siento que los guiones podrían eliminarse de alguna manera, pero no estoy seguro.

usuario70585
fuente
1
Varios errores: 1) las partes aleatorias no tienen la longitud correcta (y ni siquiera lo intentan) 2) faltan "1-".
edc65
1

Pyth, 73 bytes

V30FGPc"Crime predicted: xxx-xx-xxxx\nCalling: 1-xxx-555-xxxx"\xpGpOT)pb"

Manifestación

aplaudir
fuente
1

Julia, 120 bytes

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

Sin golf:

# 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
Alex A.
fuente
1

Ruby, 90 88 bytes

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

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

Pruébalo en línea.

dinamita
fuente
1
No hay necesidad de notación de cadena, solo el carácter ?Nes suficiente. No hay necesidad de paréntesis, alrededor randdel parámetro.
manatwork
1

PowerShell, 120 108 103 102 Bytes

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

Se acortaron unos pocos bytes más configurando el bucle dividido para que sea un bloque de código que salga a una matriz @(..) y se vuelva a unir.

Se eliminó el @recordatorio que (...)designa un bloque de código ejecutado antes del-join'' todos modos.

Esto elimina la necesidad de asignar la $avariable. También noté que debido a cómo -splitfunciona la funcionalidad, el código anterior estaba escupiendo demasiados dígitos para el número de teléfono, por lo que obtuve un byte gratis ahorrando allí al reducirlo 1-XXX-555-XXX. Eso compensó lo erróneo Random 9que realmente elige al azar 0-8, por lo que debemos especificarRandom 10.

Taaan cerca de los dos dígitos, pero no estoy seguro de dónde es posible jugar otros cuatro 3 bytes ...


Anterior, 108

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

Acorté el código un par de bytes al dividir una cadena en Xuna, luego volver a recorrer la matriz resultante de cadenas y concatenar cada entrada con un Randomdígito para construir nuestra cadena de salida final $a. Tenga en cuenta que no podríamos hacer algo así "string".replace("x",$(Random 9))porque entonces Randomsolo se llamaría una vez, por lo que tendría 1-222-555-2222un número de teléfono, por ejemplo.


Anterior er, 120

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

Bastante competitivo para un lenguaje detallado, gracias a las generosas especificaciones de salida (es decir, 000-00-0001se trata como un SSN válido) y al .ToString()algoritmo de formato realmente robusto que utiliza PowerShell. PowerShell también \r\nsale después de cada salida de cadena, por lo que el requisito de una nueva línea entre iteraciones es simplemente simple "".

Tenga en cuenta que esto utiliza un implícito Get-delante Random, por lo que esto puede ser realmente lento en algunas plataformas / implementaciones.

AdmBorkBork
fuente
0

Befunge-98, 170

Creo que esto todavía se puede jugar un poco. Pero al menos vencí a C #. Probado en 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<
MegaTom
fuente
0

Python 2, 151 150 bytes

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()

Tan golfizado como pude obtener este método.

Puertas de Zach
fuente