Discuss Scratch
- Oborou
-
38 posts
演算について話しあうトピック
はい。ちなみにですがscratchの計算の仕方上、ほんの少しだけ誤差が出る時がありますはい、ですがそれだと効率が悪いのでa^bは2乗にする場合は 平方根のブロックはあるんですけど 、2乗にするブロックは無いんですかね?((変数) * (変数))で良いと思います。((変数) * (変数) * (変数))
これで3乗になりますか?([e^ v] \( ((b) * ([ln v] \( (a) \))) \))で計算する方がいいと思います。そしてこれはn乗根にも対応しています。
bとaに数字を入れればよいのでしょうか?
さっき若干、出ましたw
- Leonhard01
-
100+ posts
演算について話しあうトピック
N進数の桁の重みの違いが原因だと考え改良してみました。 Randomに関すること、おっしゃったとおり、なぜか「5」の登場回数が多いですねhttps://scratch-mit-edu.ezproxyberklee.flo.org/projects/504904298/
https://scratch-mit-edu.ezproxyberklee.flo.org/projects/504854864

- inoking
-
1000+ posts
演算について話しあうトピック
#61 のべき乗について:
https://scratch-mit-edu.ezproxyberklee.flo.org/discuss/post/4752267/ も読んでみてください。
四捨五入するとよさそうです。
https://scratch-mit-edu.ezproxyberklee.flo.org/discuss/post/4752267/ も読んでみてください。
四捨五入するとよさそうです。
((((2)の[ln v]::#59c059)*(3)::#59c059)の[e^ v]::#59c059 //7.999999999999998
((((2)の[ln v]::#59c059)*(3)::#59c059)の[e^ v] を四捨五入::#59c059 //8
- yukku
-
1000+ posts
演算について話しあうトピック
その方法でべき乗する欠点として、「底にマイナスが使えない」があります。なので、偶数乗するときは低を絶対値にして、奇数乗するときは
((((((a::#ff8c1a)の[絶対値 v]::#59c059)の[ln v]::#59c059)*(b::#ff8c1a)::#59c059)の[e^ v]::#59c059)を四捨五入::#59c059)*((a::#ff8c1a)/((a::#ff8c1a)の[絶対値 v]::#59c059)::#59c059)::#59c059とする必要があります。
- LightningJames
-
100+ posts
演算について話しあうトピック
#60など
途中で四捨五入されますからね。引用しすぎると重くなるので、そういう時は略せばいいと思います。
途中で四捨五入されますからね。引用しすぎると重くなるので、そういう時は略せばいいと思います。
Last edited by LightningJames (March 21, 2021 21:06:29)
- inoking
-
1000+ posts
演算について話しあうトピック
「2000年からの日数」の乱数性について:
https://github.com/LLK/scratch-vm/blob/develop/src/blocks/scratch3_sensing.js#L252
元々得られたミリ秒を 24 * 60 * 60 * 1000 で割っているため解像度が落ちています。
浮動小数として保持されているので 24 * 60 * 60 * 1000 をかけると元のミリ秒が復元できるようです。
乱数? remix
https://github.com/LLK/scratch-vm/blob/develop/src/blocks/scratch3_sensing.js#L252
daysSince2000 () { const msPerDay = 24 * 60 * 60 * 1000; const start = new Date(2000, 0, 1); // Months are 0-indexed. const today = new Date(); const dstAdjust = today.getTimezoneOffset() - start.getTimezoneOffset(); let mSecsSinceStart = today.valueOf() - start.valueOf(); mSecsSinceStart += ((today.getTimezoneOffset() - dstAdjust) * 60 * 1000); return mSecsSinceStart / msPerDay; }
浮動小数として保持されているので 24 * 60 * 60 * 1000 をかけると元のミリ秒が復元できるようです。
乱数? remix
Last edited by inoking (March 21, 2021 21:43:41)
- kazu-014916
-
46 posts
演算について話しあうトピック
小数点以下第一桁を四捨五入します。 いきなりですが(() を四捨五入)ってどのくらいを四捨五入するんですかね?
例えばscratchのブロックで1.47を四捨五入したら、結果は1になります。
Last edited by kazu-014916 (March 22, 2021 05:02:10)
- kazu-014916
-
46 posts
演算について話しあうトピック
できます。#48で示した式のbに1/3を代入すれば立方根になります。
Last edited by kazu-014916 (March 22, 2021 05:27:58)