A arte da programação de computadores

Oct 19 2020

EDITAR: Sei que não devemos editar novos requisitos após a primeira postagem, mas, pelo que entendi, esse requisito está implícito em todas as perguntas aqui:
Explique sua resposta! Pelo menos um pouco. Assim, um leitor casual tem a chance de seguir suas reflexões e apreciar sua genialidade.

Aqui está um simples, mas espero que seja divertido:

Você pode recriar qualquer um dos seguintes padrões?

Regras:

  1. Aritmética inteira apenas

  2. Estritamente local, ou seja, apenas as coordenadas x, y de um ponto podem ser usadas para calcular sua cor

  3. Sem tabelas de pesquisa

  4. Sem força bruta (é por isso que a tag no-computers está lá, caso você esteja se perguntando), além de que você pode usar computadores como achar melhor.

(5.) Quanto mais simples melhor

Notas:


Os padrões são todos periódicos e usam cores 0,1,2,3,4.
Você não precisa usar exatamente as mesmas cores, cinco cores servirão.
Eu deliberadamente não coloquei nenhuma versão de texto dos padrões porque você não deve aplicá-los à força bruta.
Ainda sou muito novo na criação de quebra-cabeças, qualquer feedback é bem-vindo.

Um exemplo com solução:


Possível resposta $f(x,y) = \left [ \lfloor \frac x 3 \rfloor - \lceil \frac {y+2x+1} 6 \rceil - \lceil \frac {y+1} 6 \rceil \right ] \mod 5$

Respostas

5 GarethMcCaughan Oct 19 2020 at 20:26

Acredito que o primeiro padrão é (com (0,0) no canto superior esquerdo)

$$\Biggl\{\left\lfloor\frac{2x+3y-2}8\right\rfloor+\left\lfloor\frac{-3x-2y+3}8\right\rfloor \Biggr\} \mathop{\textrm{mod}}5.$$

E o último é (com (0,0) no canto superior esquerdo)

$$\Biggl\{x+y+m(x-y)-\left\lfloor\frac x4\right\rfloor\Biggl\}\mathop{\textrm{mod}}5$$

Onde

$m(x)$ vai $0, +1, 0, -1$ dependendo $x$ mod 4. Existem muitas maneiras livres de tabela de pesquisa para definir $m$; por exemplo$m(x)=(x \mathop{\textrm{mod}}2)\cdot(-1)^{\lfloor x/2\rfloor}$.

A pergunta foi atualizada para incluir uma solicitação para "explicar sua resposta".

Não tenho muitas explicações a oferecer para o primeiro padrão. eu só

pensei que deveria tentar coisas do formulário $\lfloor\textrm{linear}(x,y)\rfloor+\lfloor\textrm{linear}(x,y)\rfloor\pmod5$, com os coeficientes das duas coisas lineares combinando de modo a dar ao padrão o tipo certo de simetria; a periodicidade do padrão sugeria que eu provavelmente queria 8 ou 16 nos denominadores, um pouco de experimentação mostrou (como deveria ter sido óbvio desde o início) que a diferença entre os$x$ e $y$coeficientes aparecem em quantas "bandas" existem de sudoeste a nordeste, e então havia apenas alguns casos para tentar ver se eles forneciam o padrão correto. Depois de encontrar algo com o padrão correto, mas um deslocamento em$x$ e $y$, Eu substituí $x,y$ com $x-\delta,y-\epsilon$ Onde $\delta,\epsilon$foi o deslocamento que eu precisava produzir e simplifiquei. Feito.

Posso falar um pouco mais sobre o quarto.

Em primeiro lugar, o padrão de bandas muito óbvio sugeria que dentro do meu "... mod 5" eu queria um termo $\lfloor x/4\rfloor$. O resto então precisava produzir um padrão simples de "cobra" periódico. As cobras correm de sudoeste para nordeste indo para a direita, direita, para cima, para cima, para a direita, para a direita, para cima, para cima, à direita, à direita, etc. Se apenas tomarmos os contornos de$x+y$então teríamos linhas diagonais simples, que são na verdade bastante semelhantes a essas cobras; podemos transformar linhas diagonais em cobras adicionando e subtraindo 1s em um conjunto de lugares cuidadosamente selecionados. Se você adicionar 1 em uma linha diagonal de noroeste a sudeste, você efetivamente empurra todos os contornos de uma unidade diagonalmente para dentro; se você subtrair 1, estará efetivamente empurrando-os uma unidade diagonalmente para fora. Olhando um pouco para o padrão, você vê que o que é necessário é que metade das diagonais NW-SE permaneçam como estão e a outra metade alterne entre serem empurradas para dentro e para fora, o que significa que precisamos adicionar essa função$m(x,y)$ antes de reduzir o mod 5.

4 LukasRotter Oct 19 2020 at 17:34

(2 de 4)


$(0,0)$ é inferior esquerdo, não superior esquerdo.

2º padrão:

$f(x,y) = \left [ \left\lceil \frac {3x} 8 \right\rceil - \left\lfloor \frac {5x} 8 - \frac {y} 4 \right\rfloor \mod 5 - \left\lfloor -\frac {y} 8 \right\rfloor \mod 5 \right] \mod 5$

3º padrão:

$f(x,y) = \left [ \left\lceil \frac {3x+3} 7 \right\rceil - \left\lfloor \frac {6x-y} 7 \right\rfloor - 7 \right] \mod 5$