Ads by Google

¾åµ­¤Î¹­¹ð¤Ï£±¥ö·î°Ê¾å¹¹¿·¤Î¤Ê¤¤¥Ö¥í¥°¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¿·¤·¤¤µ­»ö¤ò½ñ¤¯»ö¤Ç¹­¹ð¤¬¾Ã¤»¤Þ¤¹¡£
¥¹¥Ý¥ó¥µ¡¼¥É¥ê¥ó¥¯
-- : -- : -- | ¥¹¥Ý¥ó¥µ¡¼¹­¹ð | page top¢¬

ÉÔÊÑ¥¯¥é¥¹¤È¤·¤ÆÀ߷פ·¤¿Ê£ÁÇ¿ô¥¯¥é¥¹Complex¡ÊJava¤Ë¤è¤ë¼ÂÁõ¡Ë

Java¤ÇÊ£ÁÇ¿ô(complex number)¥¯¥é¥¹Complex¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£

¥á¥½¥Ã¥É

  • Complex(double re, double im) /* °ú¿ô¤Ë¼ÂÉô(real part)¤ÈµõÉô(imaginary part)¤ÎÃͤò¼è¤ë¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç¤¹¡£ */
  • re(): double /* ¼ÂÉô¤ÎÃͤòÊÖ¤¹¥¢¥¯¥»¥µ(accessor)¤Ç¤¹¡£ */
  • im(): double /* µõÉô¤ÎÃͤòÊÖ¤¹¥¢¥¯¥»¥µ¤Ç¤¹¡£ */
  • add(Complex c): Complex /* °ú¿ô¤Ë¼è¤Ã¤¿Ê£ÁÇ¿ô¤È¤ÎϤò·×»»¤·¤Æ¡¢¤½¤ÎÃͤòÊÝ»ý¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£ */
  • sub(Complex c): Complex /* °ú¿ô¤Ë¼è¤Ã¤¿Ê£ÁÇ¿ô¤È¤Îº¹¤ò·×»»¤·¤Æ¡¢¤½¤Î·ë²Ì¤òÊÝ»ý¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£ */
  • mul(Complex c): Complex /* °ú¿ô¤Ë¼è¤Ã¤¿Ê£ÁÇ¿ô¤È¤ÎÀѤò·×»»¤·¤Æ¡¢¤½¤Î·ë²Ì¤òÊÝ»ý¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£ */
  • div(Complex c): Complex /* °ú¿ô¤Ë¼è¤Ã¤¿Ê£ÁÇ¿ô¤È¤Î¾¦¤ò·×»»¤·¤Æ¡¢¤½¤Î·ë²Ì¤òÊÝ»ý¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£ */
  • Con(Complex c): Complex /* °ú¿ô¤Ë¼è¤Ã¤¿Ê£ÁÇ¿ô¤ÎÊ£ÁǶ¦Ìò(complex conjugate)¤ò·×»»¤·¤Æ¡¢¤½¤Î·ë²Ì¤òÊÝ»ý¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£ */
  • abs(): double /* ÀäÂÐÃÍ(absolute value)¤ò·×»»¤·¤Æ¡¢¤½¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£ */
  • arg(): double /* ÊгÑ(argument)¤ò·×»»¤·¤Æ¡¢¤½¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£ */
  • toString(): String /* Ê£ÁÇ¿ô¤òɽ¤¹Ê¸»úÎó¤ò(a+bi)¤Î·Á¼°¤ÇÊÖ¤·¤Þ¤¹¡£ */

¥×¥í¥°¥é¥à: 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 ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¥¬¥¤¥É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
¥¹¥Ý¥ó¥µ¡¼¥É¥ê¥ó¥¯

¥Æ¡¼¥Þ:¥×¥í¥°¥é¥ß¥ó¥° - ¥¸¥ã¥ó¥ë:¥³¥ó¥Ô¥å¡¼¥¿ - ¥½¡¼¥·¥ã¥ë¥Ö¥Ã¥¯¥Þ¡¼¥¯: ¤³¤Îµ­»ö¤ò¥¯¥ê¥Ã¥×¡ª Yahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÅÐÏ¿

22 : 10 : 19 | ¥×¥í¥°¥é¥ß¥ó¥°¡ÝJava | ¥È¥é¥Ã¥¯¥Ð¥Ã¥¯(0) | ¥³¥á¥ó¥È(6) | page top¢¬
<<±é»»»Ò¤Î¥ª¡¼¥Ð¡¼¥í¡¼¥É¤ò»ÈÍѤ·¤¿Ê£ÁÇ¿ô¥¯¥é¥¹Complex¡ÊC#¤Ë¤è¤ë¼ÂÁõ¡Ë | ¥Û¡¼¥à | Àµ³Î¤ÊÃͤ¬Í׵ᤵ¤ì¤ë·×»»¤Ëfloat,double·¿¤Ï»È¤¨¤Ê¤¤¡ª>>
¥³¥á¥ó¥È

Complex¥¯¥é¥¹¤ò°ú¿ô¤Ë¤È¤ë¥á¥½¥Ã¥É¤Îc.re¤Èc.im¤Ï¡¢private¥Õ¥£¡¼¥ë¥É¤Ê¤Î¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤ë¤ó¤À¡ª¡©Æ±¤¸¥¯¥é¥¹¤À¤«¤é¤«¤Ê¡©ËÜÍè¤Ê¤éc.re()¤Èc.im()¤Ë¤¹¤ë¤È»×¤Ã¤Æ¤¿¡ª
by: ¤¦¤¨¤Á¤ç¤³ * 2008/08/14 20:31 * URL [ ÊÔ½¸] | page top¢¬

¡ä¤¦¤¨¤Á¤ç¤³

²¶¤âºÇ½é¤Ïc.re()¤Èc.im()¤Ç½ñ¤¤¤Æ¤¿¤±¤É¡¢´Ö°ã¤¤¤¬¤Ê¤¤¤«Effective Java¤Î¥×¥í¥°¥é¥à¤È¸«Èæ¤Ù¤¿¤éEffective Java¤Ç¤Ïc.re¤Èc.im¤Ë¤Ê¤Ã¤Æ¤Æ¤Ó¤Ã¤¯¤ê¤·¤¿¡£

Effective Java¤Î´Ö°ã¤¤¤«¤È¤â»×¤Ã¤¿¤ó¤À¤±¤É¡¢²¿ÅÙ¤â°õºþ¤µ¤ì¤Æ¤¤¤ëËܤÀ¤«¤é¤³¤ÎÄøÅ٤δְ㤤¤Ê¤ó¤Æ¤È¤Ã¤¯¤Ëľ¤Ã¤Æ¤ë¤À¤í¤¦¤·¡¢Eclipse¤Ç¤â c. ¤Þ¤ÇÂǤĤȸõÊä¤Ëc.re¤âc.re()¤âξÊý½Ð¤Æ¤¯¤ë¤«¤é¡Ö¤â¤·¤«¤·¤Æ¡Ä¡©¡×¤Ã¤Æ»×¤Ã¤Æ»î¤·¤Æ¤ß¤¿¤éÌäÂê¤Ê¤¯Æ°¤¤¤¿¡£

°ã¤¦¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤â¡¢¥¯¥é¥¹¤¬Æ±¤¸¤Ê¤éprivate¤Î¥Õ¥£¡¼¥ë¥É¤â¥¢¥¯¥»¥¹¤Ç¤­¤ë¤ß¤¿¤¤¤À¤Í¡£¤³¤ì¤Ï¤¹¤´¤¯ÊÙ¶¯¤Ë¤Ê¤Ã¤¿¡£
by: TBVector * 2008/08/14 23:21 * URL [ ÊÔ½¸] | page top¢¬
ËÜÅö¤Ç¤¹¤«¡©
>div()¤Ë¤ª¤¤¤Æ¡¢¤¢¤é¤«¤¸¤áʬÊì(c.re*c.re + c.im*c.im)¤ò·×»»¤·¤Æ°ì»þÊÑ¿ôdenominator¤Ë³ÊǼ¤·¤Æ¤¤¤ë¤Î¤Ï¡¢¤³¤Î·×»»¤ò2ÅÙ¹Ô¤¦¤È¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬Äã²¼¤¹¤ë¤¿¤á¤Ç¤¹¡£¤³¤Î¤è¤¦¤Ë¡¢Ê£¿ô²ó¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤¹¤ë¾ì¹ç¤Ï¤½¤ÎÃͤò°ì»þÊÑ¿ô¤Ë³ÊǼ¤¹¤ë¤³¤È¤Ç¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤·¤Þ¤¹¡£

¤³¤ì¤Ç¤¹¤¬¡¢¤³¤ì¤ÏËÜÅö¤Ç¤¹¤«¡©
ºÇŬ²½½èÍý¤ÎÃʳ¬¤Ç¤Þ¤È¤á¤é¤ì¤¿¤ê¤Ï¤·¤Ê¤¤¤ó¤Ç¤¹¤«¡©¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤¬¸þ¾å¤·¤Þ¤¹¤È¤¤¤¦¤Î¤Ç¤¢¤ì¤Ð¤Á¤ã¤ó¤È¼Â¸³¤·¤Æ¸¡¾Ú¤¹¤Ù¤­¤À¤È»×¤¤¤Þ¤¹¡£
by: akiraviz * 2008/12/21 19:07 * URL [ ÊÔ½¸] | page top¢¬

¡äakiraviz¤µ¤ó
ËÜÅö¤Ç¤¹¡£

¼ÂºÝ¤Ë¸¡¾Ú¤·¤Æ¤ß¤Þ¤·¤¿¡£
http://networkprogramming.blog18.fc2.com/blog-entry-113.html
by: TBVector * 2008/12/22 00:58 * URL [ ÊÔ½¸] | page top¢¬

°ú¤­»»¤Î"return new Complex(re - c.re, im - c.re);"¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡¥
by: * 2009/03/22 09:14 * URL [ ÊÔ½¸] | page top¢¬

¡ä°ú¤­»»¤Î"return new Complex(re - c.re, im - c.re);"¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡¥

¤´»ØÅ¦¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

return new Complex(re - c.re, im - c.im);

¤Ë½¤Àµ¤·¤Þ¤·¤¿¡£
by: TBVector * 2009/03/22 10:36 * URL [ ÊÔ½¸] | page top¢¬

¥³¥á¥ó¥È¤ÎÅê¹Æ














´ÉÍý¼Ô¤Ë¤À¤±É½¼¨¤òµö²Ä¤¹¤ë

¥È¥é¥Ã¥¯¥Ð¥Ã¥¯
¥È¥é¥Ã¥¯¥Ð¥Ã¥¯URL
¢ªhttp://networkprogramming.blog18.fc2.com/tb.php/78-534e275d
¤³¤Îµ­»ö¤Ë¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤¹¤ë(FC2¥Ö¥í¥°¥æ¡¼¥¶¡¼)
| ¥Û¡¼¥à |

¥×¥í¥Õ¥£¡¼¥ë

Author:TBVector

¥×¥í¥Õ¥£¡¼¥ë

¥á¡¼¥ë¥Õ¥©¡¼¥à

µ­»ö¸¡º÷

Google

ºÇ¶á¤Îµ­»ö

¿Íµ¤¤Îµ­»ö

²áµî¤Îµ­»ö

¥«¥Æ¥´¥ê¡¼

¥¿¥°¥é¥ó¥­¥ó¥°

¥ê¥ó¥¯

ºÇ¶á¤Î¥³¥á¥ó¥È

ºÇ¶á¤Î¥È¥é¥Ã¥¯¥Ð¥Ã¥¯

¥¢¥¯¥»¥¹¥«¥¦¥ó¥¿