java生成正態分佈方法
double f = 0;
double c0 = 2.515517, c1 = 0.802853, c2 = 0.010328;
double d1 = 1.432788, d2 = 0.189269, d3 = 0.001308; double w;
double r = Math.random();
if (r <= 0.5) w = r;
else w = 1 - r;
if ((r - 0.5) > 0) f = 1;
else if ((r - 0.5) < 0) f = -1;
double y = Math.sqrt((-2) * Math.log(w));
double x = f * (y - (c0 + c1 * y + c2 * y * y) / (1 + d1 * y + d2 * y * y + d3 * y * y * y));
double z = a + x * Math.sqrt(b); return (z);
}
相關推薦
java生成正態分佈方法
public double normalRandom3(double a, double b) {double f = 0;double c0 = 2.515517, c1 = 0.802853, c2 = 0.010328;double d1 = 1.432788, d2 = 0.189269, d3 =
R語言:生成正態分佈資料生成--rnorm,dnorm,pnorm,qnorm
norm是正態分佈,前面加r表示生成隨機正態分佈的序列,其中rnorm(10)表示產生10個數;給定正太分佈的均值和方差, Density(d), distribution function§, quantile function(q) and random® generation
用各種GAN生成正態分佈
用GAN生成正態分佈 畢設中有一部分與GAN(Generative Adversarial Networks)相關,但是一直不work,因此準備重新從最簡單的GAN入手,實現一下試試看能不能發現什麼問題。 本文會用GAN從標準正態噪聲生成均值為3.5,標準差為0.7的正態
如何用均勻分佈隨機數生成正態分佈隨機數
前言 在Monte Carlo模擬技術中,許多地方都需要用到符合標準正態分佈(高斯)的隨機數來設計取樣方案,因此瞭解如何用均勻分佈隨機數(實際上是均勻分佈的偽隨機數)來生成標準正態分佈的隨機數十分重要。本文將對這個最基本的問題做討論,並提供c++11程式
np.random.rand均勻分佈隨機數和np.random.randn正態分佈隨機數函式使用方法
np.random.rand用法 覺得有用的話,歡迎一起討論相互學習~Follow Me 生成特定形狀下[0,1)下的均勻分佈隨機數 np.random.rand(a1,a2,a3…)生成形狀為(a1,a2,a3…),[0,1)之間的 均勻分佈 隨機數 np
【Tensorflow】Tensorflow生成一個服從正態分佈的變數
Tensorflow生成一個服從正態分佈的變數: import tensorflow as tf a = tf.get_variable('a',shape=[2,3],initializer=tf.random_normal_initializer(stddev=1))
【114】Python小例子:numpy.random.randn生成符合正態分佈的資料,並畫出正態分佈的鐘曲線。
自己學習python 隨手寫的一個小例子。先利用 numpy.random.randn生成符合正態分佈的資料,然後再給這些資料畫正態分佈的曲線圖。 import numpy as np impor
一種用C++自帶的類生成服從正態分佈的隨機數。
今天寫關於深度學習的程式碼時,裡面要用服從標準正態分佈的隨機數初始化權值,就是matlab裡面那個randn函式,網上找了很多方法,最後發現C++本身就有自帶的方法生成服從正態分佈的隨機數序列。下面給出C++程式碼: C++程式碼: #include &
C++生成隨機數:高斯/正態分佈(gaussian/normal distribution)
常用的成熟的生成高斯分佈隨機數序列的方法由Marsaglia和Bray在1964年提出,C++版本如下: #include <stdlib.h> #include <math.h> double gaussrand() { static double V1, V2, S
tf從截斷的正態分佈中生成隨機值
在word2vec中計算初始權重的時候,生成正態分佈隨機權重,正態分佈隨機權重的函式tf.truncated_normal() #-*-coding:utf8-*- import tensorflow as tf a = tf.Variable(tf.random_norm
正態分佈隨機數生成演算法
最近在學習基於蒙特卡羅的強化學習方法時遇到 生成服從正態分佈的隨機數的演算法,因此做一個回顧和總結。要程式設計得到服從均勻分佈的偽隨機數是容易的,C、Python、Java語言等都提供了相應的函式。但是要想生成服從正態分佈的隨機數就沒那麼容易了,生成服從正態分佈的隨機數的基本
如何用JAVA產生符合正態分佈的隨機數
正態分佈 java.util.Random裡的nextGaussian(),生成的數值符合均值為0方差為1的高斯/正態分佈,即符合標準正態分佈。 產生數字的範圍:任何數都有可能,不過在0左右的數字較多。 產生N(a,b)的數:Math.sqrt(b)*random.nextGaussian()+a; 即
python+numpy 隨機數的生成,正態分佈,0-1分佈,均勻分佈及隨機數種子
#! usr/bin/env python # coding: utf-8 # 使用numpy中的隨機函式 學習筆記 # 2018年06月04日11:38:43 北京昌平 import numpy.matlib import numpy as np # 說明,每塊程
用C語言程式生成符合正態分佈的隨機數列
一般有兩種演算法: 演算法一產生12個(0,1)平均分佈的隨機函式,用大數定理可以模擬出正態分佈。 演算法二用到了數學中的雅可比變換,直接生成正態分佈,但此演算法在計算很大規模的數時 會出現溢位錯誤。 測試程式: #include <ma
java隨機數產生- 正態分佈
正態分佈 java.util.Random裡的nextGaussian(),生成的數值符合均值為0方差為1的高斯/正態分佈,即符合標準正態分佈。 產生數字的範圍:任何數都有可能,不過在0左右的數字較多。 產生N(a,b)的數:Math.sqrt(b)*random.next
JAVA自定義演算法產生正態分佈隨機數
一、為什麼需要服從正態分佈的隨機函式 一般我們經常使用的隨機數函式 Math.random() 產生的是服從均勻分佈的隨機數,能夠模擬等概率出現的情況,例如 扔一個骰子,1到6點的概率應該相等,但現實生活中更多的隨機現象是符合正態分佈的,例如20歲成年人的體重分佈等。 假如我們在製作一個遊戲,要
MATLAB解決正態分佈資料的大致方法
當我們有了一個矩陣,如何判斷矩陣裡面的元素是否滿足正態分佈,以及如何繪製圖像和求引數。我根據自己最近使用matlab的一些體會,將大致方法寫下。 1、矩陣元素轉化成行向量 reshape()函式 ex
繼續隨機數:接受/拒絕方法(標準正態分佈)
前面在逆分佈函式法生成隨機數(以指數分佈和雙指數分佈為例)中已經說道了逆分佈函式方法生成隨機數,理論上來說的話,對於任意的分佈都是可以用逆分佈函式的方法得到的,因為分佈函式都是單調函式,也就是是說是可逆的,當然除了一些非常極端的情況,例如,函式雖然是遞增的但
python 生成隨機一維或多維正態分佈
作者:採石工 連結:https://www.zhihu.com/question/39823283/answer/115241445 來源:知乎 著作權歸作者所有,轉載請聯絡作者獲得授權。 # coding=utf-8 import numpy as np from
正態分佈可以生成均勻分佈嗎?
通過演算法生成的隨機數是“偽隨機”的,也就是說,在設定好第一個數之後,後面的數字的序列是確定的,並且經過一個非常大的迴圈會回到第一個數的狀態,然後周而復始。顯然,搖號、抽獎的程式是不能通過偽隨機數來實現的。現實中常常基於某種熱噪聲來實現真正的隨機數。假定某熱噪聲是標準正態分