- 浏览: 1053928 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
public class Card {
2. public static final int DIAMOND = 0; // 方块(钻石)
3. public final static int CLUB = 1; // 梅花
4. public static final int HEART = 2; // 红桃(红心)
5. public static final int SPADE = 3; // 黑桃(花锄)
6. public static final int JOKER = 4; // 王
7.
8. public final static int THREE = 0;
9. public final static int FOUR = 1;
10. public final static int FIVE = 2;
11. public final static int SIX = 3;
12. public final static int SEVEN = 4;
13. public final static int EIGHT = 5;
14. public final static int NINE = 6;
15. public final static int TEN = 7;
16. public final static int JACK = 8;// J
17. public final static int QUEEN = 9;// Q
18. public final static int KING = 10;// K
19. public final static int ACE = 11;// A
20. public final static int DEUCE = 12; // 2
21. public final static int BLACK = 13; // 小王
22. public final static int COLOR = 14;// 大王
23.
24. /** 花色 0代表方块, 1代表梅花, 2代表红桃, 3代表黑桃,4:王 */
25. private int suit;
26. /** 点数 规定: 0代表3, 1代表4, 2代表5,... */
27. private int rank;
28.
29. public Card() {
30. }
31.
32. public Card(int suit, int rank) {
33. // this.rank = rank;
34. // this.suit = suit;
35. setRank(rank);
36. setSuit(suit);
37. }
38.
39. public int getSuit() {
40. return suit;
41. }
42.
43. public void setSuit(int suit) {
44. if (suit < DIAMOND || suit > JOKER)
45. throw new RuntimeException("花色超过范围!");
46. this.suit = suit;
47. }
48.
49. public int getRank() {
50. return rank;
51. }
52.
53. public void setRank(int rank) {
54. if (rank < THREE || rank > COLOR) {
55. throw new RuntimeException("点数超过范围!");
56. }
57. this.rank = rank;
58. }
59.
60. private static final String[] RANK_NAMES = { "3", "4", "5", "6", "7", "8",
61. "9", "10", "J", "Q", "K", "A", "2", "小王", "大王" };
62. private static final String[] SUIT_NAMES = { "方块", "梅花", "红桃", "黑桃", "" };
63.
64. // 覆盖Object 类的toStirng() 方法. 实现对象的文本描述
65. public String toString() {
66. return SUIT_NAMES[suit] + RANK_NAMES[rank];
67. }
68.
69. public boolean equals(Object obj) {
70. if (obj == null) {
71. return false;
72. }
73. if (this == obj) {
74. return true;
75. }
76. if (obj instanceof Card) {
77. Card other = (Card) obj;
78. return this.rank == other.rank && this.suit == other.suit;
79. }
80. return false;
81. }
82.
83. public int hashCode() {
84. // return suit*100+rank;
85. // suit=3= 00000000 00000000 00000000 00000011
86. // rank=10=00000000 00000000 00000000 00000011
87. // suit<<16=00000000 00000011 00000000 00000000
88. // 00000000 00000011 00000000 00000011
89. return (suit << 16) + rank;// (x<<16)+y
90. }
91.
92.}
Java代码 复制代码 收藏代码
1.import java.util.ArrayList;
2.import java.util.List;
3.import java.util.Random;
4.
5.import org.junit.Test;
6.
7.public class ShuffleCard {
8.
9. public static void swap(List<?> list, int i, int j) {
10. final List l = list;
11. l.set(i, l.set(j, l.get(i)));
12. }
13.
14. //随机洗牌
15. @Test
16. public void testShuffle2() {
17. List<Card> cards = new ArrayList<Card>();
18. // 生成一副牌
19. for (int rank = Card.THREE; rank <= Card.DEUCE; rank++) {
20. cards.add(new Card(Card.DIAMOND, rank));
21. cards.add(new Card(Card.CLUB, rank));
22. cards.add(new Card(Card.HEART, rank));
23. cards.add(new Card(Card.SPADE, rank));
24. }
25. cards.add(new Card(Card.JOKER, Card.BLACK));
26. cards.add(new Card(Card.JOKER, Card.COLOR));
27. System.out.println(cards.toString());
28.
29. Random random = new Random();
30. for (int i = cards.size(); i > 1; i--) {
31. int m = random.nextInt(i);
32. swap(cards, i - 1, m);
33. }
34. System.out.println(cards.toString());
35. }
36.
37.}
生成结果:
[方块3, 梅花3, 红桃3, 黑桃3, 方块4, 梅花4, 红桃4, 黑桃4, 方块5, 梅花5, 红桃5, 黑桃5, 方块6, 梅花6, 红桃6, 黑桃6, 方块7, 梅花7, 红桃7, 黑桃7, 方块8, 梅花8, 红桃8, 黑桃8, 方块9, 梅花9, 红桃9, 黑桃9, 方块10, 梅花10, 红桃10, 黑桃10, 方块J, 梅花J, 红桃J, 黑桃J, 方块Q, 梅花Q, 红桃Q, 黑桃Q, 方块K, 梅花K, 红桃K, 黑桃K, 方块A, 梅花A, 红桃A, 黑桃A, 方块2, 梅花2, 红桃2, 黑桃2, 小王, 大王]
[红桃8, 方块5, 梅花2, 方块4, 小王, 梅花5, 黑桃2, 方块Q, 黑桃A, 黑桃J, 红桃K, 梅花4, 方块J, 梅花A, 黑桃5, 方块3, 红桃9, 红桃Q, 黑桃K, 方块7, 梅花Q, 梅花6, 红桃J, 方块9, 方块6, 方块8, 黑桃Q, 梅花K, 梅花9, 方块K, 红桃5, 红桃3, 黑桃8, 方块10, 大王, 红桃2, 梅花10, 黑桃10, 黑桃3, 黑桃6, 红桃4, 黑桃9, 红桃6, 梅花8, 梅花7, 红桃10, 黑桃7, 方块A, 黑桃4, 梅花J, 红桃A, 梅花3, 方块2, 红桃7]
2. public static final int DIAMOND = 0; // 方块(钻石)
3. public final static int CLUB = 1; // 梅花
4. public static final int HEART = 2; // 红桃(红心)
5. public static final int SPADE = 3; // 黑桃(花锄)
6. public static final int JOKER = 4; // 王
7.
8. public final static int THREE = 0;
9. public final static int FOUR = 1;
10. public final static int FIVE = 2;
11. public final static int SIX = 3;
12. public final static int SEVEN = 4;
13. public final static int EIGHT = 5;
14. public final static int NINE = 6;
15. public final static int TEN = 7;
16. public final static int JACK = 8;// J
17. public final static int QUEEN = 9;// Q
18. public final static int KING = 10;// K
19. public final static int ACE = 11;// A
20. public final static int DEUCE = 12; // 2
21. public final static int BLACK = 13; // 小王
22. public final static int COLOR = 14;// 大王
23.
24. /** 花色 0代表方块, 1代表梅花, 2代表红桃, 3代表黑桃,4:王 */
25. private int suit;
26. /** 点数 规定: 0代表3, 1代表4, 2代表5,... */
27. private int rank;
28.
29. public Card() {
30. }
31.
32. public Card(int suit, int rank) {
33. // this.rank = rank;
34. // this.suit = suit;
35. setRank(rank);
36. setSuit(suit);
37. }
38.
39. public int getSuit() {
40. return suit;
41. }
42.
43. public void setSuit(int suit) {
44. if (suit < DIAMOND || suit > JOKER)
45. throw new RuntimeException("花色超过范围!");
46. this.suit = suit;
47. }
48.
49. public int getRank() {
50. return rank;
51. }
52.
53. public void setRank(int rank) {
54. if (rank < THREE || rank > COLOR) {
55. throw new RuntimeException("点数超过范围!");
56. }
57. this.rank = rank;
58. }
59.
60. private static final String[] RANK_NAMES = { "3", "4", "5", "6", "7", "8",
61. "9", "10", "J", "Q", "K", "A", "2", "小王", "大王" };
62. private static final String[] SUIT_NAMES = { "方块", "梅花", "红桃", "黑桃", "" };
63.
64. // 覆盖Object 类的toStirng() 方法. 实现对象的文本描述
65. public String toString() {
66. return SUIT_NAMES[suit] + RANK_NAMES[rank];
67. }
68.
69. public boolean equals(Object obj) {
70. if (obj == null) {
71. return false;
72. }
73. if (this == obj) {
74. return true;
75. }
76. if (obj instanceof Card) {
77. Card other = (Card) obj;
78. return this.rank == other.rank && this.suit == other.suit;
79. }
80. return false;
81. }
82.
83. public int hashCode() {
84. // return suit*100+rank;
85. // suit=3= 00000000 00000000 00000000 00000011
86. // rank=10=00000000 00000000 00000000 00000011
87. // suit<<16=00000000 00000011 00000000 00000000
88. // 00000000 00000011 00000000 00000011
89. return (suit << 16) + rank;// (x<<16)+y
90. }
91.
92.}
Java代码 复制代码 收藏代码
1.import java.util.ArrayList;
2.import java.util.List;
3.import java.util.Random;
4.
5.import org.junit.Test;
6.
7.public class ShuffleCard {
8.
9. public static void swap(List<?> list, int i, int j) {
10. final List l = list;
11. l.set(i, l.set(j, l.get(i)));
12. }
13.
14. //随机洗牌
15. @Test
16. public void testShuffle2() {
17. List<Card> cards = new ArrayList<Card>();
18. // 生成一副牌
19. for (int rank = Card.THREE; rank <= Card.DEUCE; rank++) {
20. cards.add(new Card(Card.DIAMOND, rank));
21. cards.add(new Card(Card.CLUB, rank));
22. cards.add(new Card(Card.HEART, rank));
23. cards.add(new Card(Card.SPADE, rank));
24. }
25. cards.add(new Card(Card.JOKER, Card.BLACK));
26. cards.add(new Card(Card.JOKER, Card.COLOR));
27. System.out.println(cards.toString());
28.
29. Random random = new Random();
30. for (int i = cards.size(); i > 1; i--) {
31. int m = random.nextInt(i);
32. swap(cards, i - 1, m);
33. }
34. System.out.println(cards.toString());
35. }
36.
37.}
生成结果:
[方块3, 梅花3, 红桃3, 黑桃3, 方块4, 梅花4, 红桃4, 黑桃4, 方块5, 梅花5, 红桃5, 黑桃5, 方块6, 梅花6, 红桃6, 黑桃6, 方块7, 梅花7, 红桃7, 黑桃7, 方块8, 梅花8, 红桃8, 黑桃8, 方块9, 梅花9, 红桃9, 黑桃9, 方块10, 梅花10, 红桃10, 黑桃10, 方块J, 梅花J, 红桃J, 黑桃J, 方块Q, 梅花Q, 红桃Q, 黑桃Q, 方块K, 梅花K, 红桃K, 黑桃K, 方块A, 梅花A, 红桃A, 黑桃A, 方块2, 梅花2, 红桃2, 黑桃2, 小王, 大王]
[红桃8, 方块5, 梅花2, 方块4, 小王, 梅花5, 黑桃2, 方块Q, 黑桃A, 黑桃J, 红桃K, 梅花4, 方块J, 梅花A, 黑桃5, 方块3, 红桃9, 红桃Q, 黑桃K, 方块7, 梅花Q, 梅花6, 红桃J, 方块9, 方块6, 方块8, 黑桃Q, 梅花K, 梅花9, 方块K, 红桃5, 红桃3, 黑桃8, 方块10, 大王, 红桃2, 梅花10, 黑桃10, 黑桃3, 黑桃6, 红桃4, 黑桃9, 红桃6, 梅花8, 梅花7, 红桃10, 黑桃7, 方块A, 黑桃4, 梅花J, 红桃A, 梅花3, 方块2, 红桃7]
发表评论
-
20180222积累
2018-02-22 09:34 4811. mybatis如何通过接口查找对应的mapper. ... -
20180208积累
2018-02-08 10:28 473临时表与永久表相似,但临时表存储在 tempdb 中,当不 ... -
行业应用
2018-01-30 16:30 490git clone的时候用上面那个IP地址,下面栏中的不能 ... -
SQLite 数据库
2018-01-29 22:57 756android: SQLite创建数据 ... -
java里面获取map的key和value的方法
2018-02-01 11:29 2164获取map的key和value的方法分为两种形式: ma ... -
Eclipse中Maven WEB工程tomcat项目添加调试以及项目发布细节记录
2018-02-23 21:11 732一、建立一个maven WEB项目 1、file-&g ... -
错误:HttpServlet was not found on the Java
2018-02-23 21:12 390我们在用Eclipse进行Java web ... -
使用 java8 实现List到Array的转换
2018-02-23 21:13 2993开发中需要调用第三方的库,有些 API 的入参要求是 do ... -
Java8 利用Lambda处理List集合
2018-01-11 09:58 5635Java 8新增的Lambda表达式,我们可以很方便地并行操 ... -
java中string与json互相转化
2018-01-11 09:40 1076在Java中socket传输数据时,数据类型往往比较难选择。 ... -
JSON 数据格式
2018-01-11 09:37 474JSON(JavaScript Object Notatio ... -
java怎么读取json格式的数据
2018-01-11 09:46 1060java可以使用JSONObject和JSONArray来操作 ... -
Java8-如何将List转变为逗号分隔的字符串
2018-01-10 10:13 2000Converting a List to a String ... -
eclipse maven 打war包的两种方式
2018-02-23 21:25 703第一种:利用pom.xml文件打包。 右键pom.xml ... -
Annotation(三)——Spring注解开发
2018-02-28 09:21 429Spring框架的核心功能IoC(Inversion o ... -
Spring自定义注解
2018-02-28 09:32 599java注解:附在代码中的一些元信息,用于在编译、运行时起 ... -
Java项目
2018-01-08 10:56 0这两种解决办法已经能完全解决问题,不过值得注意的一点是,我 ... -
解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
2018-03-22 10:41 1134在Eclipse中建立好一个Maven项目后,如果Java ... -
Java @override报错的解决方法
2018-01-07 12:56 0有时候Java的Eclipse工程换一台电脑后编译总是@ove ... -
Java 8 配置Maven-javadoc-plugin
2018-01-07 09:07 1046在升级JDK至1.8之后,使用Maven-javadoc- ...
相关推荐
在Java中实现随机森林算法通常需要使用机器学习库,比如Weka或者Apache Spark的MLlib。下面我将展示一个使用Weka库的简单示例,来说明如何使用随机森林算法对数据进行分类。 首先,你需要在项目中引入Weka库。如果...
5. **排课算法实现**:遗传算法的实现通常包括初始化种群(随机生成初始的课程安排)、计算适应度(根据满足约束的程度评价解的好坏)、选择操作(依据适应度保留优秀解)、交叉操作(交换两个解的部分信息生成新解...
Java 蒙特卡洛算法求圆周率近似值实例详解 蒙特卡洛算法是一种概率算法,1946 年由 John von Neumann、Stan Ulam 和 Nick Metropolis 首先提出,用于解决复杂问题的近似值计算。该算法的特点是使用随机_sampling ...
Java算法实例包含了大量的编程实践,这些实例覆盖了各种常见的数据结构和算法,是提升Java编程技能和理解算法精髓的重要资源。下面将详细讲解其中可能涉及的一些核心知识点。 1. **排序算法**:如冒泡排序、插入...
本实例中,我们将深入探讨如何用Java来实现粒子群算法并应用到函数极值求解上。首先,我们需要定义粒子类,该类包含粒子的位置(position)和速度(velocity),以及个人最好位置(personal best, pBest)和全局最好...
"java语言实现权重随机算法完整实例" 本文主要介绍了java语言实现权重随机算法的完整实例,具有一定借鉴价值,对需要的朋友可以参考。下面将详细介绍该算法的实现思路和java实现代码。 权重随机算法是指在随机生成...
5. **分类算法**:Weka包含各种经典的分类算法,如决策树(C4.5, J48)、随机森林、朴素贝叶斯、支持向量机(SVM)、神经网络等。开发者可以根据需求选择合适的算法,并使用`Classifier`接口训练模型。 6. **回归...
基于Java实现的遗传算法实例可以帮助我们更好地理解和应用这一技术。 首先,我们要理解遗传算法的基本原理。遗传算法受到生物进化理论的启发,主要包括选择、交叉(重组)和变异这三个基本操作。算法开始时,随机...
3. 遗传操作的实现:展示如何用Java代码实现选择、交叉和变异操作,包括各种策略和技巧,如轮盘赌选择、锦标赛选择、单点交叉、均匀交叉、随机变异等。 4. 迭代过程:介绍如何组织遗传算法的主要循环,包括种群初始...
10. **概率与统计**:在算法设计中,有时会用到概率模型,如随机化算法、蒙特卡洛方法等。 这份手册的每个代码实例都是精心设计的,可以直接运行,这使得学习者可以动手实践,增强理解和应用能力。通过学习和实践,...
《神经网络算法与实现——基于Java语言 代码实例》是一本深入探讨神经网络编程的书籍,专注于使用Java语言实现各种神经网络模型。本书通过实际的代码示例,为读者提供了理解神经网络工作原理以及如何在Java环境下...
Java Blowfish对称加密算法是一种在Java编程环境...总之,Java Blowfish对称加密算法实例为开发者提供了一个在Java中实现对称加密的范例,有助于理解加密的基本原理和操作步骤,从而在自己的项目中应用安全的加密技术。
退火算法(Simulated Annealing)是一种全局优化算法,用于在搜索空间中找到最优或近似最优解。它通过模拟固体退火的过程来搜索解空间,并在搜索过程中允许一定程度的不稳定性和随机性。算法原理:初始化一个初始解...
在这个Java算法实例中,"SepStack1501203023"和"LinkStack1501203023"可能代表两个类,分别实现了顺序栈和链栈的抽象数据类型(ADT)。这些类可能包含了如下功能: - `push(E element)`:向栈顶添加一个元素。 - `...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
请运行前阅读说明 这是一个银行家算法的Java小程序,从文件中读取Max、Allocation矩阵,你也可以选择读取Max矩阵,而随机生成一个Allocation矩阵,代码里面写了详细的注释,帮助阅读
本项目是使用Java编程语言实现的遗传算法实例,为开发者提供了一个学习和参考的平台。 首先,遗传算法的基本原理是基于达尔文的自然选择和遗传学理论。它通过模拟生物种群的进化过程,寻找问题的最优解。种群由一...
### Java 获取随机字符串 在Java开发中,生成随机字符串是一个非常常见的需求,尤其是在密码学、安全验证、数据加密等场景中。本文将详细介绍如何在Java中生成随机字符串,并且会结合给定的部分代码示例进行深入...
它应该涵盖了如何安装、配置、实例化算法、自定义遗传操作以及如何调试和优化算法等方面的指导。 在使用`jgap_3.4.4_full`这个压缩包时,开发者需要先解压,然后根据文档的指示引入相关的库文件到项目中,接着可以...
Java随机数生产算法实例是指通过Java语言实现的随机数生成算法,用于生成随机数或随机字符串。下面是对Java随机数生产算法实例的详细说明: 1. Java提供了Math.random()函数,返回一个double类型的随机数,也有util...