Пример #1
0
        public void UnrankStringLenTwo()
        {
            string s = "xy";
            int    n = s.Length;

            Console.WriteLine(string.Format("s:{0}", s));
            for (int r = 0; r < n; r++)
            {
                int[] pi = RankUnrank.InitIndexArray(n);
                RankUnrank.Unrank(n, r, pi);

                string ps = GetPermString(s, pi);
                Console.WriteLine(string.Format("r:{0} p:{1}", r, ps));

                int[] inv  = RankUnrank.GetInverseArray(pi);
                long  rank = RankUnrank.Rank(n, pi, inv);
                Assert.AreEqual(r, rank);
            }
        }