一尘不染

从“ int”映射到相应的排列值?

algorithm

基本上,这个问题是关于必须为6个值创建排列的数据。每个从1到38。

因此,第一个排列是

1 1 1 1 1 1      [ permutation 1 ]
1 1 1 1 1 2      [ permutation 2 ]
1 1 1 1 1 3...   [ permutation 3 ]

结束于

38 38 38 38 38 38 [ permutation 38^^6 ]

输出仅由6个嵌套循环创建,每个循环从1到38;在最内部的循环中,您将打印6个循环计数器。

现在我想知道其背后的数学原理;出于好奇:什么是“功能”

  1. 给定任意排列,计算“排列索引” 1​​ 2 3 4 5 6
  2. 可能更有趣:它带有一个“索引”,例如102382;并告诉我相应的排列输出

有人知道吗?


阅读 275

收藏
2020-07-28

共1个答案

一尘不染

它的工作原理与更改基数(二进制,八进制或十六进制)完全相同。第一个问题很简单:1 * 38 ^ 6 + 2 * 38 ^ 5 + 3 * 38 ^ 4 +
4 * 38 ^ 3 + … + 6 * 38 ^ 0第二个问题相反:102382 mod 38 …递归 UPDATE
让我们假设我们想将10更改为基数2:

10/2=5 remainder(modulus)  **0** 
5/2=2 remainder           **1**
2/2=1 remainder           **0**
1/2=0 remainder           **1**

向后是 1010, 一般给M更改底数B,将M除以B,其余将成为新底数

2020-07-28