著者
二村 良彦 大谷 啓記 青木 健一 二村 夏彦
出版者
一般社団法人日本ソフトウェア科学会
雑誌
コンピュータソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.14, no.6, pp.588-605, 1997-11-17
被引用文献数
1

長さnの順列を等確率,即ち1/n!で生成するO(n)アルゴリズムは知られている.しかし,整列アルゴリズム等の精密な評価のためには,このような一様乱順列による評価では不十分である.例えば,一様乱順列に含まれる葉数(自分よりも小さい隣人を持たない要素の個数),ランズ,および上昇部分の個数(即ちn-ランズ)は,平均各々約(n+1)/3,(n+1)/2,および(n-1)/2である.これは一様乱順列が極めて偏った特性を有することを意味する.アルゴリズムの性能に影響を及ぼす性質(例えば葉数)を制御しながらランダムに順列を生成し,それを用いてアルゴリズムの性能を評価する必要がある.本稿では,順列から非負の整数上への関数および関数値を順列の特性指標と呼ぶ.特性指標の中でも,順列の葉数,ランズ,上昇部分数等に対応するクラスを単純指標と呼び,それを形式的に定義する.そして長さn,単純指標mを持つ乱順列をO(nm)で生成する計算機オーバーフロー(またはアンダーフロー)無しの方法を提案する.また,単純指標が葉数である場合には順列をO(n)で生成する実用的近似方式について報告する.