LoginSignup
2
2

More than 5 years have passed since last update.

配列をシャッフルする

Posted at

D言語で配列をランダムに並び替えるときは、 std.randomrandomShuffle を使います。

import std.stdio;
import std.random;

void main(string[] args)
{
  auto array = [0, 1, 2, 3, 4, 5];
  array.randomShuffle();
  writeln(array);
}

実行すると、[3, 4, 2, 1, 5, 0] とか [0, 2, 3, 4, 1, 5] とか表示されます。

本来(?)は randomShuffle(array) と書くのですが、D言語では UFCS (Uniform Function Call Syntax) といって第一引数をあたかもオブジェクトであるかのように書けるシンタックスシュガーがあるので、私はいつもこう書いています。

また、第二引数には乱数生成器(RandomGen)を渡すことができます。シミュレーションなど、再現性が必要なときに使うといいかもしれません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2