導航:首頁 > 源碼編譯 > 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打亂演算法相關的資料

熱點內容
成都市區建成面積演算法 瀏覽:658
智能家居單片機 瀏覽:95
買男裝用什麼app好 瀏覽:853
文件夾合並了怎麼拆開 瀏覽:256
波段副圖源碼無未來函數 瀏覽:86
livecn伺服器地址 瀏覽:257
程序員這個工作真的很吃香嗎 瀏覽:844
程序員和數學分析師待遇 瀏覽:678
壓縮氣彈簧怎麼拆 瀏覽:321
華為公有雲伺服器添加虛擬ip 瀏覽:209
程序員和運營哪個累 瀏覽:24
抖音安卓信息提示音怎麼設置 瀏覽:454
光速虛擬機的共享文件夾 瀏覽:248
程序員培訓機構發的朋友圈真實性 瀏覽:742
天乾地支簡單演算法 瀏覽:299
下載個壓縮文件 瀏覽:300
普通人電腦關機vs程序員關機 瀏覽:628
米酷建站源碼 瀏覽:115
氫氣app怎麼搜搭配 瀏覽:619
pdf綠盟 瀏覽:506