On me pose un problème qui me demande explicitement de ne pas utiliser les numéros ou les pandas
Problème: p>
donné deux séries de points de données sous la forme de utilles comme p> et ensemble d'équations de ligne (dans le format de la chaîne, c'est-à-dire la liste des chaînes) p> Remarque: vous devez faire une analyse de chaîne Ici et obtenez les coefficients de x, y et intercept. p> Votre tâche ici est d'imprimer "oui" / "non" pour chaque ligne donnée. Vous devez imprimer oui, si tous les points rouges sont un côté de la ligne et les points bleus sont de l'autre côté de la ligne, sinon vous devez imprimer non. P> Suppose S(x)(y) = 1x+1y+0
Now take points (1,1) and (-6,-1)
S(1)(1) = 1(1)+ 1(1) = 2 >0
S(-6)(-1) = 1(-6)+(1)(-1) = -7 <0
5 Réponses :
En supposant que vos chaînes sont toujours de la forme (dans cet ordre), vous pouvez écrire p>
Pouvez-vous s'il vous plaît élaborer comment fonctionne la ligne de code ci-dessus ?? J'ai essayé de le tester avec le code suivant: Importer re x = "1x + 2y + 2" l = (re.split ("x | y ', x)) Imprimer (L) J'ai reçu la sortie [" 1', " +2 ',' + 2 '] Je ne comprends pas, si la ré-remplit les caractères avant X et Y ou après. Aussi comment fonctionne Coef.Strip () fonctionne?
a, b, c = 1, 1, 1
x1, y1 = 1, 1
x2, y2 = 2, 1
if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2)):
print("Yes")
else:
print("No")
S'il vous plaît faites attention au formatage. Dans son état actuel, votre réponse est très difficile à lire. Il a des espaces inutiles entre les lignes, les phrases dupliquées au début, les lignes audacieuses inutiles et les blocs de code incohérents.
Utilisez votre fonction_string.replace () et Eval (),
Remplacez les caractères X et Y avec ses valeurs,
eval () pour exécuter la chaîne comme équation
@HEMANTH RAVAVAVARAPU, REHSPLIT (X | Y) verra une équation de ligne basée sur x ou y. I.E Si vous donnez de l'espace, il sera divisé en fonction de l'espace identique ici aussi sévir où il a été trouvé x ou y. P>
e1 = []
e2 = []
def points():
for k in Lines:
a=k[0];b=k[2]+k[3];c=k[5]+k[6]
n = [];m=[]
for i in Red:
x1=i[0];y1=i[1]
eq1 = int(a) * int(x1) + int(b) * int(y1)-int(c)
n.append(eq1)
e1.append(n)
for j in Blue:
x2=j[0];y2=j[1]
eq2 = int(a) * int(x2) + int(b) * int(y2)-int(c)
m.append(eq2)
e2.append(m)
print(e1)
print('----------------------------------------------------------------------')
print(e2)
print('----------------------------------------------------------------------')
p=[]
for i,j in zip(e1,e2):
q = []
for k,l in zip(i,j):
x=k*l
if x<0:
q.append(x)
p.append(q)
print(p)
for i in p:
if len(i)==5:
print('yes')
else:
print('No')
Red= [(1,1),(2,1),(4,2),(2,4),(-1,4)]
Blue= [(-2,-1),(-1,-2),(-3,-2),(-3,-1),(1,-3)]
Lines=["1x+1y+0","1x-1y+0","1x+0y-3","0x+1y-0.5"]
points()
Bien que ce code puisse résoudre la question, y compris une explication de la manière et pourquoi cela résout le problème aiderait vraiment à améliorer la qualité de votre poster et aboutit probablement à plus de votes ultérieurs. N'oubliez pas que vous répondez à la question des lecteurs à l'avenir, pas seulement la personne qui demande maintenant. S'il vous plaît Modifier Votre réponse Pour ajouter des explications et donner une indication de quelles limitations et hypothèses s'appliquent.
Vous demandez-vous comment indexer les listes de points pour délimiter les valeurs X et Y dans ces tuples?