随机排列数组-algorithms_3th

 1 #include <iostream>
 2 #include <random>
 3 #include<iterator>
 4 using namespace std;
 5
 6 int rand_int(const int &up, const int &lo){
 7     uniform_int_distribution<> ran(up, lo);
 8     random_device rd;
 9     mt19937 gen(rd());
10     return ran(gen);
11 }
12
13 void swap(int &a, int &b){
14     int t = a;
15     a = b;
16     b = t;
17 }
18
19 int main(void)
20 {
21     int a[] = { 1,2,3,4,5,6,7,8,9 };
22     for (auto i = 0; i < end(a) - begin(a); ++i){
23         cout << a[i] << " ";
24     }
25     cout << endl;
26     for (auto i = 0; i < end(a) - begin(a); ++i){
27         swap(a[i], a[rand_int(i, end(a) - begin(a)-1)]);
28     }
29     for (auto i = 0; i < end(a) - begin(a); ++i){
30         cout << a[i] << " ";
31     }
32     cout << endl;
33     system("pause");
34     return 0;
35 }
时间: 2024-10-20 03:06:33

随机排列数组-algorithms_3th的相关文章

均匀随机排列数组

均匀随机排列数组 RandomizePlace(char * Arry,int len) { int temp; for(iny i=0;i<len;i++) { index=BlockRand(i,len); temp=Arry[i]; Arry[i]=arry[index]; Arry[index]=temp; } } int BlockRand(int a,int b) { int r; r=rand()/RAND_MAX; return a+r*(b-a); } Arry即为均匀随机排列

数组的完全随机排列

Array.prototype.sort 方法被许多 JavaScript 程序员误用来随机排列数组.最近做的前端星计划挑战项目中,一道实现 blackjack 游戏的问题,就发现很多同学使用了 Array.prototype.sort 来洗牌.就连最近一期 JavaScript Weekly上推荐的一篇文章也犯了同样的错误. 以下就是常见的完全错误的随机排列算法: function shuffle(arr){ return arr.sort(function(){ return Math.ra

java数组随机排序实现代码

例一 代码如下 复制代码 import java.lang.Math;import java.util.Scanner;class AarrayReverse{ public static void main(String args[]) { int a[]=new int[20]; for(int i=0;i<=15;i++) { Scanner sca=new Scanner(System.in); System.out.println("请输数组元素a["+"]&

【算法设计-随机算法】利用随机算法生成均匀随机排序数组

思想: 1.首先生成1到n的数组A 2.生成1到n^3的n个数的随机数组P 例如A=<1,2,3,4> P=<36,3,62,19> 3.对p数组进行从小到大的排序(利用快速排序),生成数组P1=<3,19,36,62> 4.根据3中P1的顺序,生成随机数数组A1=<2,4,1,3> 应用:腾讯面试题目 对于一个斗地主游戏,给出一个发牌的算法,让每个人的牌确保随机. 考虑假设有N张牌,要分出来M张牌,给K个人.我能想到的是,N张牌有N种排列,随机产生一种排列

php数组打乱顺序

shuffle() PHP shuffle() 函数随机排列数组单元的顺序(将数组打乱).本函数为数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序. 语法: bool shuffle ( array &array ) 例子1: <?php $arr = range(1,8); print_r($arr); echo '<br />'; shuffle($arr); print_r($arr); ?> 输出: Array ( [0] => 1 [1] =&g

由抽奖软件想到的随机算法总结

整整三年没更新博客了,今天和女友聊天,聊到了博客,就回来看看. 最近接触到抽奖软件,下载的源码是http://download.csdn.net/detail/ghz_sd/6918125,在这里为开源软件作出贡献的人致敬,这个软件的作者a米山,是个非常好的人,耐心的帮我调试,他的算法很简单,就是纯粹的random,用的rand()函数,我给他提了个需求,写一个作弊类,实现的功能是:指定人的中奖概率提高,配置文件类似于这样: <xml> <win> <name='a' pro

仿苹果电脑任务栏菜单&amp;&amp;拼图小游戏&amp;&amp;模拟表单控件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

D3js-API介绍【中】

JavaScript可视化图表库D3.js API中文參考,d3.jsapi D3 库所提供的全部 API 都在 d3 命名空间下.d3 库使用语义版本号命名法(semantic versioning). 你能够用 d3.version 查看当前的版本号信息. d3 (核心部分) 选择集 d3.select - 从当前文档中选择一系列元素. d3.selectAll - 从当前文档中选择多项元素. selection.attr - 设置或获取指定属性. selection.classed - 加

【图形学】谈谈噪声

写在前面 很早就想学习和整理下噪声,稍微接触过图形学的人大概都听到过噪声,然后就会发现有各种噪声,Perlin噪声,Worley噪声,分形(fractal)噪声等等.尤其是Perlin噪声,一搜资料发现大家说的各不相同,更加不明所以.我也总是困惑,后来发现还是要相信wiki和paper. 这篇文章在于总结上面这些常见的噪声(即图形学中常见的程序噪声),它们是什么,怎么算出来的,以及一些应用.文章里的所有代码可以在我的Shadertoy上找到: 什么是噪声 在图形学中,我们使用噪声就是为了把一些随