Resumo Números pseudoaleatórios são amplamente utilizados no projeto de software de computador. Este artigo apresenta os princípios gerais da geração de números pseudoaleatórios e o uso da classe Random e seus métodos fornecidos no ASP.NET Framework para gerar números aleatórios em vários intervalos que atendem a vários requisitos. Finalmente, combinado com o formulário de controle da Web, é explicada a aplicação de números aleatórios em ASP.NET no design de software.
Palavras-chave ASP.NET; geração de números pseudo-aleatórios; Web;
números aleatórios semelhantes a aleatórios são amplamente utilizados em design de software, especialmente nas áreas de simulação e teste de ambientes práticos. Para buscar sequências verdadeiramente aleatórias, as pessoas usaram muitos métodos físicos primitivos para gerar sequências distribuídas uniformemente que atendam à precisão (número de bits) dentro de um determinado intervalo. Suas deficiências são: velocidade lenta, baixa eficiência, exigindo uma grande quantidade de armazenamento. espaço e estar indisponível, etc. Para atender às necessidades da pesquisa em simulação computacional, as pessoas recorrem à pesquisa sobre o uso de algoritmos para gerar sequências pseudo-aleatórias que simulam várias distribuições de probabilidade. Números pseudoaleatórios referem-se a números aleatórios gerados por fórmulas matemáticas de recursão. Do ponto de vista prático, a maneira mais simples e natural de obter tais números é utilizar um gerador de números aleatórios fornecido por uma biblioteca de linguagem de computador. Diferentes ambientes de desenvolvimento fornecem diferentes funções e métodos para gerar números aleatórios. Normalmente, ele gera uma variável pseudoaleatória cujos valores são distribuídos uniformemente entre 0 e 1.
Um gerador de números aleatórios é
um método de geração de números aleatórios em um computador, geralmente usando a seguinte fórmula:
O programa que usa esta fórmula para gerar uma sequência de números aleatórios a1, a2,... de 0 a 65536 é chamado de gerador de números aleatórios harmônicos multiplicativos de 232 etapas. Entre eles, b, c e d são inteiros positivos e d é chamado de semente da sequência aleatória gerada pela fórmula.
Pode-se observar nesta fórmula que uma vez determinados os parâmetros b, c e d, a sequência aleatória gerada também é determinada. Essa sequência que satisfaz a aleatoriedade apenas até certo ponto é chamada de número pseudo-aleatório.
Abaixo está um exemplo de gerador de números aleatórios. Dentre elas, a função random_seed permite ao usuário selecionar a semente de um número aleatório. Quando o parâmetro formal d=0, a hora atual do sistema é utilizada como semente do número aleatório quando d≠0, d é selecionado como a semente. seed; a função random é baseada no seed fornecido, calcula uma nova semente e gera um novo número aleatório no intervalo de baixo a alto.
#define MULTIPLICADOR 0x015A4E35L
#define INCREMENT 1
void random_seed(unsigned long d){
if (d==0)semente = tempo(0);
senão semente = d;}
não assinado int aleatório (não assinado longo baixo, não assinado longo alto)
{
semente = MULTIPLICADOR * semente + INCREMENTO;
retorno ((semente>>16)% (alto-baixo) + baixo);
}
}
O mecanismo de geração de números pseudoaleatórios no ASP.NET
torna impossível para o computador gerar números completamente aleatórios. O chamado gerador de números aleatórios usa um determinado algoritmo para realizar operações complexas em sementes aleatórias pré-selecionadas e usa os resultados gerados para simular aproximadamente números completamente aleatórios. Números pseudoaleatórios são escolhidos de um conjunto finito de números com igual probabilidade. Os números escolhidos não são completamente aleatórios, mas são aleatórios o suficiente para fins práticos.
1. Funções integradas do VB.NET
Os programas ASP.NET podem usar uma variedade de linguagens de programação. A linguagem de programação padrão é VB.NET. Embora VB.NET e VB sejam um tanto semelhantes, seus ambientes de aplicação e os métodos de escrita são diferentes. código são diferentes. No VB.NET, se você quiser usar funções matemáticas, você deve passar a classe Math fornecida pelo .NET Framework, que está localizada no namespace System. Os usuários podem adicionar Imports System na parte superior do código para usá-las. funções matemáticas.
O protótipo da função usada para gerar números aleatórios é: Rnd(x). Esta função é usada para gerar um número aleatório de precisão simples entre 0 e 1. x é a semente para gerar números aleatórios. Se você deseja selecionar aleatoriamente um número no intervalo de (min, max), você precisa usar a fórmula: número aleatório = (max - min) * Rnd(x) + min.
A seleção de números pseudoaleatórios começa a partir de sementes aleatórias. Para garantir que os números pseudoaleatórios obtidos sempre sejam suficientemente “aleatórios”, a seleção de sementes aleatórias é muito importante. Se as sementes aleatórias selecionadas forem iguais, as sequências aleatórias geradas também serão as mesmas. Geralmente, os parâmetros relacionados à hora do sistema são usados como sementes aleatórias, que também é o método padrão usado pelo gerador de números aleatórios no .net Framework.
2. Classe de números aleatórios System.Random
Classe de números aleatórios A classe System.Random fornece os seguintes métodos para gerar vários números aleatórios que atendem a diferentes requisitos, conforme mostrado na Tabela 1:
Tabela 1 Vários métodos fornecidos pela classe System.Random
número de série | nome do método | Descrição da função |
1 | Próximo() | Retorna um número inteiro entre 0 e 2147483647 |
2 | Próximo(eu) | Retorna um número inteiro entre 0 e i |
3 | Próximo(eu,j) | Retorna um número inteiro entre i~j |
4 | Próximoduplo() | Retorna um número decimal aleatório entre 0 e 1 |
5 | Próximoduplo(byte()) | Use um número inteiro aleatório entre 0 e 255 como valor de cada elemento da matriz de bytes. |
Usando a classe de números aleatórios System.Random deve ser declarada primeiro. Se quiser usar o método Nextbytes(byte()), você também deve declarar a matriz de bytes antes de usá-la.
3. A escrita do programa de teste
deve estabelecer seu ambiente de desenvolvimento e execução antes de executar o programa ASP.NET, incluindo a configuração do Microsoft IIS e a instalação do SDK do .NET Framework e do editor MSE da máquina. O editor MSE é um software complementar para o Microsoft Office e é muito conveniente como ferramenta de edição para ASP.NET. O código do programa de teste é o seguinte:
<script language="vb" runat="server">
sub page_load(send as object,e as eventargs)
dim r1 como aleatório = novo aleatório ()
response.write("O resultado de r1.next() é:"+r1.next().tostring())
response.write("O resultadofr1.next(100)é:" +r1.next(100).tostring())
response.write("O resultado de r1.next(100.150) é:"+r1.next(100.150).tostring())
response.write("O resultado de r1.nextdouble() é:"+r1.nextdouble().tostring())
r1.nextbytes(r) // escurecer r(300) como byte
resposta.write("o r(100) é:")
resposta.write(r(199))
end sub </script>
Os resultados do teste são mostrados na Figura 1:
Figura 1 Resultados da execução do teste de números pseudoaleatórios
Exemplo
de análise de requisitos de aplicativo de desenvolvimento: Crie um aplicativo para simular um jogo de dados. Neste jogo, os jogadores lançam um dado aleatoriamente. Cada dado tem seis lados, representando os seis pontos 1, 2, 3, 4, 5 e 6 respectivamente. Quando o dado parar, observe o número na superfície superior do dado. Se o número de lançamentos for 6, a mensagem vencedora será exibida, caso contrário o lançamento continuará.
1. Principais tecnologias
1.1 Formulário de controle da Web
O formulário de controle da Web possui as características orientadas a objetos da linguagem de alto nível. É um objeto do namespace System.Web.UI.WebControls no ASP.NET. O processo de processamento é semelhante ao formulário de controle HTML, com as seguintes características: o formulário é executado no lado do servidor; os campos de entrada são todos controles, com propriedades e métodos poderosos e ricos, e as informações dos campos de entrada podem ser retidas; tem a capacidade de verificar os campos de entrada. Contém controles de exibição de dados, etc.
Um código típico de formulário de controle da Web é o seguinte:
<asp: button id="sub3" text="confirm" runat="server"/>
Entre eles, ASP: XXX indica qual tipo de controle da Web é; o nome de identificação do controle; O valor do atributo Runat é server, indicando que este é um controle rodando no lado do servidor.
Os controles da Web que serão usados neste exemplo são principalmente controles de botão. O controle Imagem é utilizado para exibir arquivos de imagem e possui os seguintes atributos: Imageurl, indicando a URL do arquivo de imagem, a largura de exibição do arquivo de imagem, a altura de exibição do arquivo de imagem, etc.
1.2 Geração de números pseudoaleatórios
De acordo com a descrição da análise de requisitos, para simular os pontos obtidos no lançamento aleatório de dados, é necessário gerar aleatoriamente números inteiros variando de 1 a 6. Neste caso, o método Next (i, j) da classe System.Random pode ser usado, onde i=1, j=7. (O autor escreveu um programa de teste e descobriu que se j=6, o número aleatório gerado está entre 1 e 5)
2. Implementação do programa
O código principal do programa é o seguinte:
<script language="vb" runat="server ">
sub disp(obj as object,e as eventargs)
dim r1 as random =new random() //Defina uma classe de número aleatório
dim file_prefix as string = "Imagesdie"
dim file_suffix as string = ".png"
value = r1. next(1,7) //dim valor como inteiro
s1 = file_prefix + value.tostring() + file_suffix
pic1.imageurl = s1 //Atualiza o atributo imageurl do controle Image
se valor = 6 então
disp.text = " Você ganhou" // Exibir informações do prompt
else
disp.text = "Tente novamente"
end if
end sub
</script>
<form id="form1" runat="server"><br>
<asp:button id="disp" runat="server " onclick="disp" text="start"/>
<asp:image id="pic1" runat="server" width="50" height="50"/></form>
O resultado da execução do programa é mostrado na Figura 2. Mostrado:
Figura 2 Resultados da execução do programa
Conclusão
Números pseudoaleatórios são usados em muitos lugares em aplicações web Como escolher os parâmetros iniciais para gerar sequências aleatórias e qual algoritmo aleatório usar para gerar sequências pseudoaleatórias com melhor desempenho são softwares de computador. desenvolvedores. Um dos objetivos perseguidos. Usando a classe de geração de números pseudo-aleatórios fornecida pela estrutura ASP.NET e os métodos de função fornecidos pela linguagem de script VB.NET, várias sequências aleatórias que atendem a diferentes requisitos podem ser geradas. Por exemplo, o código de verificação aleatório usado para autenticação de identidade no sistema Web usa tecnologia de geração de números aleatórios. Existem muitos artigos neste site, então não entrarei em detalhes aqui.