Movimentos únicos
O tabuleiro é uma grade quadrada bidimensional infinita, como um tabuleiro de xadrez ilimitado. Uma peça com o valor N (um motor N ) pode mover-se para qualquer quadrado que esteja a uma distância exata da raiz quadrada de N do seu quadrado atual (distância euclidiana medida centro a centro).
Por exemplo:
- Um motor único pode se mover para qualquer quadrado horizontal ou vertical adjacente
- Um motor de dois pode mover-se para qualquer quadrado diagonalmente adjacente
- Um 5-move se move como um cavaleiro de xadrez
Observe que nem todos os N-movers podem se mover. Um motor de três nunca pode deixar seu quadrado atual porque nenhum dos quadrados no quadro está a uma distância exata da raiz 3 do quadrado atual.
Movimentos múltiplos
Se for permitido mover-se repetidamente, algumas peças podem atingir qualquer quadrado no tabuleiro. Por exemplo, um motor e um motor podem fazer isso. Um motor de dois movimentos só pode se mover na diagonal e atingir apenas metade dos quadrados. Uma peça que não pode se mover, como um motor de três, não pode alcançar nenhum quadrado (o quadrado inicial não é contado como "alcançado" se nenhum movimento ocorrer) .
As imagens mostram quais quadrados podem ser alcançados. Mais detalhes ao passar o mouse. Clique para ampliar a imagem.
- Os quadrados alcançáveis em 1 ou mais movimentos estão marcados em preto
- Os quadrados alcançáveis em exatamente 1 movimento são mostrados por peças vermelhas
(além dos 3 motores, que não podem se mover)
Que proporção do quadro um determinado N-motor pode alcançar?
Entrada
- Um número inteiro positivo N
Resultado
- A proporção da placa que um N-motor pode alcançar
- Este é um número de 0 a 1 (inclusive)
- Para esse desafio, a saída como uma fração em termos mais baixos, como 1/4, é permitida
Portanto, para entrada 10
, ambas 1/2
e 0.5
saídas aceitáveis. A saída como numerador e denominador separados também é aceitável, incluindo idiomas que não suportam flutuações nem frações. Por exemplo, 1 2
ou [1, 2]
.
Para as saídas inteiras (0 e 1), qualquer um dos seguintes são formatos aceitáveis:
- Para 0:
0
,0.0
,0/1
,0 1
,[0, 1]
- para 1:
1
,1.0
,1/1
,1 1
,[1, 1]
Pontuação
Isso é código de golfe. A pontuação é o comprimento do código em bytes. Para cada idioma, o código mais curto vence.
Casos de teste
No formato input : output as fraction : output as decimal
1 : 1 : 1
2 : 1/2 : 0.5
3 : 0 : 0
4 : 1/4 : 0.25
5 : 1 : 1
6 : 0 : 0
7 : 0 : 0
8 : 1/8 : 0.125
9 : 1/9 : 0.1111111111111111111111111111
10 : 1/2 : 0.5
13 : 1 : 1
16 : 1/16 : 0.0625
18 : 1/18 : 0.05555555555555555555555555556
20 : 1/4 : 0.25
25 : 1 : 1
26 : 1/2 : 0.5
64 : 1/64 : 0.015625
65 : 1 : 1
72 : 1/72 : 0.01388888888888888888888888889
73 : 1 : 1
74 : 1/2 : 0.5
80 : 1/16 : 0.0625
81 : 1/81 : 0.01234567901234567901234567901
82 : 1/2 : 0.5
144 : 1/144 : 0.006944444444444444444444444444
145 : 1 : 1
146 : 1/2 : 0.5
148 : 1/4 : 0.25
153 : 1/9 : 0.1111111111111111111111111111
160 : 1/32 : 0.03125
161 : 0 : 0
162 : 1/162 : 0.006172839506172839506172839506
163 : 0 : 0
164 : 1/4 : 0.25
241 : 1 : 1
242 : 1/242 : 0.004132231404958677685950413223
244 : 1/4 : 0.25
245 : 1/49 : 0.02040816326530612244897959184
260 : 1/4 : 0.25
261 : 1/9 : 0.1111111111111111111111111111
288 : 1/288 : 0.003472222222222222222222222222
290 : 1/2 : 0.5
292 : 1/4 : 0.25
293 : 1 : 1
324 : 1/324 : 0.003086419753086419753086419753
325 : 1 : 1
326 : 0 : 0
360 : 1/72 : 0.01388888888888888888888888889
361 : 1/361 : 0.002770083102493074792243767313
362 : 1/2 : 0.5
369 : 1/9 : 0.1111111111111111111111111111
370 : 1/2 : 0.5
449 : 1 : 1
450 : 1/18 : 0.05555555555555555555555555556
488 : 1/8 : 0.125
489 : 0 : 0
490 : 1/98 : 0.01020408163265306122448979592
520 : 1/8 : 0.125
521 : 1 : 1
522 : 1/18 : 0.05555555555555555555555555556
544 : 1/32 : 0.03125
548 : 1/4 : 0.25
549 : 1/9 : 0.1111111111111111111111111111
584 : 1/8 : 0.125
585 : 1/9 : 0.1111111111111111111111111111
586 : 1/2 : 0.5
592 : 1/16 : 0.0625
593 : 1 : 1
596 : 1/4 : 0.25
605 : 1/121 : 0.008264462809917355371900826446
610 : 1/2 : 0.5
611 : 0 : 0
612 : 1/36 : 0.02777777777777777777777777778
613 : 1 : 1
624 : 0 : 0
625 : 1 : 1