¾ðÊó²Ê³Ø¤ò³Ø¤ÖÂç³ØÀ¸¤¬¥×¥í¥°¥é¥ß¥ó¥°(C¸À¸ì,Java¤Ê¤É)¡¢¥Í¥Ã¥È¥ï¡¼¥¯¡¢»ñ³Ê»î¸³(¾ðÊó½èÍýµ»½Ñ¼Ô»î¸³,CCNA)¤Ê¤É¤Ë´Ø¤¹¤ëµ»ö¤ò½ñ¤¤¤Æ¤¤¤Þ¤¹¡£
Java¤ÇÊ£ÁÇ¿ô(complex number)¥¯¥é¥¹Complex¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
¥á¥½¥Ã¥É
¥×¥í¥°¥é¥à: Complex.java
public class Complex {
private final double re;
private final double im;
public Complex(double re, double im) {
this.re = re;
this.im = im;
}
public double re() { return re; }
public double im() { return im; }
public Complex add(Complex c) {
return new Complex(re + c.re, im + c.im());
}
public Complex sub(Complex c) {
return new Complex(re - c.re, im - c.im);
}
public Complex mul(Complex c) {
return new Complex(
re*c.re - im*c.im, re*c.im + im*c.re);
}
public Complex div(Complex c) {
double denominator = c.re*c.re + c.im*c.im;
return new Complex(
(re*c.re + im*c.im)/denominator,
(im*c.re - re*c.im)/denominator);
}
public Complex Con() {
return new Complex(re, -im);
}
public double abs() {
return Math.sqrt(re*re + im*im);
}
public double arg() {
return Math.atan(im/re);
}
public String toString() {
if(im >= 0)
return "(" + re + " + " + im + "i" + ")";
else
return "(" + re + " - " + -im + "i" + ")";
}
}
²òÀâ
Effective Java¤Ç¿ä¾©¤µ¤ì¤Æ¤¤¤ëÉÔÊÑ¥¯¥é¥¹(immutable class)¤È¤·¤ÆÀ߷פ·¤¿¤¿¤á¡¢add¤Ê¤É¤Î¥á¥½¥Ã¥É¤Ç¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤ÎÃͤò½ñ¤´¹¤¨¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤ÆÊÖ¤·¤Æ¤¤¤Þ¤¹¡£¥Õ¥£¡¼¥ë¥Ére¤Èim¤¬final¤Ê¤Î¤â¤³¤Î¤¿¤á¤Ç¤¹¡£
div()¤Ë¤ª¤¤¤Æ¡¢¤¢¤é¤«¤¸¤áʬÊì(c.re*c.re + c.im*c.im)¤ò·×»»¤·¤Æ°ì»þÊÑ¿ôdenominator¤Ë³ÊǼ¤·¤Æ¤¤¤ë¤Î¤Ï¡¢¤³¤Î·×»»¤ò2ÅÙ¹Ô¤¦¤È¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Äã²¼¤¹¤ë¤¿¤á¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ë¡¢Ê£¿ô²ó¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¾ì¹ç¤Ï¤½¤ÎÃͤò°ì»þÊÑ¿ô¤Ë³ÊǼ¤¹¤ë¤³¤È¤Ç¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤·¤Þ¤¹¡£
![]() | Effective Java ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¥¬¥¤¥É Joshua Bloch ¥Ô¥¢¥½¥ó¡¦¥¨¥Ç¥å¥±¡¼¥·¥ç¥ó 2001-12-03 Çä¤ê¾å¤²¥é¥ó¥¥ó¥° : 9976 ¤ª¤¹¤¹¤áÊ¿¶Ñ ![]() Amazon¤Ç¾Ü¤·¤¯¸«¤ë by G-Tools |
¥Æ¥¹¥ÈÍѤÎmain¥á¥½¥Ã¥É
public static void main(String args[]) {
Complex c1 = new Complex(1, 2);
Complex c2 = new Complex(3, 4);
System.out.println(
c1 + " + " + c2 + " = " + c1.add(c2));
System.out.println(
c1 + " - " + c2 + " = " + c1.sub(c2));
System.out.println(
c1 + " * " + c2 + " = " + c1.mul(c2));
System.out.println(
c1 + " / " + c2 + " = " + c1.div(c2));
System.out.println(
"Con " + c1 + " = " + c1.Con());
System.out.println(
"|" + c1 + "|" + " = " + c1.abs());
System.out.println(
"arg" + c1 + " = " + c1.arg());
}
¼Â¹Ô·ë²Ì
(1.0 + 2.0i) + (3.0 + 4.0i) = (4.0 + 6.0i) (1.0 + 2.0i) - (3.0 + 4.0i) = (-2.0 - 1.0i) (1.0 + 2.0i) * (3.0 + 4.0i) = (-5.0 + 10.0i) (1.0 + 2.0i) / (3.0 + 4.0i) = (0.44 + 0.08i) Con(1.0 + 2.0i) = (1.0 - 2.0i) |(1.0 + 2.0i)| = 2.23606797749979 arg(1.0 + 2.0i) = 1.1071487177940904
¥Æ¡¼¥Þ:¥×¥í¥°¥é¥ß¥ó¥° - ¥¸¥ã¥ó¥ë:¥³¥ó¥Ô¥å¡¼¥¿ - ¥½¡¼¥·¥ã¥ë¥Ö¥Ã¥¯¥Þ¡¼¥¯:
![]()
Author:TBVector
»ä¤Î¥µ¥¤¥È
¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÈRSS
ͧã¤Î¥µ¥¤¥È
¤¢¤ï¤»¤ÆÆÉ¤ß¤¿¤¤
¤Ï¤Æ¤Ê¥ê¥ó¥°