天天看點

深度學習

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 1048576k,其他語言2097152k

special judge, 64bit io format: %lld

小 a 最近在研究深度學習,他自己搭建了一個很牛逼的神經網絡,現在他手頭一共有 n 組訓練資料,一開始他會給自己的神經網絡設定一個 batch size,假設為 b (1≤ b≤ n) ,每次訓練他都會從手頭的 n 組訓練資料中抽取不同的 b 組資料,然後扔到神經網絡去訓練。

然而小 a 的伺服器并不是特别支援并行,是以運作時間和 b 成正比,每一次訓練都會花費 b 秒的時間。

現在小 a 發現這樣每次随機選資料的話,從機率上講要訓練好多次才能使得每組訓練資料都被選中過。小 a 是一個煉丹的新手,他覺得隻要所有訓練資料都被選中過,那麼這個模型就會很牛逼,是以隻要某次訓練後,如果所有訓練資料都被選中過,那麼他就會停止進行訓練。

現在他想合理地設定 b ,使得訓練總時間的期望值盡可能地短,你隻需要求出這個最小的期望值。

第一行一個正整數 n

輸出一個實數,表示最小的期望值,本題有spj,隻要和标準答案的标準誤差在 10^-3 以内就算正确

1

1≤ n ≤ 40

直接把原數用浮點數輸出一遍就行了。