C++ standart kitaplıklarında herhangi bir gauss dağıtımının sayı üretecinin olup olmadığını veya geçecek kod snippet'iniz olup olmadığını bilmek istiyorum.C++: gauss dağılımını oluştur
Şimdiden teşekkürler.
C++ standart kitaplıklarında herhangi bir gauss dağıtımının sayı üretecinin olup olmadığını veya geçecek kod snippet'iniz olup olmadığını bilmek istiyorum.C++: gauss dağılımını oluştur
Şimdiden teşekkürler.
Standart kitaplık yok. Ancak Boost.Random yapar. Ben senin yerinde olsaydım kullanırdım.
GNU Bilim Kitaplıkları bu özelliğe sahiptir. GSL - Gaussian Distribution
"will var" ? – jalf
Lol, Ben cevabı görmeden önce yazdım ... Sanırım değiştirmeliyim :) –
C++ Teknik Rapor 1 rasgele sayı üretimi için destek ekler. Dolayısıyla, nispeten yeni bir derleyici kullanıyorsanız (visual C++ 2008 GCC 4.3), kutudan çıkma ihtimali vardır.
std::tr1::normal_distribution
(ve daha pek çoğu) örnek kullanımı için bkz. here.
Henüz orada değilse, Boost'un bir parçası olarak da bulabilirsiniz: http: //www.boost. org/doc/libs/1_39_0/doc/html/boost_tr1/subject_list.html # boost_tr1.subject_list.random – stephan
Bu sorunun yanıtı, random header numaralı std::normal_distribution numaralı C++ 11 ile değişir. Walter Brown'un N3551, Random Number Generation in C++11 numaralı kağıdı muhtemelen bu kütüphaneye daha iyi tanıtımlardan biridir. Bir ile C++ random float number generation C++ 11 cevabım rasgele sayı nesle örnek daha genel bir set sağlamak
#include <iostream>
#include <iomanip>
#include <map>
#include <random>
int main()
{
std::random_device rd;
std::mt19937 e2(rd());
std::normal_distribution<> dist(2, 2);
std::map<int, int> hist;
for (int n = 0; n < 10000; ++n) {
++hist[std::floor(dist(e2))];
}
for (auto p : hist) {
std::cout << std::fixed << std::setprecision(1) << std::setw(2)
<< p.first << ' ' << std::string(p.second/200, '*') << '\n';
}
}
:
Aşağıdaki kod, bu başlık (see it live) nasıl kullanılacağını göstermektedir Boost örneğinde ve rand()
kullanarak.
AC kod snippet'i benzer bir şekilde kullanılabilir, [daha sonra soru (burayı tıklatın)] (http://stackoverflow.com/questions/17995894/normalgaussian-distribution-function-in-c/23609868#23609868) – jcollomosse