-
想法:使用 2 個陣列,乙個是請求的最後乙個答案,即乙個陣列,另乙個是陣列 b,其中值為 1 9。 使用隨機函式生成乙個介於 1 和 9 之間的隨機數,然後將該隨機數下標為 b 陣列,將該元素的值分配給 a 陣列的第 i 個位置。
然後使用 b 陣列中的第乙個和最後乙個元素來覆蓋隨機選擇的元素。 同時,需要下一代隨機數的條件是隨機數“i”。
public class demo {
int a;
int b;
public demo() 建構函式。
a = new int[9];
b = new int[9];
for (int i = 0; i < 9; i++)a[0] = 0;
b[i] = i + 1;
public void test()
int index = 0;
for (int i = 0; i < 9; i++)do {index = (int) (9 - 1) +1);
while (index < i);
a[i] = b[index];
a=" + a[i]);
b[index] = b[i];
public static void main(string args) {
demo d = new demo();
-
for (i=0;i<9;i++)
生成隨機數習
xi=xi*10+i
排序習。
for (i=0;i<9;i++)
xi=xi%10+1;
ai=xi
-
可以把它想象成按順序洗牌 1-9,導致數字 n 介於 1-8 之間
我在 [1-n-1] 和 (n-1,9) 之間交換座位並重複幾次。
-
排列和組合以節省座位。
-
問題不在於很難實現。
我猜你想要最優化的演算法。
-
從數學上講,n!就是這樣:n*(n-1)*....3*2*1 這是排列的數量,拿走其中乙個的概率是 1 n!
-
在我看來,這是最簡單的方法。 首先,將 5 改為 20 4,使分母與 3 4 相同,並減去分子,然後可以直接計算括號中的數字,最後可以計算答案。
-
沿當前方向前進 xcm,旋轉 360 n°,旋轉 n-1 次,獲得規則的 n 邊形狀。