演算法學習筆記 2

2021-09-10 04:34:12 字數 2212 閱讀 5811

今天是學習的第二天,額,效率有點低。

題.1.1.31

自己寫的**如下:

public static void randomconnection(double x, double y, double r, int n, double p) 

//將每對點按照概率p連線起來

stddraw.setpencolor(color.gray);

stddraw.setpenradius(0.003);

for (int i = 0; i < points.length; i++)

}}

}//------------------------------------

//這裡插入一段參***

/** * 畫圓

* @param x 圓心x座標

* @param y 圓心y座標

* @param r 半徑r

*/private static void drawcircle(double x, double y, double r)

/** * 在圓上描點

* @param x0 圓心x座標

* @param y0 圓心y座標

* @param r 半徑r

* @param n n個點

*/private static double drawpoints(double x0, double y0, double r, int n)

return points;

}/**

* 以概率p隨機連線頂點集points中的點

* @param points 點集

* @param p 概率p

*/private static void randomlinkpoints(double points, double p)

/** * 在圓上畫n個點然後每兩點間以概率p連線

* @param n n個點

* @param p 概率p

*/private static void randomlink(int n, double p)

public static void main(string args)

額,大概花了一小時,寫得太低效,剛開始學嘛

題1.1.35模擬擲骰子

* 1.1.35 模擬擲骰子

*/public static void main(string args)

//骰子之和為m的理論概率

public static double accuratepro()

//計算兩個1 到 6 之間的隨機整數之和

public static int sum()

//次數為n的概率

public static double actualpro(int n)

for (int k = 2; k <= 2*sides; k++)

dist[k] /= (double)n;

return dist; }

//求n,保證經驗資料和準確資料的吻合程度達到小數點後三位

public static int judge()

if(i == arr2.length-1)

return n;

}} }

看到這個題,我算是發現了,方法還是不要太多得好,特別是對於一些方法看到方法名也不清楚幹什麼的時候,看起來比較費勁。嗯,這段感覺比參***好一點點。。(難道是因為自己寫的緣故?,hhh)

1.1.36

哇這個題,我寫得程式邏輯有點複雜,主要是題目有點拗口,列印乙個m×m 的**,對於所有的列j,行i 表示的是i 在打亂後落到j 的位置的次數。陣列中的所有元素的值都應該接近於n/m,真的是,。。好在寫出來了,哈哈,並且還比較簡單

public static void main(string args) 

//亂序檢查

public static void shuffletest(int m, int n)

} for (int i = 0; i < arr1.length ; i++)

system.out.println();

} }

對於1.1.39題,怎麼說呢,耗費時間特別長,並且感覺沒啥簡便方法(找出倆陣列中值相等的個數)。

今天學習到這。明天的話看1.2,此外的話,注意列印亂碼問題,提醒下自己。

演算法學習 2

題目要求 乙個數如果恰好等於它的因子之和 包括1,但不包括這個數本身 這個數就稱為 完數 例如28的因子為1,2,4,7,14,而28 1 2 4 7 14.因此28是 wan shu 完數.編寫演算法找出1000之內的所有完數,並按下面格式輸出其因子 28 it s factors are 1,2...

演算法學習 2

當我們在沒有學習演算法之前,在做排序問題的時候,首先想到的應該是選擇排序或者是氣泡排序。其中選擇排序可能是大腦最自然的思考方式。很小的時候上體育課,在操場上,同學們零零散散站著,老師掃了一眼,叫了最高個同學站在到前面,然後再在剩餘同學中選擇最高的依次站成一排,重複此過程直到最後乙個同學也站入隊伍了後...

2 SAT演算法學習筆記

好像大概是這麼乙個東西,有一些集合,每個集合中有兩個元素 a i,bi ai bi 然後要求你從每乙個集合中選出乙個元素,但是同時對於集合元素的選取是有一些限制的,比如說什麼選了ai a i和aj a j必須選乙個,或者選了ai a i就必須選bj b j之類的。然後我們發現上面所有的限制條件都可以...