Muito obrigado a todos os participantes
do concurso de programação ! O processo de tomada de decisão ainda não está concluído, mas à meia-noite de 17 de julho, tomamos o conjunto de decisões que estavam naquele momento e realizamos um mini-torneio entre eles. Foram 82 decisões.
Mas primeiro, alguns anúncios.
A competição é prolongada por uma semana
O prazo para a tomada de decisões é prorrogado até
27 de julho de 2018 , 23:59:59 UTC. Além disso, os prazos pelos quais os resultados da competição serão anunciados são alterados uma semana antes. Estendemos a competição para melhorar a cobertura durante as festas de fim de ano.
Esclarecimentos finais do teste
Após a aceitação do trabalho, os testes serão mais completos do que a preliminar atual.
Valores das sementes
Estamos publicando um método que prometemos usar para selecionar valores de sementes para o teste final. Este método deve ser inequívoco e facilmente verificável, mas imprevisível. Então, pegaremos o primeiro tweet
deste Twitter que aparecerá lá após o prazo. É difícil acreditar que conspiramos com Jerry Springer, certo? Do tweet, tiramos apenas o texto, sem fotos e vídeo. Se não houver texto no tweet, mas apenas uma foto, faça o próximo tweet. Contagem de retweets. O nome da conta de retweet não é usado.
No texto do tweet, obtemos os valores iniciais assim:
const random_js = require('random-js'); const text = 'The tweet goes here'; const bytes = Array.from(new Buffer(text)); const random = new random_js(random_js.engines.mt19937().seedWithArray(bytes)); for (let i = 0; i<200; i++)
Elementos da sequência resultante com números
ímpares , ao numerar a partir de 1 (ou seja, o primeiro, o terceiro, o quinto e assim por diante), serão usados como valores iniciais para a primeira rodada e com
pares como valores adicionais para a final.
Na primeira rodada, cada par ordenado de soluções será lançado em cada um dos pelo menos 100 valores de sementes (mais se tivermos tempo). Pelo menos 100 valores adicionais de sementes serão usados na final. As sessões realizadas no primeiro turno entre as decisões que chegaram à final serão usadas na final (mas não as sessões entre o finalista e a decisão que não chegou à final). Assim, pelo menos 200 valores de sementes decidirão o resultado da final.
Seleção de finalistas
Após a primeira rodada, todas as decisões serão classificadas pela quantidade de pontos marcados. Várias decisões, começando com o líder da lista, serão admitidas nas finais.
As regras a seguir se aplicarão à seleção de finalistas. O número de finalistas decidirá qual das regras será a
mais rigorosa (ou seja, ignorará
menos ) o número de decisões.
- Não mais da metade das soluções.
- Não mais que 50 soluções.
- Somente soluções que apresentam melhores resultados que
example.js
.
Resultados Intermediários
Para testes intermediários, usamos números naturais de 1 a 50, inclusive como valores de sementes. Cada par ordenado, consistindo em diferentes soluções, foi executado em cada um desses valores. Assim, para 82 participantes, o torneio consistiu em 332100 sessões; cada uma das soluções participou de 8100 sessões.
Até agora, em vez dos nomes dos participantes - identificadores de soluções. Seu identificador está na carta automática que você recebeu após o envio da decisão. Não é proibido divulgar nos comentários deste post que tal e qual decisão é sua.
Observe que em 59, 60 e 61 locais estão localizadas cópias do script
example.js . Curiosamente, 21 de 82 soluções apresentaram resultados inferiores ao nosso exemplo primitivo. (Por que três cópias do mesmo script apresentaram resultados ligeiramente diferentes? Como algumas soluções usam
Math.random
, e os resultados das sessões que os envolvem não são reproduzíveis.)
Uma tabela de resultados intermediários pode ser vista
no GitHub . Legenda:
- S : Quantidade de pontos marcados (este é o assunto da competição)
- S / N : resultado médio da sessão
- A : Número de sessões alcançado acordo
- N / A : porcentagem de sessões com o acordo alcançado
- S / A : resultado médio da sessão com acordo alcançado
- X : Número de sessões encerradas por este participante (devido a exceções ou resultados incorretos)
Obviamente, ainda resta tempo antes do final da competição, durante o qual o alinhamento de forças pode mudar. Vá em frente!