相关资料MSDN:RNGCryptoServiceProvider   Random   Guid

private static RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
static void Main(string[] args)
{
byte[] byt1 = new byte[];
byte[] byt2 = new byte[];
byte[] byt3 = new byte[];
//加密型强随机值序列填充字节数组(非零值)
rngCsp.GetNonZeroBytes(byt1);
Console.WriteLine("rngCsp.GetNonZeroBytes:");
Console.WriteLine(ShowBytes(byt1));
//加密型强随机值序列填充字节数组
rngCsp.GetBytes(byt2);
Console.WriteLine("rngCsp.GetBytes:");
Console.WriteLine(ShowBytes(byt2));
//对数组进行随机填充
new Random().NextBytes(byt3);
Console.WriteLine("Random().NextBytes:");
Console.WriteLine(ShowBytes(byt3));
//用GUID(UUID)(固定16字节)
byte[] byt4 = System.Guid.NewGuid().ToByteArray();
Console.WriteLine("System.Guid:");
Console.WriteLine(ShowBytes(byt4));
//乱序
GetDisorderBytes(byt4);
Console.WriteLine("GetDisorderBytes:");
Console.WriteLine(ShowBytes(byt4));
Console.ReadLine();
}
/// <summary>
/// 乱序排列一个数组
/// </summary>
public static void GetDisorderBytes(byte[] byt)
{
int min = ;
int max = byt.Length;
int inx = ;
byte b = ;
Random rnd=new Random ();
while (min != max)
{
int r = rnd.Next(min++, max);
b = byt[inx];
byt[inx] = byt[r];
byt[r] = b;
inx++;
}
}
/// <summary>
/// 方便输出查看
/// </summary>
public static string ShowBytes(byte[] byt)
{
string s = string.Empty;
for (int i = ; i < byt.Length; i++)
s += string.Format("{0:000}", byt[i]) + " ";
return s;
}
//输出
//104 017 080 138 083 174 009 072 048 125 076 075 100 081 155 097
//rngCsp.GetBytes:
//101 077 221 174 243 202 019 218 110 247 086 020 049 191 060 021
//Random().NextBytes:
//008 060 247 003 064 156 157 221 207 132 050 216 133 248 172 154
//System.Guid:
//114 137 072 093 005 222 148 076 155 023 032 029 039 116 099 014
//GetDisorderBytes:
//148 093 137 222 032 155 116 114 023 076 099 014 072 005 029 039

c#几种随机数组和数组乱序的更多相关文章

  1. 网络损伤仪WANsim中的乱序功能

    乱序 乱序功能需要指定每个帧 发生乱序的概率,以及新的帧的位置相较于原来位置的时间范围. 乱序的概率范围是0%~20%,颗粒度是0.001%.Delay的设置范围为 0s~10s,颗粒度为0.1 ms ...

  2. 使用Arraylist将数组中元素随机均等乱序分为N个子数组

    使用Arraylist将数组中元素随机均等乱序分为N个子数组 觉得有用的话,欢迎一起讨论相互学习~Follow Me 为了将数组中的元素 随机地 ,均等地, 不重复地 ,划分到N个子数组中 使用Arr ...

  3. 由乱序播放说开了去-数组的打乱算法Fisher–Yates Shuffle

    之前用HTML5的Audio API写了个音乐频谱效果,再之后又加了个播放列表就成了个简单的播放器,其中弄了个功能是'Shuffle'也就是一般播放器都有的列表打乱功能,或者理解为随机播放. 但我觉得 ...

  4. JavaScript中实现最高效的数组乱序方法

    数组乱序的意思是,把数组内的所有元素排列顺序打乱. 常用的办法是给数组原生的sort方法传入一个函数,此函数随机返回1或-1,达到随机排列数组元素的目的. 复制代码代码如下: arr.sort(fun ...

  5. IOS第四天(3:数组的排序和乱序)

    数组的升序和降序 - (void)sortWith:(NSArray *)array { // 排序 array = [array sortedArrayUsingComparator:^NSComp ...

  6. js数组乱序输出 数组乱序排列

    网上看的数组乱序输出,要么不合实际,要么代码繁琐.自己试了下,希望能给大家带来帮助. 重要思想也是Math.random*arr.length随机下标,然后删除取到的元素,继续随机下标. //将数组乱 ...

  7. JavaScript tips —— 谈谈数组乱序

    前言 先看一个段代码 function randArr (arr) { return arr.sort(() => { return (Math.random() - 0.5); }); } 目 ...

  8. JavaScript随机数组(数组、随机、取整、取值的过程)

      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...

  9. java将一数组乱序排列

    JAVA的Collections类中shuffle方法模拟了“洗牌”动作可以对list列表进行随机排序.如果一定要自己写,算法也很简单:假设数组array长度为n.用标准随机函数rand(n)生成[0 ...

随机推荐

  1. Collections -- OrderedDict类

    普通dict(字典)在插入的时候并不记住元素的顺序,迭代器会根据散列表(哈希表)中存储的顺序来生成的.而OrderedDict则会记录元素的顺序,并且在迭代器输出时,会按现在记录的顺序进行遍历. 例: ...

  2. 第31月第19天 NV12

    1. //设置CIContext,并从CIImage -> CGImage -> UIImage CIContext *context = [CIContext contextWithOp ...

  3. request.getParameterValues 出现 [Ljava.lang.String;@ 错误

    在实现简单的本地登录系统时,需要把page1.jsp的表单显示在page2.jsp中. 其中获取page1.jsp表单的办法就是在页面1的<form>中加入action="pag ...

  4. vue-router.esm.js:1905 TypeError: Cannot convert undefined or null to object

    环境:vue+vuex+element 报错原因 ...mapState('isDialNumber') mapState如果传递一个参数,参数必须是数组 ...mapState(['isDialNu ...

  5. IO流的操作规律。

    1.  明确源和目的 源代表输入流: InputStream, Reader 目的代表输出流: OutputStream, Writer 2. 操作数据是否纯文本 纯文本:字符流 非纯文本: 字节流 ...

  6. Python:python抓取豆瓣电影top250

    一直对爬虫感兴趣,学了python后正好看到某篇关于爬取的文章,就心血来潮实战一把吧. 实现目标:抓取豆瓣电影top250,并输出到文件中 1.找到对应的url:https://movie.douba ...

  7. VS 测试printf 多参数 输出 i++ 和++i 结果

    代码如截图: 总结: printf 多参数中有运算时 是从右到左执行的: i++ 和 ++i 优先级是大于 赋值 =运算的: i++ 和++i 是平级的: i++ 先用在算,++i 先算在用: 从右往 ...

  8. Java 多线程 - 锁优化

    http://www.cnblogs.com/pureEve/p/6421273.html https://www.cnblogs.com/mingyao123/p/7424911.html

  9. 【easy】746. Min Cost Climbing Stairs 动态规划

    On a staircase, the i-th step has some non-negative cost cost[i]assigned (0 indexed). Once you pay t ...

  10. @RunWith注解作用

    @RunWith就是一个运行器 @RunWith(JUnit4.class)就是指用JUnit4来运行 @RunWith(SpringJUnit4ClassRunner.class),让测试运行于Sp ...