导航:首页 > 源码编译 > java打乱算法

java打乱算法

发布时间:2022-04-21 10:12:35

java打乱一个键盘录入数组长度跟数据的一维数组

首先键盘录入可以用scanner类实现控制台输入,然后打乱数组可以用random类产生随机数来控制输入的数存入随机的数组位置,这个地方要注意随机数不可重复,要控制范围在定义的数组长度内,最后遍历直接一个for循环。

Ⅱ 用JAVA程序冒泡排序算法把一组打乱顺序的数字从小到大排列并打印出来

publicclassMaoPao
{
publicstaticvoidmain(Stringargs[])
{
int[]arr={2,1,3,4,6,5,7,8,9,0,10};
//N是数组的元素个数,这样无论多少个数,直接修改arr中的元素就行了,
//不需要调整循环次数
intN=arr.length;
inttemp=0;
//冒泡排序:每次把最大的放到最后,N-i是因为第i次排序之后,
//数组arr的最后i个数已经是按照大小顺序的了,所以不需要再排序了
//比如第一次排序之后,最后一个数肯定是最大的,下一次只需要排前9个就行了。
for(inti=1;i<N;++i)
{
for(intj=0;j<N-i;++j)
{
//如果前面的数比后面的大,则不是按照顺序的,因此要交换
if(arr[j]>arr[j+1])
{
temp=arr[j];//交换2个数
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}

for(inti=0;i<N;++i)//输出排序后的结果
{
System.out.print(arr[i]+"");
}

}
}


忘采纳。

Ⅲ 关于洗牌算法,请用JAVA编写,定义一个数组,储存1-52以内的数,打乱顺序输出!

import java.util.Enumeration;
import java.util.Hashtable;/**
* 7. * 乱序扑克牌 洗牌方法 8. * 9. *
*
* @author virture 10. * 11.
*/
public class Cards { Hashtable htMember = new Hashtable();// 放置扑克牌的Hash表 public Cards() { } public void put(String card) {
htMember.put(card, card);
} public void get() {
System.out.println("你拿到的牌是:");
Enumeration RLKey = htMember.keys();
while (RLKey.hasMoreElements()) {
String accKey = RLKey.nextElement().toString();// 取HashTable中的关键字词
System.out.print((String) htMember.get(accKey) + ",");
}
} public static void main(String[] args) {
String[] cards = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"J", "Q", "K" };
String[] kinds = { "黑桃", "红桃", "梅花", "方块" }; Cards cardList = new Cards(); String suit;// 当前选中牌的类型
String face;// 当前选中牌
int randomCardNum = 52;// 当前随机取牌的个数,记住不能大于全部牌52张 while (true) {
suit = kinds[Math.round((float) Math.random() * (kinds.length - 1))];
face = cards[Math.round((float) Math.random() * (cards.length - 1))]; cardList.put(suit + face);
if (cardList.htMember.size() >= randomCardNum
&& cardList.htMember.size() <= 52) {
break;
}
}
cardList.get();
}
}

Ⅳ 怎么用java代码把打乱的数字1到13按从大到小排序

有很多排序算法可以选择,譬如冒泡排序,插入排序,选择排序等等。可以在 维基网络里搜一下"排序算法",我就正在看这个。我给你贴个选择排序的例子。

选择排序算法的思路:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕

/*选择排序(降序)*/
static void selectSort(int[] arr)
{
int n = arr.length;
int max;
for (int i=0; i<n-1; i++)
{
max= i;
for (int j=i+1; j<n; j++)
{
if (arr[max]<arr[j])
{
max = j;
}
}
if (max != i)
{
swap(arr, max, i);
}
}
}

static void swap(int[] arr, int i, int j)
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}

Ⅳ 用JAVA写个代码,实现52张牌随机分给四个人

java内的Collections类自带了一个shuffle洗牌算法。

static void shuffle(List<?> list)
使用默认随机源对指定列表进行置换。
static void shuffle(List<?> list, Random rnd)
使用指定的随机源对指定列表进行置换。

现在你可以把52张牌放进一个List里,调用他的shuffle算法打乱顺序。

Ⅵ java将字符串随机打乱并且可以重新组合的方法

Scanner scanner = new Scanner(System.in);
System.out.print("输入字符串:");
String str = scanner.nextLine();
List<Map> mapList = new ArrayList<>();
int length = str.length();
for(int i = 0;i < length;i++){
int x = (int)(Math.random()*length);
Map map = new HashMap();
map.put("sort",x);
map.put("value",str.charAt(i));
mapList.add(map);
}
System.out.print("输出随机变换后的结果:");
mapList.stream()
.sorted(Comparator.comparing(o -> o.get("sort").toString()))
.forEach(x-> System.out.print(x.get("value").toString()));
System.out.println();

Ⅶ 关于java数组的随意打乱,像图中的做法不会出现重复吗比如两个math.random 都等于0.

不会,随机数都相等,自己跟自己交换又没关系。你这本书是java语言程序设计,李娜翻译的。它还有一本进阶版。随机打乱数组而已,而且还是伪随机,藏!

Ⅷ 求一个java的随机算法,高手来

好好的看一下就知道为什么list的长度与count 相同时,总是出现死循环 。
你在int[] a=new int[count]; 这一步操作时,数组a中的数据全部默认为0,而int rs=ran.nextInt(list.size()); 返回的值是0到list.size()-1的数。当list的长度与count 相同时,在产生最后一个随机数时,只能产生0,可是0在数组a中又存在了,所以就死循环了。

编程时,多注意边界问题。

Ⅸ 求实现打乱顺序的java程序

import java.util.*;

public class RandomExample {

public static void main(String[] args) {

List<String> num = Arrays.asList(
"1","2","3","4","5","6","7","8","9","0",
"a","b","c","d","e","f","j","h","i","j"
);//太多了,自己加剩余的字符

Collections.shuffle(num);//打乱的序列

//输出打乱的序列
for(String s:num){
System.out.print(s+" ");
}
}

}

Ⅹ Java打乱数组

void srand(int[] a){
int len=a.length;
//如果数组元素不足3,则没必要运算,特别是当数组只有一个元素时,会进入死循环
if(len<3){
return;
}
Random r=new Random();
for(int i=0,n=0,temp=0;i<len;i ){
//随机生成一个位置,两个位置的元素互换
do{
n=r.nextInt(len);
}while(n==i);
//交换元素
temp=a[i];
a[i]=a[n];
a[n]=temp;
}
}

阅读全文

与java打乱算法相关的资料

热点内容
python二次开发cad 浏览:302
程序员直播机器人舞团 浏览:769
devc指针编译问题 浏览:1000
支持dsd硬解压声卡 浏览:771
怎么查看u盘加密区 浏览:184
台电加密是什么格式 浏览:157
php论坛版块在哪个文件夹 浏览:442
暗黑的服务器为什么维护 浏览:624
android内存溢出的原因 浏览:18
标志307的压缩比是多少 浏览:636
服务器启动为什么叫三声 浏览:997
追风筝的人英文pdf 浏览:940
解压小熊手机壳 浏览:347
成都市区建成面积算法 浏览:662
智能家居单片机 浏览:98
买男装用什么app好 浏览:856
文件夹合并了怎么拆开 浏览:262
波段副图源码无未来函数 浏览:91
livecn服务器地址 浏览:259
程序员这个工作真的很吃香吗 浏览:848