C#实现洗牌算法
C#洗牌算法,简单演示!
/// <summary> /// 洗牌算法 /// </summary> private void test() { int[] iCards = new int[54]; for (int i = 0; i < iCards.Length; i++) { iCards[i] = i + 1; } // Random rand = new Random(); int iTarget = 0, iCardTemp = 0; for (int i = 0; i < iCards.Length; i++) { iTarget = rand.Next(0, iCards.Length); iCardTemp = iCards[i]; iCards[i] = iCards[iTarget]; iCards[iTarget] = iCardTemp; } for (int i = 0; i < iCards.Length; i++) { Response.Write("第" + (i + 1) + "张牌是:" + iCards[i] + "<br/>"); } }
以上就是本文给大家分享的洗牌算法的全部内容了,希望大家能够喜欢。
相关推荐
-
JS随机洗牌算法之数组随机排序
推荐阅读:JavaScript学习笔记之数组的增.删.改.查 JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组随机排序 洗牌算法是一个比较形象的术语,本质上让一个数组内的元素随机排列.举例来说,我们有一个如下图所示的数组,数组长度为 9,数组内元素的值顺次分别是 1~9: 从上面这个数组入手,我们要做的就是打乱数组内元素的顺序: 代码实现 维基百科上的 Fisher–Yates shuffle 词条对洗牌算法做了详细介绍,下面演示的算法也是基于其中的理论编写的: A
-
JavaScript实现数组随机排序的方法
本文实例讲述了JavaScript实现数组随机排序的方法.分享给大家供大家参考.具体实现方法如下: function Shuffle(o) { for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); return o; }; 使用方法: var testArray = [1,2,3,4,5]; Shuffle(testArray); // jQuery
-
php数组随机排序实现方法
本文实例讲述了php数组随机排序实现方法.分享给大家供大家参考.具体实现方法如下: <?php $array = array('A','2','3','4','5','6','7','8','9','10','J','Q','K'); shuffle($array); //随机排序数组 print_r($array); //输出数组 ?> 运行结果如下: Array ( [0] => Q [1] => 3 [2] => 5 [3] => 2 [4] => 10 [
-
php实现简单洗牌算法
如下所示: 复制代码 代码如下: <?php /** * 简单洗牌算法 */ $card_num=54; //牌数 print_r(wash_card($card_num)); function wash_card($card_num) { $cards=$tmp=array(); for($i=0;$i<$card_num;$i++){ $tmp[$i]=$i; } for($i=0;$i<$card_num;$i++){
-
基于php实现随机合并数组并排序(原排序)
最近做了一个项目,其中有这样一个需求要实现,原有帖子列表A,现在需要在A中推广新业务B,那么需要在A列表中1:1混合B中的数据,随机混合,但是需要保持A和B两列原来的数据排序,具体详情请看下文. 原理 获知总共元素数量N: for循环N次,取随机数: 根据随机数依次从头获取A或B的值,推入新数组中: 代码: //随机合并两个数组元素,保持原有数据的排序不变(即各个数组的元素在合并后的数组中排序与自身原来一致) function shuffleMergeArray() { $mergeArray
-
javascript数组随机排序实例分析
本文实例讲述了javascript数组随机排序实现方法.分享给大家供大家参考.具体如下: 我们就测试0-9的随机排序,先生成数据 var arr=[9,3,1,2,5,8,4,7,6,0]; arr.sort(); document.write("正常排序后的数组元素:"+arr.join(",")+"<BR />"); 正常排序后的数组元素:0,1,2,3,4,5,6,7,8,9 定义一个随机函数,随机返回正数或者负数,sort函数
-
C#实现对数组进行随机排序类实例
本文实例讲述了C#实现对数组进行随机排序类.分享给大家供大家参考.具体如下: 这个一个扩充C#随机数发生器的类,可以随机生成指定范围的数字,可以随机对数组进行排序,非常好用 using System; namespace DotNet.Utilities { /// <summary> /// 使用Random类生成伪随机数 /// </summary> public class RandomHelper { //随机数对象 private Random _random; #reg
-
JavaScript学习笔记之数组随机排序
推荐阅读:JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组的增.删.改.查 JavaScript中提供了sort()和reverse()方法对数组项重新排序.但很多时候这两个方法无法满足我们实际业务的需求,比如说扑克牌游戏中的随机洗牌. 在这篇文章一起来学习如何完成上面这个示例的效果,以及一些有关于数组随机排序的相关知识. 在网上查了一下有关于数组随机排序的相关资料,都看到了Math.random()的身影.打开浏览器控制器,输入: Math.random() 从图
-
javascript随机之洗牌算法深入分析
洗牌算法是我们常见的随机问题,在玩游戏.随机排序时经常会碰到.它可以抽象成这样:得到一个M以内的所有自然数的随机顺序数组. 在百度搜"洗牌算法",第一个结果是<百度文库-洗牌算法>,扫了一下里面的内容,很多内容都容易误导别人走上歧途,包括最后用链表代替数组,也只是一个有限的优化(链表也引入了读取效率的损失). 该文里的第一种方法,可以简单描述成:随机抽牌,放在另一组:再次抽取,抽到空牌则重复抽."抽到空牌则重复抽"这会导致后面抽到空牌的机会越来越大,显然
-
C#实现洗牌算法
C#洗牌算法,简单演示! /// <summary> /// 洗牌算法 /// </summary> private void test() { int[] iCards = new int[54]; for (int i = 0; i < iCards.Length; i++) { iCards[i] = i + 1; } // Random rand = new Random(); int iTarget = 0, iCardTemp = 0; for (int i =
-
shell实现Fisher–Yates shuffle洗牌算法介绍
目录 Fisher-Yates shuffle 算法简介 shell实现 本文介绍使用shell语法实现Fisher–Yates shuffle 洗牌算法. Fisher-Yates shuffle 算法简介 Fisher–Yates shuffle 洗牌算法可以用于对数组进行随机排列,它的时间复杂度为O(n),伪代码如下: To shuffle an array a of n elements (indices 0..n-1): for i from n - 1 downto 1 do j =
-
JavaScript随机打乱数组顺序之随机洗牌算法
假如有一个数组是这样子: var arr1 = ["a", "b", "c", "d"]; 如何随机打乱数组顺序,也即洗牌. 有一个比较广为传播的简单随机算法: function RandomSort (a,b){ return (0.5 - Math.random()); } 实际证明上面这个并不完全随机. 随便一搜网上太多这种东西了,看一下stackoverflow上的一个高分回答,答案出自github上. knuth-s
-
C#实现洗牌游戏实例
棋牌类游戏是目前比较火的游戏之一.今天本文就以实例形式实现洗牌游戏.本文实例所采用的算法是:遍历每个位置上的牌,然后与随机位置上的牌交换. 运行结果如下图所示: 对于牌来讲,2个关键的因素是面值和类型(如红桃.梅花等). 代码如下: public class Card { private string mianzhi; private string leixin; public Card(string m, string l) { mianzhi = m; leixin = l; } publi
-
Java模拟扑克牌洗牌实现生成52张扑克的方法示例
本文实例讲述了Java模拟扑克牌洗牌实现生成52张扑克的方法.分享给大家供大家参考,具体如下: 要求: 生成52张扑克,模拟扑克牌洗牌,并输出. 实现代码: package com.NCU.ZHANGhuirong; import java.util.ArrayList; import java.util.Collections; public class Card { public String poker(int num) { String str = ""; String[] f
-
JavaScript实现shuffle数组洗牌操作示例
本文实例讲述了JavaScript实现shuffle数组洗牌操作.分享给大家供大家参考,具体如下: <!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"&g
-
C++实现洗牌发牌排序功能的示例代码
在内存中模拟出一副牌,然后模拟洗牌,发牌等动作. 流程是这样的:构建一副牌保存到一个数组中-洗牌-创建玩家-向玩家发牌–输出每个玩家的牌. #include <stdio.h> #include <stdlib.h> #include <time.h> //定义扑克的花色 enum Suit{ heart, spade, diamond, club, joker1, joker2 }; //一副牌的数量 #define CARD_COUNT 54 //定义扑克 type
随机推荐
- Sql Server下数据库链接的使用方法
- JavaScript 正则表达式使用详细参数
- win8/8.1系统安装.net framework 3.5出现0x800F0906代码错误的解决方法
- jQuery移动和复制dom节点实用DOM操作案例
- js模拟点击事件实现代码
- 浅谈Arrays.asList()方法的使用
- Python的Django框架中TEMPLATES项的设置教程
- 怎样使用Python脚本日志功能
- Android SQLite数据库中的表详解
- 可以用鼠标拖动的DIV实现思路及代码
- spring boot如何使用spring AOP实现拦截器
- 将json转换成struts参数的方法
- 梦幻式下拉菜单
- jQuery 弹出层插件(推荐)
- JavaScript中利用构造器函数模拟类的方法
- Javascript数组的排序 sort()方法和reverse()方法
- Android 吸入动画效果实现分解
- php从字符串创建函数的方法
- Vue微信项目按需授权登录策略实践思路详解
- C++实现停车场管理系统