Nous avons des objets qui oscillent entre deux points entiers [l, r]
, à la vitesse d'une unité par unité de temps, à partir l
de t=0
. Vous pouvez supposer l < r
. Par exemple, si un objet oscille [3, 6]
, alors nous avons:
t=0 -> 3
t=1 -> 4
t=2 -> 5
t=3 -> 6
t=4 -> 5
t=6 -> 4
t=7 -> 3
t=8 -> 4
Etc. Mais les objets oscillent continuellement, nous avons donc aussi t=0.5 -> 3.5
et t=3.7 -> 5.3
.
Compte tenu de deux objets oscillant entre [l1, r1]
, [l2, r2]
, déterminer si jamais il y a un temps t
tel que les deux objets partagent la même position. Vous faites des prises l1, r1, l2, r2
dans n'importe quel format pratique, et sortez toutes les valeurs véridiques / fausses.
Entrées véridiques:
[[3, 6], [3, 6]]
[[3, 6], [4, 8]]
[[0, 2], [2, 3]]
[[0, 3], [2, 4]]
[[7, 9], [8, 9]]
Entrées fausses:
[[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
la source
la source
0
elle être vraie et tout entier positif ou doit-elle être cohérente? Plus encore, la falsification peut-elle être la liste vide et la vérité peut-elle être une liste non vide?[[1,3],[2,6]]
: cela falsifie l'heuristique "les intervalles se chevauchent et ne sont pas de la même longueur".Réponses:
Python 2 , 69 octets
Essayez-le en ligne!
la source
Husk , 13 octets
Prend l'entrée au format
[[l,r],[L,R]]
. Renvoie0
pour les instances fausses et un entier positif pour les instances véridiques. Essayez-le en ligne!Explication
Les principales idées sont
Voici le code annoté.
la source
JavaScript (ES6),
104100 octetsUne implémentation naïve qui exécute simplement la simulation. Prend (a, b, c, d) comme 4 variables distinctes.
Cas de test
Afficher l'extrait de code
la source
Wolfram Language (Mathematica) ,
776961 octetsUne fonction pure prenant les quatre arguments
l1, r1, l2, r2
en entrée: par exemple,[0,3,2,4]
lorsque les intervalles sont[0,3]
et[2,4]
.Essayez-le en ligne!
Comment ça fonctionne
Pour obtenir un point
[a,b]
près d'un point[c,d]
, en supposanta<c<b<d
, nous voulons un multiple impair de l'b-a
intérieurb-c
d'un multiple pair ded-c
. Sib-a
a plus de facteurs2
qued-c
, nous pouvons faire en sorte que cela se produise exactement: il y aura un moment où le premier point est aub
et le deuxième point estc
, et ensuite nous sommes en bonne forme. Sinon, le mieux que nous puissions faire est le GCD deb-a
etd-c
.la source
JavaScript (ES6), 89 octets
Prend
l1,r1,l2,r2
comme arguments séparés. Explication: La simulation est garantie de se répéter après les(r1-l1)*(r2-l2)*2
unités de temps (ou un facteur correspondant);g
calcule le décalage de l'objet approprié après lesi/2
unités de temps, ili
doit donc aller jusqu'à(r1-l1)*(r2-l2)*4
.la source
05AB1E ,
121014 octets+4 octets pour gérer les plages négatives
Retourne 0 si faux, ou un entier positif sinon
Utilisez l'idée de Zgarb de doubler les valeurs pour faciliter la détection de la même position
Merci à @ Zacharý d'avoir signalé mes erreurs
Essayez-le en ligne!
Explications:
la source
[[0,n],[n-1, n]]
et même dans ce cas, la deuxième liste serait répétée suffisamment de fois (et plus) pour que la première atteigne sa limite supérieure. Mais j'ai oublié de prendre en compte les nombres négatifs:[[-100, 1], [0, 1]]
ça ne marche pas. Le réparer au coût de 4 octets :-(Java (OpenJDK 8) , 81 octets
Essayez-le en ligne!
Réutilisation de l'algorithme Python de xnor .
la source