usingMaths.com
Demonstrating and showing pupils and students one application of Mathematics.



Versions on Permutation Algorithm in VB.Net




loading...
Algorithm by: Educator usingMaths

Our Permutation code in Visual Basic.


Permutation Class File:


Public Class Permutation
Inherits Combination

    Private local_store
    Protected perm_store
    Private index As Integer

    ' till the ground for shuffle to grind on
    Public Function possibleWordPermutations(candidates As List(Of String), size As IntegerAs List(Of String())
        perm_store = New List(Of String())
        possibleWordCombinations(candidates, size)
        ' illegal 'r' value
        If comb_store.Count = 0 Or r = 1 Then
            perm_store = comb_store
        Else
            Dim last_two
            last_two = New List(Of String())({New String() {""""}, New String() {""""}})
            For i As Integer = 0 To comb_store.Count - 1
                index = r - 1
                ' copy up last two elements of 'comb_store(i)'
                last_two(0)(0) = comb_store(i)(index)
                last_two(1)(1) = last_two(0)(0)
                index -= 1
                last_two(0)(1) = comb_store(i)(index)
                last_two(1)(0) = last_two(0)(1)
                index -= 1

                local_store = New List(Of String())
                local_store.Add(last_two(0))
                local_store.Add(last_two(1))
                If r > 2 Then
                    shuffleWord(local_store, i)
                End If
                perm_store.AddRange(local_store)
            Next i
        End If
        Return perm_store
    End Function

    Private Sub shuffleWord(arg_store As List(Of String()), i As Integer)
        local_store = New List(Of String())
        Dim members
        For j As Integer = 0 To arg_store.Count - 1
            members = New List(Of String)
            members.AddRange(arg_store(j))
            ' add 'index' 'comb_store(i)' element to this list of members
            members.Add(comb_store(i)(index))

            Dim temp_char As String
            Dim shift_index As Integer = members.Count
            ' shuffle this pack of words
            Do While shift_index > 0
                ' skip if already in store
                If local_store.Contains(members.ToArray()) = False Then
                    local_store.Add(members.ToArray())
                End If
                ' interchange these two neighbours
                shift_index -= 1
                If shift_index > 0 Then
                    temp_char = members(shift_index)
                    members(shift_index) = members(shift_index - 1)
                    members(shift_index - 1) = temp_char
                End If
            Loop
        Next j
        ' Are there any elements left? repeat if yes
        If index > 0 Then
            index -= 1
            shuffleWord(local_store, i)
        End If
    End Sub

End Class


Main Class:


Module Miscellaneous_Permutation

    Sub Main()

        Dim goods
        goods = New List(Of String)(New String() {"Eno""Chidi""Olu""Ahmed""Osas""Gbeda"})
        Dim perm As New Permutation
        Dim result As List(Of String()) = perm.possibleWordPermutations(goods, 3)
        ' print choices and operation
        Console.Write("[ ")
        For Each choice As String In perm.words
            Console.Write(choice & "; ")
        Next
        Console.WriteLine("] permutation " & perm.r & ":" & Environment.NewLine)
        ' print out permutations nicely
        Dim i = 0
        For Each group As String() In result
            i += 1
            Console.Write(i & ": ")
            For Each member As String In group
                Console.Write(member & "; ")
            Next
            Console.WriteLine()
        Next
        Console.WriteLine(Environment.NewLine & "Number of ways is " & result.Count & ".")

    End Sub

End Module


Try it out!

Ownership (1) Simplicity (0.0) Elegance (0.0)
loading...
colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Drop Your Version!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Remark!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Edit Your Algorithm!
Login Please!

colormap #003366 #336699 #3366CC #003399 #000099 #0000CC #000066 #006666 #006699 #0099CC #0066CC #0033CC #0000FF #3333FF #333399 #669999 #009999 #33CCCC #00CCFF #0099FF #0066FF #3366FF #3333CC #666699 #339966 #00CC99 #00FFCC #00FFFF #33CCFF #3399FF #6699FF #6666FF #6600FF #6600CC #339933 #00CC66 #00FF99 #66FFCC #66FFFF #66CCFF #99CCFF #9999FF #9966FF #9933FF #9900FF #006600 #00CC00 #00FF00 #66FF99 #99FFCC #CCFFFF #CCCCFF #CC99FF #CC66FF #CC33FF #CC00FF #9900CC #003300 #009933 #33CC33 #66FF66 #99FF99 #CCFFCC #FFFFFF #FFCCFF #FF99FF #FF66FF #FF00FF #CC00CC #660066 #336600 #009900 #66FF33 #99FF66 #CCFF99 #FFFFCC #FFCCCC #FF99CC #FF66CC #FF33CC #CC0099 #993399 #333300 #669900 #99FF33 #CCFF66 #FFFF99 #FFCC99 #FF9999 #FF6699 #FF3399 #CC3399 #990099 #666633 #99CC00 #CCFF33 #FFFF66 #FFCC66 #FF9966 #FF6666 #FF0066 #CC6699 #993366 #999966 #CCCC00 #FFFF00 #FFCC00 #FF9933 #FF6600 #FF5050 #CC0066 #660033 #996633 #CC9900 #FF9900 #CC6600 #FF3300 #FF0000 #CC0000 #990033 #663300 #996600 #CC3300 #993300 #990000 #800000 #993333
Edit Your Remark!
Login Please!

Delete Post >

Delete Comment >

Please wait...