fork download
  1. numperm = @(a) factorial(numel(a)) / prod(arrayfun(@(u) factorial(sum(a == u)), unique(a)));
  2. f = @(a) sum(arrayfun(@(i) sum(a(i:end) < a(i)) * numperm(a(i:end)) / numel(a(i:end)), 1:numel(a))) + 1;
  3. n = [];
  4. n = [n; f([1, 2, 3, 4, 5, 6, 7, 8, 9])];
  5. n = [n; f([1, 2, 3, 4, 5, 6, 7, 9, 8])];
  6. n = [n; f([1, 2, 3, 4, 5, 6, 8, 7, 9])];
  7. n = [n; f([4, 1, 6, 5, 8, 9, 7, 3, 2])];
  8. n = [n; f([6, 8, 4, 7, 5, 3, 2, 1, 9])];
  9. n = [n; f([9, 8, 7, 6, 5, 4, 3, 2, 1])];
  10. n = [n; f([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4])];
  11. n = [n; f([1, 1, 1, 2, 2, 2, 3, 3, 4, 3, 4, 4])];
  12. n = [n; f([1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 3, 4])];
  13. n = [n; f([2, 2, 2, 3, 3, 1, 4, 3, 4, 1, 1, 4])];
  14. n = [n; f([3, 2, 4, 4, 2, 4, 3, 3, 1, 1, 1, 2])];
  15. n = [n; f([4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1])];
  16. n = [n; f([3, 1, 4, 1, 5, 9])];
  17. n
  18.  
Success #stdin #stdout 0.34s 46312KB
stdin
Standard input is empty
stdout
n =

        1
        2
        3
   123456
   234567
   362880
        1
        2
        3
   123456
   234567
   369600
      127