Category Archives: アルゴリズム

PHPで二分探索

PHPで二分探索(Binary Search)バイナリサーチのアルゴリズムのメモ | Web&MUSICブログ QUALL
二分探索をやられています。基本的なアルゴリズムを再現するのは良い勉強ですよね。

phpで ・重複しない ・ランダムな16桁の数字 を作りたいです。 5万個ぐらい作りたいです。 md5だと英字も入ってしまうし・・・ 良い方法を教えてください。

phpで ・重複しない ・ランダムな16桁の数字 を作りたいです。 5万個ぐらい作りたいです。 md5だと英字も入ってしまうし・・・ 良い方法を教えてください。 .. – 人力検索はてな

ランダムでユニークな16桁の数字を五万個を出すアルゴリズムが色々とあげられています。どうやるのがベターなんでしょうね。

PHPでハノイの塔

ITproで丁度ハノイの塔を使った再起の話題が出ていたので、あまりよく理解していなかった私がPHPで例文のハノイの塔を移植&ちょっと理解しやすい形でプログラミングしてみました。

サンプル
[php]






view();
$hanoi->exec($x, ‘a’, ‘b’, ‘c’);

class hanoi
{
public $a = array();
public $b = array();
public $c = array();

public function __construct($a)
{
for ($i = 1; $i <= $a; $i++) { $this->a[] = $i;
}
}

public function exec($maisu, $a, $b, $c)
{
if ($maisu > 0) {
$this->exec($maisu – 1, $a, $c, $b);

$this->move($a, $c); // $a から $c へ。
$this->view();

$this->exec($maisu -1, $b, $a, $c);
}
}

public function move($from, $to)
{
$move = array_shift($this->{$from});
array_unshift($this->{$to},$move);
echo (“$from から $to に。
“);
}

public function view()
{
echo (‘+————————+
‘);
echo (‘A:’);$this->_viewWhole($this->a);
echo (‘B:’);$this->_viewWhole($this->b);
echo (‘C:’);$this->_viewWhole($this->c);
echo (‘+————————+
‘);
}

private function _viewWhole(array $data)
{
for ($i = count($data) – 1; $i >= 0; $i–) {
echo($data[$i]);
}
echo(“
“);
}
}

?>


[/php]

1~9までの数を入力すれば、それを板の枚数として実行します。

プログラムがどういう動きをするのかよくわからない!という方は、数字を1から2,3,4と段々大きくしながら結果を見ていくと理解しやすいのではないでしょうか。