일반적으로 무한대처럼 "행동"하는 상징적 인 표현은 무엇입니까?
당신은 확실히 그런 것을 할 수 있습니다. 당신을 어디에서나 유용하게 만드는 대부분의 계산상의 문제들. 접근하는 간단한 방법은 자신 만의 데이터 형식을 만들고 모든 연산자를 무한대로 적절하게 처리하는 것입니다. 모든 무한 성은 동일하지만 그 문제를 다룰 필요가 있습니다. 예를 들어,
class MyFloat
{
public:
MyFloat(float a):
m_val(a),
m_isInf(false),
m_orderInf(0)
{}
bool isInf(){return m_isInf;}
int orderInf(){return m_orderInf;}
float value(){return m_val;}
// define custom operators
MyFloat & operator+= (MyFloat const & rhs)
{
if(rhs.isInf() || m_isInf)
{
m_orderInf = m_orderInf > rhs.orderInf() ? m_orderInf : rhs.orderInf();
m_isInf = true;
}
else
{
m_val += rhs.value();
}
return *this;
}
// other operators you would need to define
MyFloat & operator/= (MyFloat const & rhs);
MyFloat & operator*= (MyFloat const & rhs);
private:
float m_val;
bool m_isInf;
int m_orderInf;
};
주 같은 것을 할 수있는 사용자 정의 플로트를 정의 할 수 있습니다 : 당신은 0과 무한대 모두를 치료하는 방법에 관한 생각을 많이 제공해야합니다. 위의 코드는 잘 생각하지 못했지만, 생각해 볼만한 점이 있기를 바랍니다.
어떻게 무한대를'int'로 사용해야합니까? 어떤 맥락에서? – nhgrif
정수에는 무한대를 나타내는 규칙이 없습니다. 즉, 정수로 수행 할 수있는 산술 연산은 무한 값을 처리하거나 생성하는 데 대한 단서가 없습니다. 정수로 작업 할 때 거의 아무도 무한대에 사용하지 않기 때문에 이런 일이 발생합니다. 아마도 당신은 왜 당신이 무한하다고 생각하는지 우리에게 말해야 할 것입니다. – DanielKO
안녕하세요 @ nhgrif, @ DanielKO, 질문에 무한대가 필요한 이유를 추가하겠습니다. – BlackAdder