Para comemorar o Dia do Pi Arredondado, você deve aproveitar a data de hoje para criar um programa que absorva o diâmetro de um círculo e produza sua circunferência multiplicando o diâmetro por 3,1416, onde 3,1416 deve ser obtido usando a data de hoje.
Input 3
Output 9.4248
etc.
Não leva a data como entrada. Você não precisa usar todos os componentes da data, mas os dígitos de pi devem vir da formatação de um objeto Date ou do uso de um objeto date para obtê-lo. As respostas até agora parecem boas.
Não tenho certeza do que mais especificar. Todas as respostas até agora atendem ao que eu estava esperando.
Minha restrição foi que você deve usar componentes da data para criar o Pi. Obviamente, você pode usar os componentes, multiplicar por 0 e adicionar 3,1416, mas isso é chato e desperdiça caracteres preciosos!
O menor código vence!
fonte
pi
Respostas:
05AB1E,
1613 bytesExperimente online.
Infelizmente, um bug com flutuadores torna esse byte mais longo: /
Agradecimentos a Adnan por jogar fora 3 bytes.
Explicação
fonte
¦¦
em vez de2000-
se três bytes mais curto;)žfžežg
soa como uma boa palavra em tcheco :)C, 32 bytes
Se perder um pouco mais de precisão é bom, eu posso reduzi-lo para cerca de 29 bytes, sendo ainda preciso até 4 dígitos após o decimal (no momento da publicação):
fonte
#include<time.h>
?#include
cabeçalhos de biblioteca padrão. Incluí-los manualmente é quase sempre uma boa idéia, mas omití-los facilita muito o código de golfe em C.main
função de exemplo para demonstrar como chamar essa macro de argumento único.AppleScript,
122120 bytesVariável a
A variável a é um objeto de data. Eu chamo todas as minhas informações de data.
Mês, dia e ano
As chamadas de mês, dia e ano realmente retornam um objeto que normalmente retorna uma string. Para usá-lo adequadamente como um número, eu o envolvi dos dois lados com operações matemáticas para convertê-lo automaticamente em um número.
1e-4
1e-4
é um byte menor que.0001
.mod.01
.
atua como um separador para a correção automática AppleScript. Ao usar isso, posso usar o módulo e ainda manter um byte para mim.Nenhuma declaração de retorno / log
O último valor calculado automaticamente é retornado pelo programa. Eu produzo o número calculado através da caixa de retorno.
E aqui está um gif dele correndo!
fonte
Mathematica + coreutils, 20 bytes
Felizmente, o Mathematica interpreta a saída de um comando externo como uma expressão. Nesse caso, a saída é um valor flutuante válido, de modo que a multiplicação com o argumento da função
#
é implícita.fonte
Lua,
3027 bytesMultiplique o primeiro argumento da linha de comandos pela data atual no formato
mm.ddyy
, que é realmente03.1416
.fonte
Bash + bc,
2520 bytesAgradecimentos ao manatwork por salvar cinco bytes.
Uso:
fonte
date +%m.%d%y\*$1|bc
PowerShell v2 +,
462825 bytesBem direto. Pega a entrada
$args[0]
e a multiplica pela data formatada comoM.dy
(Get-
está implícita). Observe que isso pode levar muito tempo para ser executado na v2, pois itera possíveis substituiçõesDate
(por exemplo, verificando sua%PATH%
variável de ambiente etc.) antes de iniciarGet-Date
.fonte
-f
?-Format
. Com sinalizadores como esse, você só precisa ser inequívoco (por exemplo, se você tivesse-Debug
e-Delimiter
como opções possíveis, precisaria de pelo menos três letras para diferenciar). Remover o espaço significa que o PowerShell tenta analisar o sinalizador,-F"M.dy"
mas não consegue encontrar um argumento que corresponda e, portanto, gera um erro.-f
operador. Faz total sentido agora.R 3.2.4,
555147 bytesedit Eu percebi que poderia usar
scan
obrigado @FryAmTheEggMan. Redução de 4 bytes graças a @MickyT.Primeira tentativa de golfe. Feliz dia do pi!
fonte
f=
.scan()*as.numeric(format(Sys.Date(),'%m.%d%y'))
as.double
em vez deas.numeric
salvar um byte adicionalGNU Awk, 23 caracteres
Exemplo de execução:
fonte
Pitão, 19 bytes
Experimente aqui!
Só funciona em 14/03/2016, é claro.
Explicação
fonte
PHP,
45262524 bytesUsa a codificação Windows-1252
Execute assim:
date()
vez deDateTime::format
fonte
$n
-lo/?n=3
no URL.php.ini
arquivo. Aross disse antes que quer se afastar de tal método.Python 2, 58 caracteres
Tente!
Explicação:
fonte
JavaScript,
4139 caracteresIsso usa um método exclusivo do Firefox .
Graças a:
Exemplo de execução (Firefox Web Console):
Nota: isso falhará no Firebug Console. Parece que o Firebug realiza alguma expansão na cadeia de modelo, transformando-a
`%m.%d%y`
em`%__fb_scopedVars(m).d%y`
antes de passá-la para o código.fonte
d=>new Date().toLocaleFormat`%m.%d%y`*d
new
de lá.('...')
por 2 backticks, são 2 bytes.Ruby, 40 bytes
fonte
Mathematica, 54
fonte
Vitsy + coreutils, 19 bytes
Explicação:
Não pode ser executado no modo de segurança, pois ele usa o método exec do Runtime.
fonte
SpecBAS , 39 bytes
Nada fora do comum. Formata a data como uma sequência e multiplica a entrada pelo
VAL
(valor) dessa sequência.fonte
Oracle 11g,
5049 bytesmenos um byte, graças a @MickyT
fonte
FROM
Python 3,
7454 bytesusando o módulo de hora em vez de data e hora como a resposta de Loovjo
solução anterior
fonte
Planilhas Google, 13 bytes
Os bytes são calculados com um byte por caractere, zero bytes por célula, exceto para a célula de entrada designada, dois bytes. O sinal de igual para iniciar uma fórmula não é contado. (Não sei se isso é padrão, corrija-me se estiver errado.)
Execute o snippet para ver o código.
Isso funciona porque você pode definir seus próprios formatos de data no Planilhas Google. Eu fiz para que seja
<month>.<day><year>
.fonte
Pyke ,
1615 bytes, codificação ASCIIExplicação:
ou 11 bytes (não competitivo), (adiciona singles de string, ano com 2 dígitos, sumables de string)
Explicação:
fonte
JavaScript ES6,
6866 bytesEconomizou 2 bytes graças a dev-null!
Função anônima. Alguns usos:
fonte
with
Tcl / Tk, 58 bytes
(Esse é um programa completo. Se você deseja trapacear e remover a
puts
instrução explícita , são apenas 51 bytes - você deve iniciar o tclsh e digitar / colar o seguinte diretamente, no entanto :)fonte
Java 114 bytes
fonte
float p(float d){return d*Float.parseFloat(new SimpleDateFormat("MM.ddyy").format(new Date()));}
Raquete, 112 caracteres
Lê o número da entrada na sintaxe padrão do leitor.
fonte
TI-84 Basic, 30 bytes
Funciona em calculadoras TI-83/84; E é o token de notação científica e ~ é o token negativo.
Caso de teste
fonte
R 48 bytes
fonte
MATL , 17 bytes
Experimente online!
fonte
TI-BASIC,
16139 bytesArredondamos
π
para um número de casas decimais igual ao mínimo de{month,day,year}
e depois multiplicamos pela entrada.Essa é uma função que recebe a entrada por meio do X. Armazene-a em uma das variáveis Y, por exemplo
Y1
, e depois chame comoY1([number])
na tela inicial.fonte
Ans
é permitida a entrada de informações .APL , 19 bytes
⎕TS
é2016 3 14 12 34 56 789
isto março 14 rd de 2016 logo antes 12:35⍕
transformar em seqüência, ou seja,'2016 3 14 12 34 56 789'
8↑2↓
deixar cair dois primeiros ('20'
), em seguida, tomar em seguida oito ('16 3 14 '
)2⌽
gire dois personagens, dando' 3 14 16'
⍎
make em números (3 14 16
)⌽
inverter a lista, dando16 14 3
0.01⊥
avaliar em base de ¹/₁₀₀ , = 16 × 0,01² + 15 × 0,01¹ + 3 × 0,01⁰ = 0,0016 + 0,15 + 3 = 3,1416⎕×
multiplique pela entradaou
⎕TS
é2016 3 14 12 34 56 789
, ou seja, 14 março rd de 2016 logo antes 12:35⍕
transformar em seqüência, ou seja,'2016 3 14 12 34 56 789'
7↑2↓
deixar cair dois primeiros ('20'
), em seguida, tomar em seguida sete ('16 3 14'
)2⌽
gire dois personagens, dando' 3 1416'
⍎
make em números (3 1416
)⌽
inverter a lista, dando1416 3
1E¯4⊥
avaliar em base de ¹/ ₁₀₀₀₀, = 1416 × 0,01¹ + 3 × 0,01⁰ = 0,1416 + 3 = 3,1416⎕×
multiplique pela entradafonte