In [1]:
using MyMatching
まずはWikipediaの例を用いてやってみる。
In [2]:
m_prefs = [[3], [3, 2, 1], [1, 3, 2], [3, 1]];
In [3]:
f_prefs = [[2, 3], [2, 3, 4, 1], [4, 1, 2]];
In [4]:
my_deferred_acceptance(m_prefs, f_prefs)
Out[4]:
できました。次にランダム選好リストを生成する関数を用いてやってみる。
In [5]:
using Matching
In [6]:
function mat2vecs{T<:Integer}(prefs::Matrix{T})
return [prefs[1:findfirst(prefs[:, j], 0)-1, j] for j in 1:size(prefs, 2)]
end
Out[6]:
In [7]:
m_prefs2, f_prefs2 = mat2vecs.(random_prefs(5, 4, allow_unmatched=false))
Out[7]:
In [8]:
my_deferred_acceptance(m_prefs2, f_prefs2)
Out[8]:
これも望ましい結果が返されました。最後にテストが通るか試します。
In [9]:
Pkg.test("MyMatching")
通りました。