小编Men*_*cey的帖子

直接从算法中获取第 n 个唯一排列,而不生成前一个排列

初始值的第 n 个唯一的、视觉上唯一的排列(即使按字母顺序排序)是否可以通过算法获得?

\n

如果我们有一个初始值,例如0101,唯一的排列将是0011、0110、1100、0101、1010、1001,通过算法,如果我输入数字3,我应该直接得到唯一的排列例如,1100,无需计算上述排列。直接生成它很重要,因为如果我们有一个初始值 0101011010101010110110010101010101010 并且我们想要获得唯一的排列 82873648234,如果我们生成所有以前的排列,将花费太多时间。有什么方法吗?我在这个论坛上搜索了多个类似的问题,但我无法获得这个具体案例的答案。我们需要直接处理独特的排列,而不生成以前的排列。

\n

我尝试了几种代码选项。例如,这段代码不仅生成一次唯一的排列,而且重复它们并且不起作用。

\n
Private 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)

algorithm math permutation

3
推荐指数
1
解决办法
71
查看次数

标签 统计

algorithm ×1

math ×1

permutation ×1