c#几种随机数组和数组乱序
相关资料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#几种随机数组和数组乱序的更多相关文章
- 网络损伤仪WANsim中的乱序功能
乱序 乱序功能需要指定每个帧 发生乱序的概率,以及新的帧的位置相较于原来位置的时间范围. 乱序的概率范围是0%~20%,颗粒度是0.001%.Delay的设置范围为 0s~10s,颗粒度为0.1 ms ...
- 使用Arraylist将数组中元素随机均等乱序分为N个子数组
使用Arraylist将数组中元素随机均等乱序分为N个子数组 觉得有用的话,欢迎一起讨论相互学习~Follow Me 为了将数组中的元素 随机地 ,均等地, 不重复地 ,划分到N个子数组中 使用Arr ...
- 由乱序播放说开了去-数组的打乱算法Fisher–Yates Shuffle
之前用HTML5的Audio API写了个音乐频谱效果,再之后又加了个播放列表就成了个简单的播放器,其中弄了个功能是'Shuffle'也就是一般播放器都有的列表打乱功能,或者理解为随机播放. 但我觉得 ...
- JavaScript中实现最高效的数组乱序方法
数组乱序的意思是,把数组内的所有元素排列顺序打乱. 常用的办法是给数组原生的sort方法传入一个函数,此函数随机返回1或-1,达到随机排列数组元素的目的. 复制代码代码如下: arr.sort(fun ...
- IOS第四天(3:数组的排序和乱序)
数组的升序和降序 - (void)sortWith:(NSArray *)array { // 排序 array = [array sortedArrayUsingComparator:^NSComp ...
- js数组乱序输出 数组乱序排列
网上看的数组乱序输出,要么不合实际,要么代码繁琐.自己试了下,希望能给大家带来帮助. 重要思想也是Math.random*arr.length随机下标,然后删除取到的元素,继续随机下标. //将数组乱 ...
- JavaScript tips —— 谈谈数组乱序
前言 先看一个段代码 function randArr (arr) { return arr.sort(() => { return (Math.random() - 0.5); }); } 目 ...
- JavaScript随机数组(数组、随机、取整、取值的过程)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...
- java将一数组乱序排列
JAVA的Collections类中shuffle方法模拟了“洗牌”动作可以对list列表进行随机排序.如果一定要自己写,算法也很简单:假设数组array长度为n.用标准随机函数rand(n)生成[0 ...
随机推荐
- .net aop 操作 切面应用 Castle.Windsor框架 spring 可根据接口 自动生成一个空的实现接口的类
通过unget 安装Castle.Windsor using Castle.DynamicProxy; using System; using System.Collections.Generic; ...
- 415 DOM 查找列表框、下拉菜单控件、对表格元素/表单控件进行增删改操作、创建元素并且复制节点与删除、 对表格操作、通用性和标准的事件监听方法(点击后弹窗效果以及去掉效果)
DOM访问列表框.下拉菜单的常用属性: form.length.options.selectedindex.type 使用options[index]返回具体选项所对应的常用属性:defa ...
- opencv基础教程 之 图像基础和绘图
1,教程:感谢小强 2,用argparse传参数来显示一张图片 #!/usr/bin/python #linux系统 #coding=utf-8 import cv2 import argparse ...
- Beans 自动装配
http://wiki.jikexueyuan.com/project/spring/beans-auto-wiring/spring-autowiring-byname.html
- python3 正则表达式学习笔记
re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. ~匹配成功re.match方法返回一个匹配的对象,否则返回No ...
- ARDUINO驱动LCD1602 (利用库函数)
LCD 1602简介 工业字符型液晶,能够同时显示16x02即32个字符.(16列2行) 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母.数字.符号等的点阵型液晶模块.它由若干个5X7或 ...
- 2018-2019-2 网络对抗技术 20165231 Exp3 免杀原理与实践
实践内容(3.5分) 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcod ...
- pwnable.tw start&orw
emm,之前一直想做tw的pwnable苦于没有小飞机(,今天做了一下发现都是比较硬核的pwn题目,对于我这种刚入门?的菜鸡来说可能难度刚好(orz 1.start 比较简单的一个栈溢出,给出一个li ...
- java--序列化和反序列化
一.序列化 java序列化的过程是把对象转换为字节序列的过程 序列化的两种用途: 1)把对象的字节序列永久保存大搜硬盘上,通常存放到一个文件中 2)在网络上传送对象的字节序列 jdk中的序列化API: ...
- 常见jquery面试题
jQuery 面试问题和答案 JavaScript 是客户端脚本的标准语言,而 jQuery 使得编写 JavaScript 更加简单.你可以只用写几行的jQuery 代码就能实现更多的东西. 它是最 ...