COMO PÔR POR ORDEM OS NUMEROS

 Tópico anterior Próximo tópico Novo tópico

COMO PÔR POR ORDEM OS NUMEROS

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#491935 - 19/12/2019 12:47:29

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


Olá KERPLUNK deu certo , veja se pode ficar assim ou é preciso aperfeiçoar mais alguma coisa :



  Imports System.Collections.Generic
Imports System.Linq
Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim quantosNumerosNalista As Integer = 5
        Dim de As Integer = 1
        Dim ate As Integer = 100
        Dim result = Enumerable.Range(de, ate).OrderBy(Function(g) Guid.NewGuid()).Take(quantosNumerosNalista).OrderBy(Function(o) o).ToList()

        For Each num As Integer In result
            Listagem.Items.Add(String.Join(" - ", Enumerable.Range(de, ate).OrderBy(Function(g) Guid.NewGuid()).Take(quantosNumerosNalista).OrderBy(Function(o) o).ToList()))

        Next
    End Sub
End Class


______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.


#491936 - 19/12/2019 13:16:48

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


Olha amigo já deu certo para o queria obrigado , fica assim ( é só depois para quem quiser mudar os valores) , não sei se é assim que se faz mas funciona , se quiseres alterar alguma coisa diz.
  Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim QuantosNumerosNalista As Integer = 5
        Dim QuantasLinhas As Integer = 2
        Dim de As Integer = 1
        Dim ate As Integer = 1000
        Dim result = Enumerable.Range(de, ate).OrderBy(Function(g) Guid.NewGuid()).Take(QuantasLinhas).OrderBy(Function(o) o).ToList() ' Uma linha

        For Each num As Integer In result
            Listagem.Items.Add(String.Join(" - ", Enumerable.Range(de, ate).OrderBy(Function(g) Guid.NewGuid()).Take(QuantosNumerosNalista).OrderBy(Function(o) o).ToList())) ' Quanto numeros

        Next
    End Sub
End Class


______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.


#491937 - 19/12/2019 14:50:03

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
No seu lugar, tornaria isso em um método numa classe. Veja o exemplo


_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#491939 - 19/12/2019 15:58:49

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


 Anexos estao visíveis somente para usuários registrados

Olá KERPLUNK fiz assim porém só dá para sortear uma só linha de cada vez e eu queria que tivesse a opção que escolhesse-mos o nº de linhas a sortear, fiz assim a conversão.:

  Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim rnd As RandomGenerator = New RandomGenerator()
        Listagem.Items.Add(String.Join(" - ", rnd.GetUniqueRandomList(5, 1, 1000)))
    End Sub
End Class


  Public Class RandomGenerator
    Public Function GetUniqueRandomList(ByVal howMany As Integer, ByVal minimum As Integer, ByVal maximum As Integer) As List(Of Integer)
        Return Enumerable.Range(minimum, maximum).OrderBy(Function(g) Guid.NewGuid()).Take(howMany).OrderBy(Function(o) o).ToList()
    End Function
End Class


Segue o anexo.

______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.


#491940 - 19/12/2019 16:34:39

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Sim a ideia é exatamente essa, fazer um comando, separado. Se quer muitas linhas num list, aí sim faça um for e coloque a chamada do comando dentro dele, já tínhamos feito isso antes lá em cima.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#491941 - 19/12/2019 16:47:06

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


Olá KERPLUNK fiz assim, não se era isto mas deu certo.

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim rnd As RandomGenerator = New RandomGenerator()
        For value As Integer = 1 To 5
            Listagem.Items.Add(String.Join(" - ", rnd.GetUniqueRandomList(10, 1, 1000)))
        Next
    End Sub


______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.


#491942 - 19/12/2019 16:56:01

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Com isso, você deve ter 5 itens na listagem, todos com unidades de números randômicos, únicos e em ordem crescente

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#491958 - 20/12/2019 15:35:45

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


Última edição em 20/12/2019 15:39:48 por PROGRAMADORVB6

 Anexos estao visíveis somente para usuários registrados

Olá KERPLUNK , mais uma vez, tentei por um ciclo para 1000 números e saiu assim, estranho. Pode me ajudar?
  Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim rnd As RandomGenerator = New RandomGenerator()
        For value As Integer = 1 To 1000
            Listagem.Items.Add(String.Join(" - ", rnd.GetUniqueRandomList(1000, 1, 1000))) ' se for 1000 nºs fica meio baralhado
        Next
    End Sub
End Class


  Public Class RandomGenerator
    Public Function GetUniqueRandomList(ByVal howMany As Integer, ByVal minimum As Integer, ByVal maximum As Integer) As List(Of Integer)
        Return Enumerable.Range(minimum, maximum).OrderBy(Function(g) Guid.NewGuid()).Take(howMany).OrderBy(Function(o) o).ToList()
    End Function
End Class



______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.


#491961 - 20/12/2019 16:34:35

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Mas é lógico isso. Você quer 1000 números randômicos de 1 até 1000 e quer isso 1000 vezes. Isso vai deixar você com 1000 listas de 1000 números entre 1 e 1000 e em ordem.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#491962 - 20/12/2019 16:47:39

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Você poderia perfeitamente usar isso para um "gerador de números de loteria". Por exemplo, a Mega Sena, uma loteria aqui no Brasil. São 6 números de 60. Vamos gerar 100 cartelas para essa loteria com o que você já tem:

        Dim rnd As RandomGenerator = New RandomGenerator()
        For value As Integer = 1 To 100
            Listagem.Items.Add(String.Join(" - ", rnd.GetUniqueRandomList(6, 1, 60)))
        Next


Essas 100 cartelas NÃO tem validação entre elas, ou seja, pode acontecer de ter 2 sequencias iguais, mas é possível fazer um outro método na classe para isso contemplando essa verificação.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por PROGRAMADORVB6 em 20/12/2019 18:48:53