Hier ist eine relativ einfache zweidimensionale Array-Herausforderung.
Stellen Sie sich ein Schlachtfeld von 625 Fußsoldaten vor. Sie befehligen die ungeraden Truppen, aber leider überwältigt Sie die Stärke der geraden Truppen. Zum Glück haben Ihre Soldaten eine geheime Macht: Wenn die Macht jeder ungeraden Truppe und der sie umgebenden ungeraden Verbündeten durch eine geheime Machtzahl teilbar ist, entfesseln sie ihren ultimativen Angriff und gewinnen! Sie müssen jeden siegreichen Soldaten ehren.
Regeln
Geben Sie bei einem 25 x 25 Integer-Array, bei dem jedes Element das Produkt seiner x- und y-Position plus 1 enthält, die Koordinaten jedes "siegreichen" ungeraden Elements zurück, das die folgenden Kriterien erfüllt:
Die Summe des Wertes des Elements und seiner benachbarten ungeraden Elemente (oben, unten, links und rechts) ist durch die Eingabe (geheime Potenznummer) teilbar. Es muss an allen vier Seiten Elemente neben sich haben und darf nicht an einer Kante sein.
Einsendungen können entweder eine Funktion oder ein vollständiges Programm sein, für das eine einzige Eingabe erforderlich ist. Die Ausgabe kann in beliebiger Reihenfolge erfolgen.
Unser 25 x 25-Array, das Schlachtfeld, sieht folgendermaßen aus:
1, 1, 1, 1,...
1, 2, 3, 4,...
1, 3, 5, 7,...
1, 4, 7, 10,...
etc.
Beispiel
Hier ist ein 3 x 3 Beispiel:
43, 57, 71
46, 61, 76
49, 65, 81
Um festzustellen, ob ein Element (61 in der Mitte) gewinnt, addieren wir die Werte davon und die benachbarten ungeraden Elemente.
61 + 57 + 65 = 183
Wenn die Summe durch die Eingabe teilbar ist, wird die x- und y-Position des Elements gedruckt. Wenn unsere Eingabe 3 ist, weil 183 durch 3 teilbar ist, wird "1, 1" gedruckt.
Ausgabe
Wenn die Eingabe (geheime Kraftnummer) 37 ist, müssen die zurückgegebenen Elemente (zu lobende siegreiche Soldaten) sein:
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
Wenn die Eingabe 191 ist, müssen die zurückgegebenen Elemente sein:
10, 19
19, 10
Eine Eingabe von 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
Eine Eingabe von 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
Dies ist Code-Golf , der Code mit der niedrigsten Byteanzahl ohne Verwendung von Standardschlupflöchern ist der Gewinner.
Da dies meine erste Einreichung ist, wird jeder Rat sehr geschätzt. Vielen Dank!
quelle
Antworten:
JavaScript (ES6),
83 81 8076 ByteProbieren Sie es online aus!
Wie?
Kommentiert
quelle
C # (Visual C # Interactive Compiler) ,
97939190 Byte6 Bytes dank @Kevin Cruijssen gespart!
Probieren Sie es online aus!
quelle
int i=0; ... int j=0;
kannint i=0,j; ... j=0;
und<1&
kann+
für -4 Bytes sein.+
eine ist aber nett, danke((i+j)%2>0?3:5)
durch(5-(i+j)%2*2)
Stax , 25 Bytes
Führen Sie es aus und debuggen Sie es
Dies ist meistens nur rohe Gewalt, mit einer geringfügig klugen Beobachtung. Alle ungeraden Truppen haben entweder 2 oder 4 ungerade Nachbarn. Und die Gesamtsumme davon plus das ursprüngliche Lot ist entweder
3p
oder5p
wop
ist die Macht des Soldaten. Der Koeffizient (3 oder 5) kann durchgcd(2, x, y) * 2 + 1)
wox
undy
sind die Koordinaten des Soldaten bestimmt werden.quelle
Python 2 , 83 Bytes
Probieren Sie es online aus!
Vielen Dank an Arnauld für das Speichern eines Bytes.
quelle
JavaScript (SpiderMonkey) , 69 Bytes
Probieren Sie es online aus!
quelle
Gelee , 22 Bytes
Probieren Sie es online aus!
Ein vollständiges Programm, das ein einzelnes Argument, die geheime Potenznummer, verwendet und implizit eine Liste von
[x, y]
Paaren druckt . Verwendet die Beobachtung, die andere über Vielfache von 3 und 5 gemacht haben.quelle
Wolfram Language (Mathematica) ,
6058 BytesProbieren Sie es online aus!
Ich habe mich nach dem Posten umgesehen und festgestellt, dass ich wirklich mein Gehirn einschalten muss ...
quelle