欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

WPF产生不重复的随机数,wpf重复随机数

来源: 开发者 投稿于  被查看 4913 次 评论:105

WPF产生不重复的随机数,wpf重复随机数


WPF产生不重复的随机数

在给定的区间范围(比如[50,99]),产生给定数量的随机数(不如10个),要求产生的随机数不重复
首先给定变量
min=50;
max=99+1;//习惯与程序规定的编码不同所致
n=10;
好了,上代码
1.xaml界面格式
<Grid>
        <TextBlock x:Name="tb_Screen" HorizontalAlignment="Left" Margin="59,24,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top"/>
        <Button x:Name="tb_Create" Content="Button" HorizontalAlignment="Left" Margin="144,259,0,0" VerticalAlignment="Top" Width="75" Click="tb_Create_Click"/>
        <TextBox x:Name="txt_min" HorizontalAlignment="Left" Height="23" Margin="80,92,0,0" TextWrapping="Wrap" Text="50" VerticalAlignment="Top" Width="70" RenderTransformOrigin="0.462,2.179"/>
        <TextBox x:Name="txt_max" HorizontalAlignment="Left" Height="23" Margin="257,92,0,0" TextWrapping="Wrap" Text="99" VerticalAlignment="Top" Width="82" RenderTransformOrigin="1.018,0.43"/>
        <TextBlock HorizontalAlignment="Left" Margin="10,95,0,0" TextWrapping="Wrap" Text="min=" VerticalAlignment="Top"/>
        <TextBlock HorizontalAlignment="Left" Margin="186,95,0,0" TextWrapping="Wrap" Text="max=" VerticalAlignment="Top"/>
        <TextBox x:Name="txt_n" HorizontalAlignment="Left" Height="23" Margin="121,149,0,0" TextWrapping="Wrap" Text="10" VerticalAlignment="Top" Width="120"/>
        <TextBlock HorizontalAlignment="Left" Margin="31,152,0,0" TextWrapping="Wrap" Text="数量" VerticalAlignment="Top"/>
</Grid>

详细说明:http://wp.662p.com/thread-8107-1-1.html


c# 产生不重复随机数的问题

主要是要利用数组下标
第一次:从0至23取随机数,例如:8,把idlength[8]中的值放到result[0],然后把idlength[24]中的值放到idlength[8]。
第二次,从0至22取随机数。。。。。

int[] idlength = new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,21,22,23,24 };
int[] result=new int[10];
for (int i = 1; i <= 10; i++)
{
Random random = new Random(DateTime.Now.Millisecond);
int rang = 24 - i;//随机数下标的范围
int index= random.Next(0, rang);//随机获取一个0到rang的下标
result[i - 1] = idlength[index];//取值赋给result
idlength[index] = idlength[rang];
}
 

C#产生随机数 不重复

private const int Num = 3; //数目
private const int MaxValue = 5; //最大数
private const int MinValue = 1; //最小数

public int[] sort(int[] num)
{
int i,j ,temp;
int n = num.Length;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j < n; j++) /*注意循环的上下限*/
{
if (num[i] > num[j])
{
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
return num;
}

public int getNum(int[] arrNum, int tmp, int minValue, int maxValue, Random ra)
{
int n = 0;
while (n <= arrNum.Length - 1)
{
if (arrNum[n] == tmp) //利用循环判断是否有重复
{
tmp = ra.Next(minValue, maxValue); //重新随机获取。
getNum(arrNum, tmp, minValue, maxValue, ra);//递归:如果取出来的数字和已取得的数字有重复就重新随机获取。
}
n++;
}
return tmp;
}

public string getRandomNum(int num, int minValue, int maxValue)
{
Random ra = new Random(unchecked((int)DateTime.Now.Ticks));
string strNum = "";
int[] arrNum = new int[num];
int tmp = 0;

for (int i = 0; i &l......余下全文>>
 

相关频道:

用户评论