牛客網演算法學習記錄 概率

2021-07-12 07:57:03 字數 1155 閱讀 4610

n只螞蟻從正n邊形的n個定點沿著邊移動,速度是相同的,問它們碰頭的概率是多少?

給定乙個正整數n,請返回乙個陣列,其中兩個元素分別為結果的分子和分母,請化為最簡分數。

測試樣例:

3
返回:[3,4]
因為是正n邊型,所以所有的點的路程相同。他們的速度又是相同的。

從總情況來說,乙個結點有兩種選擇,那麼n個結點就是 2^n種

沒有碰頭情況則是所有結點同時順時針,或者逆時針走。

class ants 

int m = tem  - 2;

int t = gcm (tem,m);

vectorresult;

result.push_back(m/t);

result.push_back(tem/t);

return result;

}int gcm(int n ,int m)

return m;

}};

給定乙個等概率隨機產生1~5的隨機函式,除此之外,不能使用任何額外的隨機機制,請實現等概率隨機產生1~7的隨機函式。(給定乙個可呼叫的random5::random()方法,可以等概率地隨機產生1~5的隨機函式)
class random5 ;

class random7

// 以上內容請不要修改

int randomnumber()

int result = num %7;//隨機生成0-6

return result +1;//隨機生成1-7

}};

給定乙個以p概率產生0,以1-p概率產生1的隨機函式randomp::f(),p是固定的值,但你並不知道是多少。除此之外也不能使用任何額外的隨機機制,請用randomp::f()實現等概率隨機產生0和1的隨機函式。
我是參考的答案
個人的理解是,將大概率1或者0 的情況通過 a== b 過濾掉,那麼剩餘的就是等可能概率的那部分
class randomp ;

class random01

}return 0;

}};

牛客網演算法學習記錄 排序

對於乙個int陣列,請編寫乙個氣泡排序演算法,對陣列元素排序。給定乙個int陣列a及陣列的大小n,請返回排序後的陣列。測試樣例 1,2,3,5,2,3 6 1,2,2,3,3,5 測試用例子只有正數。公升序 氣泡排序 比較簡單,主要就是注意排序時陣列的邊界。for int i 0 ia j 1 re...

牛客演算法學習2

title 牛客演算法學習2 date 2019 07 28 19 34 47 categories 在實現棧的基本功能的基礎上,再實現返 回棧中最小元素的操作。1 pop push getmin操作的時間複雜度都是o 1 2 設計的棧型別可以使用現成的棧結構 用棧實現佇列 因為棧是先進後出的,假設...

牛客網演算法學習筆記 排列組合

在xxy的方格中,以左上角格仔為起點,右下角格仔為終點,每次只能向下走或者向右走,請問一共有多少種不同的走法 給定兩個正整數int x,int y,請返回走法數目。保證x y小於等於12。測試樣例 2,2返回 2橫向要走x 1步,縱向要走y 1步,總共需要走,x y 2步,其中有x 1橫向。ccla...