【SQL】BigQueryでモンテカルロ法を用いて円周率の近似計算をする
BigQueryで2つの乱数を生成して円周率の近似値を求める方法です。 実用性は無いと思いますが、練習問題にはなるかもしれないですね。
WITH RandomValue AS ( SELECT num, RAND() AS rand1, RAND() AS rand2, FROM UNNEST(GENERATE_ARRAY(1, 1000000)) AS num) SELECT (pi / num) * 4 AS pi FROM( SELECT SUM(IF(POW(POW(rand1, 2) + POW(rand2, 2), 0.5) < 1, 1, 0))AS pi, COUNT(1) AS num FROM RandomValue)