Location : Home > Languages > Perl > Package
Title : Math::MagicSquare
Toolbox Logo

名称

 Math::MagicSquare - 魔方陣か否かをチェック


概要

use Math::MagicSquare;

$a= Math::MagicSquare -> new ([num,...,num],
                               ...,
                              [num,...,num]);
$a->print("string");
$a->printhtml();
$a->printimage();
$a->check();
$a->rotation();
$a->reflection();

説明

 以下のメソッドが利用可能である。

new

 同じ長さの配列への参照のリストを引数としたコンストラクタ。

$a = Math::MagicSquare -> new ([num,...,num],
                                ...,
                               [num,...,num]);

check

 この関数は4種類の値を返す。

  1. 魔方陣ではない。
  2. 部分魔方陣(Semimagic Square)である。(行和と列和が等しい)
  3. 魔方陣(Magic Square)である。(行和・列和・対角和が等しい)
  4. 汎方陣(Panmagic Square)である。(行和・列和・対角和に加え、行や列を移動しても和が等しい)

print

 標準出力に方陣を出力する。追加的なパラメータがある場合には魔方陣を出力する前に指定すること。

printhtml

 標準出力にHTMLで出力する。(TABLEを作成)

printimage

 標準出力に方陣を png 形式で出力する。

rotation

 魔方陣を時計回りに90度回転させる。

reflection

 魔方陣を対角線に対して反転させる。


必要環境

 Perl の GD モジュール


使用例

use Math::MagicSquare;

$A = Math::MagicSquare -> new ([8,1,6],
                               [3,5,7],
                               [4,9,2]);
$A->print("Magic Square A:\n");
$A->printhtml();
$i=$A->check();
if($i == 2) {print "This is a Magic Square.\n";}
$A->rotation();
$A->print("Rotation:\n");
$A->reflection();
$A->print("Reflection:\n");
$A->printimage();

 以下が出力である。

Magic Square A:
    8     1     6 
    3     5     7 
    4     9     2 
<TABLE border=3 width="2" height="2" cellpadding=1 cellspacing=1>
<TR>
<TD align=right><FONT size=+2><B>8</B></font></TD>
<TD align=right><FONT size=+2><B>1</B></font></TD>
<TD align=right><FONT size=+2><B>6</B></font></TD>
</TR>
<TR>
<TD align=right><FONT size=+2><B>3</B></font></TD>
<TD align=right><FONT size=+2><B>5</B></font></TD>
<TD align=right><FONT size=+2><B>7</B></font></TD>
</TR>
<TR>
<TD align=right><FONT size=+2><B>4</B></font></TD>
<TD align=right><FONT size=+2><B>9</B></font></TD>
<TD align=right><FONT size=+2><B>2</B></font></TD>
</TR>
</TABLE>
This is a Magic Square.
Rotation:
    4     3     8 
    9     5     1 
    2     7     6
Reflection:
    8     3     4
    1     5     9
    6     7     2

著者

 Fabrizio Pivari, fabrizio@pivari.com
 http://www.pivari.com/


著作権

 Copyright 2003, Fabrizio Pivari, fabrizio@pivari.com

 本ライブラリはフリーソフトウェアであり、Perl 本体と同等の条件で修正・再配布してよい。
 Windows の CGI の配布に興味があるか? それなら http://www.pivari.com/squaremaker.html で確かめて私に連絡してほしい。


最新版の入手

 本ライブラリの最新バージョンは http://www.pivari.com/magicsquare.html または CPAN のミラーサイトで入手可能である。


魔方陣に関する情報

 君は魔方陣を知っているか?
 魔方陣についてもっと知りたいか?
 それならリンクをたどってみよう。

Toolbox Logo
Updated : 2007/04/12