Voici un défi de tableau bidimensionnel relativement simple.
Imaginez un champ de bataille de 625 fantassins. Vous commandez les troupes impaires , mais malheureusement la force des troupes paires vous submerge. Heureusement, vos soldats ont un pouvoir secret: si le pouvoir de chaque troupe impaire et des autres alliés étranges qui les entourent est divisible par un numéro de pouvoir secret, ils déclenchent leur ultime attaque et gagnent! Vous devez honorer chaque soldat victorieux.
Règles
Étant donné un tableau entier de 25 x 25 où chaque élément contient le produit de sa position x et y plus 1, renvoyer les coordonnées de chaque élément impair "victorieux" qui répond aux critères suivants:
La somme de la valeur de l'élément et de ses éléments impairs adjacents (haut, bas, gauche et droite) est divisible par l'entrée (numéro de pouvoir secret). Il doit avoir des éléments adjacents aux quatre côtés et ne pas être sur un bord.
Les soumissions peuvent être une fonction ou un programme complet qui nécessite une seule entrée. La sortie peut être dans n'importe quel ordre.
Notre tableau 25 x 25, le champ de bataille, ressemble à ceci:
1, 1, 1, 1,...
1, 2, 3, 4,...
1, 3, 5, 7,...
1, 4, 7, 10,...
etc.
Exemple
Voici un exemple 3 x 3:
43, 57, 71
46, 61, 76
49, 65, 81
Pour déterminer si un élément (61, au centre) gagne, nous additionnons ses valeurs et les éléments impairs adjacents.
61 + 57 + 65 = 183
Si le total est divisible par l'entrée, la position x et y de l'élément est imprimée. Si notre entrée est 3, parce que 183 est divisible par 3, "1, 1" est imprimé.
Production
Si l'entrée (numéro de pouvoir secret) est 37, les éléments retournés (soldats victorieux à féliciter) doivent être:
2, 18
3, 12
4, 9
5, 22
6, 6
8, 23
9, 4
10, 11
11, 10
12, 3
18, 2
22, 5
23, 8
Si l'entrée est 191, les éléments retournés doivent être:
10, 19
19, 10
Une entrée de 3:
1, 2
1, 4
1, 6
1, 8
1, 10
1, 12
1, 14
1, 16
1, 18
1, 20
1, 22
2, 1
2, 3
2, 4
2, 5
2, 7
2, 9
2, 10
2, 11
2, 13
2, 15
2, 16
2, 17
2, 19
2, 21
2, 22
2, 23
3, 2
3, 4
3, 6
3, 8
3, 10
3, 12
3, 14
3, 16
3, 18
3, 20
3, 22
4, 1
4, 2
4, 3
4, 5
4, 7
4, 8
4, 9
4, 11
4, 13
4, 14
4, 15
4, 17
4, 19
4, 20
4, 21
4, 23
5, 2
5, 4
5, 6
5, 8
5, 10
5, 12
5, 14
5, 16
5, 18
5, 20
5, 22
6, 1
6, 3
6, 5
6, 7
6, 9
6, 11
6, 13
6, 15
6, 17
6, 19
6, 21
6, 23
7, 2
7, 4
7, 6
7, 8
7, 10
7, 12
7, 14
7, 16
7, 18
7, 20
7, 22
8, 1
8, 3
8, 4
8, 5
8, 7
8, 9
8, 10
8, 11
8, 13
8, 15
8, 16
8, 17
8, 19
8, 21
8, 22
8, 23
9, 2
9, 4
9, 6
9, 8
9, 10
9, 12
9, 14
9, 16
9, 18
9, 20
9, 22
10, 1
10, 2
10, 3
10, 5
10, 7
10, 8
10, 9
10, 11
10, 13
10, 14
10, 15
10, 17
10, 19
10, 20
10, 21
10, 23
11, 2
11, 4
11, 6
11, 8
11, 10
11, 12
11, 14
11, 16
11, 18
11, 20
11, 22
12, 1
12, 3
12, 5
12, 7
12, 9
12, 11
12, 13
12, 15
12, 17
12, 19
12, 21
12, 23
13, 2
13, 4
13, 6
13, 8
13, 10
13, 12
13, 14
13, 16
13, 18
13, 20
13, 22
14, 1
14, 3
14, 4
14, 5
14, 7
14, 9
14, 10
14, 11
14, 13
14, 15
14, 16
14, 17
14, 19
14, 21
14, 22
14, 23
15, 2
15, 4
15, 6
15, 8
15, 10
15, 12
15, 14
15, 16
15, 18
15, 20
15, 22
16, 1
16, 2
16, 3
16, 5
16, 7
16, 8
16, 9
16, 11
16, 13
16, 14
16, 15
16, 17
16, 19
16, 20
16, 21
16, 23
17, 2
17, 4
17, 6
17, 8
17, 10
17, 12
17, 14
17, 16
17, 18
17, 20
17, 22
18, 1
18, 3
18, 5
18, 7
18, 9
18, 11
18, 13
18, 15
18, 17
18, 19
18, 21
18, 23
19, 2
19, 4
19, 6
19, 8
19, 10
19, 12
19, 14
19, 16
19, 18
19, 20
19, 22
20, 1
20, 3
20, 4
20, 5
20, 7
20, 9
20, 10
20, 11
20, 13
20, 15
20, 16
20, 17
20, 19
20, 21
20, 22
20, 23
21, 2
21, 4
21, 6
21, 8
21, 10
21, 12
21, 14
21, 16
21, 18
21, 20
21, 22
22, 1
22, 2
22, 3
22, 5
22, 7
22, 8
22, 9
22, 11
22, 13
22, 14
22, 15
22, 17
22, 19
22, 20
22, 21
22, 23
23, 2
23, 4
23, 6
23, 8
23, 10
23, 12
23, 14
23, 16
23, 18
23, 20
23, 22
Une entrée de 5:
1, 4
1, 14
2, 2
2, 4
2, 6
2, 7
2, 8
2, 10
2, 12
2, 14
2, 16
2, 17
2, 18
2, 20
2, 22
3, 8
3, 18
4, 1
4, 2
4, 4
4, 6
4, 8
4, 10
4, 11
4, 12
4, 14
4, 16
4, 18
4, 20
4, 21
4, 22
6, 2
6, 4
6, 6
6, 8
6, 9
6, 10
6, 12
6, 14
6, 16
6, 18
6, 19
6, 20
6, 22
7, 2
7, 12
7, 22
8, 2
8, 3
8, 4
8, 6
8, 8
8, 10
8, 12
8, 13
8, 14
8, 16
8, 18
8, 20
8, 22
8, 23
9, 6
9, 16
10, 2
10, 4
10, 6
10, 8
10, 10
10, 12
10, 14
10, 16
10, 18
10, 20
10, 22
11, 4
11, 14
12, 2
12, 4
12, 6
12, 7
12, 8
12, 10
12, 12
12, 14
12, 16
12, 17
12, 18
12, 20
12, 22
13, 8
13, 18
14, 1
14, 2
14, 4
14, 6
14, 8
14, 10
14, 11
14, 12
14, 14
14, 16
14, 18
14, 20
14, 21
14, 22
16, 2
16, 4
16, 6
16, 8
16, 9
16, 10
16, 12
16, 14
16, 16
16, 18
16, 19
16, 20
16, 22
17, 2
17, 12
17, 22
18, 2
18, 3
18, 4
18, 6
18, 8
18, 10
18, 12
18, 13
18, 14
18, 16
18, 18
18, 20
18, 22
18, 23
19, 6
19, 16
20, 2
20, 4
20, 6
20, 8
20, 10
20, 12
20, 14
20, 16
20, 18
20, 20
20, 22
21, 4
21, 14
22, 2
22, 4
22, 6
22, 7
22, 8
22, 10
22, 12
22, 14
22, 16
22, 17
22, 18
22, 20
22, 22
23, 8
23, 18
C'est le code-golf , le code comptant le moins d'octets sans utiliser de failles standard est le gagnant.
Comme il s'agit de ma première soumission, tout conseil est grandement apprécié. Merci!
la source
Réponses:
JavaScript (ES6),
83 81 8076 octetsEssayez-le en ligne!
Comment?
Commenté
la source
C # (Visual C # Interactive Compiler) ,
97939190 octets6 octets enregistrés grâce à @Kevin Cruijssen!
Essayez-le en ligne!
la source
int i=0; ... int j=0;
peut êtreint i=0,j; ... j=0;
et<1&
peut être+
de -4 octets.+
là est sympa cependant, merci((i+j)%2>0?3:5)
par(5-(i+j)%2*2)
Stax , 25 octets
Exécuter et déboguer
Il s'agit principalement de force brute, avec une observation légèrement intelligente. Toutes les troupes étranges ont 2 ou 4 voisins étranges. Et la somme totale de ces derniers plus la soudure d'origine est soit
3p
ou5p
oùp
est la puissance du soldat. Le coefficient (3 ou 5) peut être déterminé pargcd(2, x, y) * 2 + 1)
oùx
ety
sont les coordonnées du soldat.la source
Python 2 , 83 octets
Essayez-le en ligne!
Merci à Arnauld d'avoir enregistré un octet.
la source
JavaScript (SpiderMonkey) , 69 octets
Essayez-le en ligne!
la source
Gelée , 22 octets
Essayez-le en ligne!
Un programme complet qui prend un seul argument, le numéro de pouvoir secret, et imprime implicitement une liste de
[x, y]
paires. Utilise l'observation que d'autres ont faite sur les multiples de 3 et 5.la source
Wolfram Language (Mathematica) ,
6058 octetsEssayez-le en ligne!
J'ai regardé autour de moi après avoir posté et j'ai réalisé que j'avais vraiment besoin d'allumer mon cerveau ...
la source