Path.GetRandomFileName
返回一個由11個隨機字符組成的密碼強的字符串。它由8個字符+點+3個字符構成,如:「b253i5vu.psf」。 char可以是小寫字母或0到5之間的數字。所以可能的字符串數是32^11。使用Path.GetRandomFileName時發生衝突的機率
我的問題已經被問here和here,但答案都是錯誤的,因爲:
他們說,對於碰撞的機率是一些X值,而實際上這取決於如何目錄中已有許多文件。因此,例如,如果您有一個帶有Path.GetRandomFileName生成的100,000個文件的目錄,碰撞的可能性要高於對1000個文件的目錄。
他們沒有考慮到Birthday Problem。
如果可能的話,我很感激,如果你能在某種程度上這是很容易使用誰沒有大學水平的數學知識,或者你可以給如何計算它說明人們目前的公式爲特定的值(例如,如果目錄有1000個文件)。
[已有文件System.IO.Path.GetRandomFileName()的可能性重複](http://stackoverflow.com/questions/27945559/probability-of-already-existing-file-system-io-path -getrandomfilename) –
「機會」是「概率」的同義詞,「碰撞」的含義與「已存在」完全相同,所以這個問題是http://stackoverflow.com/questions/27945559的確切副本/ probability-of-already-existing-file-system-io-path-getrandomfilename –
目錄中現有文件的問題是不相關的。當您有1000個現有文件時發生衝突的概率與碰撞概率完全相同,如果您從空目錄開始並調用1000次函數來創建1000個文件。 –