如何判断变量是否是一个复杂的数字C

How to tell if a variable is a complex number or not c++

本文关键字:复杂 一个 数字 是否是 何判断 判断 变量      更新时间:2023-10-16

我如何判断我的代码(T1和T2(中二次方程的输出是真实的还是复杂的?该程序的目的是采用两个对象的坐标和速度,以查看它们是否碰撞。如果T1或T2的值很复杂,那么它们不相撞,这就是为什么我需要帮助弄清楚如何判断T1和T2是否复杂的原因。

#include <iostream>
#include <string>
#include <cmath>
using std::cout;
using std::cin;
using std::string;
int main() {
  string id;
  double x = -34.94;
  double y = -69.13;
  double vx = 0.468;
  double vy = -0.900;
  double x2 = -43.08;
  double y2 = 92.12;
  double vx2 = -0.811;
  double vy2 = -0.958;
  double r1 = x2-x;
  double r2 = y2-y;
  double v1 = vx2-vx;
  double v2 = vy2-vy;
  double b = (2*r1*v1) + (2*r2*v2);
  double a = (v1*v1) + (v2*v2);
  double c = ((r1*r1) + (r2*r2))-100;
  double s = pow(b,2)-(4*a*c);
 double t1 = ((b*-1) + sqrt(s)) / (2*a);
 double t2 = ((b*-1) - sqrt(s)) / (2*a);
}

对于二次方程式,您可以将其判别。如果小于0,则根很复杂。

double s = pow(b,2)-(4*a*c);
if(s < 0) {
 // roots will be complex. no collision 
}