Wir haben Objekte, die zwischen zwei ganzzahligen Punkten oszillieren [l, r]
, mit einer Geschwindigkeit von einer Einheit pro Zeiteinheit, beginnend bei l
on t=0
. Sie können davon ausgehen l < r
. Wenn zum Beispiel ein Objekt anschwingt [3, 6]
, haben wir:
t=0 -> 3
t=1 -> 4
t=2 -> 5
t=3 -> 6
t=4 -> 5
t=6 -> 4
t=7 -> 3
t=8 -> 4
Aber Objekte schwingen ununterbrochen, also haben wir auch t=0.5 -> 3.5
und t=3.7 -> 5.3
.
Bestimmen Sie bei zwei Objekten, die zwischen [l1, r1]
, oszillieren , [l2, r2]
ob es jemals eine Zeit gibt t
, bei der sich die beiden Objekte dieselbe Position teilen. Sie nehmen l1, r1, l2, r2
ein beliebiges praktisches Format an und geben alle wahrheitsgemäßen / falschen Werte aus.
Wahrheitseingaben:
[[3, 6], [3, 6]]
[[3, 6], [4, 8]]
[[0, 2], [2, 3]]
[[0, 3], [2, 4]]
[[7, 9], [8, 9]]
Falsche Eingaben:
[[0, 3], [3, 5]]
[[0, 2], [2, 4]]
[[5, 8], [9, 10]]
[[6, 9], [1, 2]]
[[1, 3], [2, 6]]
code-golf
array-manipulation
decision-problem
code-golf
math
number-theory
palindrome
integer-partitions
code-golf
math
decision-problem
geometry
code-golf
string
random
code-golf
ascii-art
code-golf
kolmogorov-complexity
primes
code-golf
kolmogorov-complexity
code-golf
graphical-output
code-golf
number-theory
primes
integer
factoring
code-golf
sequence
array-manipulation
integer
code-golf
array-manipulation
matrix
code-golf
sequence
binary
code-golf
game
cellular-automata
game-of-life
binary-matrix
code-golf
string
ascii-art
code-golf
random
generation
logic
code-golf
string
code-golf
code-golf
sequence
array-manipulation
random
apl
code-golf
code-golf
sequence
primes
code-golf
math
sequence
integer
code-golf
number
arithmetic
array-manipulation
decision-problem
code-golf
ascii-art
number
code-golf
restricted-source
quine
code-golf
chess
board-game
code-golf
math
sequence
code-golf
number
sequence
kolmogorov-complexity
code-golf
number
sequence
arithmetic
code-golf
math
number
alphabet
code-golf
ascii-art
classification
statistics
apl
code-golf
array-manipulation
matrix
code-golf
string
kolmogorov-complexity
code-golf
sequence
binary
base-conversion
binary-matrix
code-golf
string
classification
code-golf
tips
python
code-golf
combinatorics
binary
subsequence
restricted-time
code-golf
number
number-theory
code-golf
math
number
complex-numbers
code-golf
string
code-golf
string
code-golf
string
random
game
king-of-the-hill
python
code-golf
number
sequence
code-golf
number
sequence
code-golf
code-golf
math
number
array-manipulation
code-golf
array-manipulation
decision-problem
code-golf
string
code-golf
sequence
integer
orlp
quelle
quelle
0
beliebige positive ganze Zahl sein und ist sie wahr, oder müssen sie konsistent sein ? Kann falsy die leere Liste sein und truthy irgendeine nicht leere Liste?[[1,3],[2,6]]
: Dies verfälscht die Heuristik "Die Intervalle überlappen sich und sind nicht gleich lang".Antworten:
Python 2 , 69 Bytes
Probieren Sie es online!
quelle
Schale , 13 Bytes
Übernimmt die Eingabe im Format
[[l,r],[L,R]]
. Gibt0
für falsche Instanzen und für wahrheitsgemäße Instanzen eine positive Ganzzahl zurück. Probieren Sie es online!Erläuterung
Die Hauptideen sind
Hier ist der Code mit Anmerkungen versehen.
quelle
JavaScript (ES6),
104100 ByteEine naive Implementierung, die nur die Simulation ausführt. Nimmt (a, b, c, d) als 4 verschiedene Variablen.
Testfälle
Code-Snippet anzeigen
quelle
Wolfram Language (Mathematica) ,
776961 BytesEine reine Funktion, die die vier Argumente
l1, r1, l2, r2
als Eingabe verwendet: zB[0,3,2,4]
wenn die Intervalle[0,3]
und sind[2,4]
.Probieren Sie es online!
Wie es funktioniert
Um einen Punkt in die
[a,b]
Nähe eines Punktes in zu bringen[c,d]
,a<c<b<d
wollen wir ein ungerades Vielfaches vonb-a
innerhalbb-c
eines geraden Vielfachen vond-c
. Wennb-a
es mehr Faktoren2
als gibtd-c
, können wir dies genau erreichen: Es wird eine Zeit geben, in der der erste Punktb
und der zweite Punkt erreicht sindc
, und dann sind wir in guter Verfassung. Wenn nicht, ist das Beste, was wir tun können, die GCD vonb-a
undd-c
.quelle
JavaScript (ES6), 89 Byte
Nimmt
l1,r1,l2,r2
als separate Argumente. Erläuterung: Die Simulation wird garantiert nach(r1-l1)*(r2-l2)*2
Zeiteinheiten (oder einem Faktor davon) wiederholt .g
berechnet den Versatz des entsprechenden Objekts nachi/2
Zeiteinheiten,i
muss also bis reichen(r1-l1)*(r2-l2)*4
.quelle
05AB1E ,
121014 Bytes+4 Bytes für negative Bereiche
Gibt 0 zurück, wenn dies falsch ist, oder eine positive Ganzzahl, wenn dies nicht der Fall ist
Verwenden Sie die Idee von Zgarb von Werte zu verdoppeln, um die Positionserkennung zu vereinfachen
Vielen Dank an @ Zacharý für den Hinweis auf meine Fehler
Probieren Sie es online!
Erklärungen:
quelle
[[0,n],[n-1, n]]
und sogar in diesem Fall die zweite Liste so oft (und mehr) wiederholt würde, dass die erste die Obergrenze erreicht. Aber ich habe vergessen, negative Zahlen zu berücksichtigen:[[-100, 1], [0, 1]]
funktioniert nicht. Behebung zu einem Preis von 4 Bytes :-(Java (OpenJDK 8) , 81 Byte
Probieren Sie es online!
Wiederverwenden des Python-Algorithmus von xnor .
quelle