初始值的第 n 个唯一的、视觉上唯一的排列(即使按字母顺序排序)是否可以通过算法获得?
\n如果我们有一个初始值,例如0101,唯一的排列将是0011、0110、1100、0101、1010、1001,通过算法,如果我输入数字3,我应该直接得到唯一的排列例如,1100,无需计算上述排列。直接生成它很重要,因为如果我们有一个初始值 0101011010101010110110010101010101010 并且我们想要获得唯一的排列 82873648234,如果我们生成所有以前的排列,将花费太多时间。有什么方法吗?我在这个论坛上搜索了多个类似的问题,但我无法获得这个具体案例的答案。我们需要直接处理独特的排列,而不生成以前的排列。
\n我尝试了几种代码选项。例如,这段代码不仅生成一次唯一的排列,而且重复它们并且不起作用。
\nPrivate Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click\n Dim str As String = "0011"\n Dim target As Integer = 4 ' La permutaci\xc3\xb3n que quieres generar\n Dim arr() As Char = str.ToCharArray()\n Array.Sort(arr)\n str = New String(arr)\n\n For i = 0 To 5\n Dim result As String = FactoradicPermutation(str, i)\n MsgBox(result)\n Next\n\n End Sub\n Function FactoradicPermutation(ByVal str As String, ByVal index As Integer) As String\n Dim factoradic() …Run Code Online (Sandbox Code Playgroud)