Vb.net 计算所有可能的组合[RGB]
我制作了一个生成随机RGB值的简单程序,但我不知道如何计算所有可能的RGB代码组合&可能尽快生成,有人能帮我吗 代码的计算部分:Vb.net 计算所有可能的组合[RGB],vb.net,math,Vb.net,Math,我制作了一个生成随机RGB值的简单程序,但我不知道如何计算所有可能的RGB代码组合&可能尽快生成,有人能帮我吗 代码的计算部分: Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick r1 = CInt(Int((255 * Rnd()) + 0)) g1 = CInt(Int((255 * Rnd()) + 0))
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
r1 = CInt(Int((255 * Rnd()) + 0))
g1 = CInt(Int((255 * Rnd()) + 0))
b1 = CInt(Int((255 * Rnd()) + 0))
If ListBox1.Items.Contains(r1 & "," & g1 & "," & b1) Then
'number is clone of any number in Listbox1.items
Label2.Text = Label2.Text + 1
Else
ListBox1.Items.Add(r1 & "," & g1 & "," & b1)
Label1.Text = ListBox1.Items.Count.ToString
End If
End Sub
工作够了;)
如果你想要所有的组合(以随机顺序?),那么你应该寻找以非随机的方式生成完整的集合,然后将它们洗牌。@Damien_不信者你这是什么意思??程序的屏幕就在这里,此时您正在随机生成RGB值,并按照生成它们的顺序将它们添加到列表框中。但你的问题也涉及到“所有值”——如果你继续随机生成它们,可能需要很长时间才能找到16777216项,而16777215项已经在列表中。最好在一个单独的列表中生成所有16777216,然后在将它们添加到列表框之前使用一些方法更改它们的顺序。可能会生成R=0-255 G=0 B=0,然后G=0-255&R&G=0,然后G=0-255的所有值,然后随时间洗牌??
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
r1 = CInt(Int((255 * Rnd()) + 0))
g1 = CInt(Int((255 * Rnd()) + 0))
b1 = CInt(Int((255 * Rnd()) + 0))
If ListBox1.Items.Contains(r1 & "," & g1 & "," & b1) Then
'number is clone of any number in Listbox1.items
Label2.Text = Label2.Text + 1
Else
ListBox1.Items.Add(r1 & "," & g1 & "," & b1)
Label1.Text = ListBox1.Items.Count.ToString
End If
End Sub