相关资料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. java下载远程文件到本地

    java下载远程文件到本地(转载:http://www.cnblogs.com/qqzy168/archive/2013/02/28/2936698.html)   /**       * 下载远程文 ...

  2. 一、下载安装superset

    1.环境介绍: 操作系统:Windows 10 python版本:3.73 2.创建虚拟环境: 打开命令行窗口,使用安装python自带的pip命令,下载pinenv 虚拟环境工具, pip inst ...

  3. static 关键字 静态成员变量及静态成员函数

    static类成员 类成员类似于C语言的全局变量,但是与全局变量又有所不同,例如,全局变量是可以被任何的用户代码所修改,而且全局变量破坏了对象的封装性. 使用类的 static 成员的优点 使用 st ...

  4. Resharper使用详解(转)

    万恶的360文档 解除复制的限制 Ctrl + Shift + i 打开控制台,也可以鼠标右键,选最后一个检查也可以打开控制台,输入: setInterval = null; //将内置无限循环函数设 ...

  5. XAMARIN 安卓程序闪退问题

    参考:https://forums.xamarin.com/discussion/25780/unfortunately-app-name-has-stopped 在VS 2017中使用Xamarin ...

  6. 帆软报表(finereport)决策平台笔记(持续更新)

    1,报表发布的流程制作报表>>>报表部署>>>WEB页面集成>>>权限配置 2,报表部署到Tomcat的简单介绍A,独立部署将WebReport文 ...

  7. Java中int和String类型之间转换

    int –> String int i=123; String s=""; 第一种方法:s=i+""; //会产生两个String对象 第二种方法:s=S ...

  8. Image Pipeline

    Image Pipeline Scrapy 提供了专门下载文件或者图片的Pipeline,下载图片与文件的原理同抓取网页的原理是一样的,所以他们的下载过程支持多线程与异步,十分的高效 Image Pi ...

  9. Android 插件化和热修复知识梳理

    概述 在Android开发中,插件化和热修复的话题越来越多的被大家提及,同时随着技术的迭代,各种框架的发展更新,插件化和热修复的框架似乎已经日趋成熟,许多开发者也把这两项技术运用到实际开发协作和正式的 ...

  10. neutron--ml2 plugin

    ml2 plugin 对 plugin 的功能进行抽象和封装,有 ml2 plugin ,各种 network 无需开发自己的 plugin,只需开发 ml2 plugin 相对应的 driver , ...