I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det er rigtigt, der er 15.120 kombinations muligheder, de fleste vil dog være ens!! Uden at skulle gå for meget i detaljer med matematiken ovenstående kunne betragtes som et binært tal som maksimalt kan være 2^9-1 = 511 ud af disse opfylder 126 din betingelse. Men til koden:
Sub Permut5Bit() Dim s As String Dim i As Long Dim Bits As Byte Bits = 9 For i = 1 To 2 ^ Bits s = Deci2Bin(i, Bits) If CountBit(s) = 5 Then Debug.Print s Next End Sub
Function Deci2Bin(ByVal i As Integer, l As Byte) As String Dim j As Byte For j = 1 To l If i Mod 2 > 0 Then s = "1" & s Else s = "0" & s End If i = Int(i / 2) Next j Deci2Bin = s End Function
Function CountBit(s As String) As Byte Dim j, c As Byte For j = 1 To Len(s) c = c + CInt(Mid(s, j, 1)) Next j CountBit = c End Function
Men på dette udtryk (100101011) kan du ikke se forskel på om det er det første ettal der står på plads nr. 1, 4, 6, 8 eller 9, hvorfor du skal dividere dit resultat med antallet af kombinations muligheder de 5 ettaller kan stå på, hvilket er 5*4*3*2*1 = 120 => 15120/120 = 126 !! QED :-D
Det kan ikke helt få til at fungere. Strengen skal altid indeholde 9 karakterer. Jeg brugte: If CountBit(s) = 5 Then Debug.Print s ActiveSheet.Cells(i, 1) = s
Sorry, vi prøver lige igen. Behold de to funktioner, og erstat Permut5Bit med denne:
Sub Permut5Bit() Dim s As String Dim i, j As Long Dim Bits As Byte Bits = 9 j = 2 For i = 1 To 2 ^ Bits s = Deci2Bin(i, Bits) If CountBit(s) = 5 Then Cells(j, 1) = s Cells(j, 1).NumberFormat = "000000000" j = j + 1 End If Next End Sub
Fandt selv ud af det, da jeg formaterede kolonnen til tekst :-)
Da jeg derefter tog tværsummen i kolonne B og lavede et filter og fik frasorteret alle dem forskellig fra 5 var der 126 tilbage.
Tak for hjælpen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.