Discuss Scratch

Oborou
Scratcher
38 posts

演算について話しあうトピック

kazu-014916 wrote:

ringo2go wrote:

kazu-014916 wrote:

ringo2go wrote:

kazu-014916 wrote:

ringo2go wrote:

平方根のブロックはあるんですけど 、2乗にするブロックは無いんですかね?
2乗にする場合は
((変数) * (変数))
で良いと思います。

((変数) * (変数) * (変数))



これで3乗になりますか?
はい、ですがそれだと効率が悪いのでa^bは
([e^ v] \( ((b) * ([ln v] \( (a) \))) \))
で計算する方がいいと思います。そしてこれはn乗根にも対応しています。





bとaに数字を入れればよいのでしょうか?
はい。ちなみにですがscratchの計算の仕方上、ほんの少しだけ誤差が出る時があります

さっき若干、出ましたw
Leonhard01
Scratcher
100+ posts

演算について話しあうトピック

Oborou wrote:

Randomに関すること、おっしゃったとおり、なぜか「5」の登場回数が多いですね

https://scratch-mit-edu.ezproxyberklee.flo.org/projects/504854864
N進数の桁の重みの違いが原因だと考え改良してみました。 https://scratch-mit-edu.ezproxyberklee.flo.org/projects/504904298/
inoking
Scratcher
1000+ posts

演算について話しあうトピック

#61 のべき乗について:
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
Scratcher
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
Scratcher
100+ posts

演算について話しあうトピック

#60など
途中で四捨五入されますからね。引用しすぎると重くなるので、そういう時は略せばいいと思います。

Last edited by LightningJames (March 21, 2021 21:06:29)

inoking
Scratcher
1000+ posts

演算について話しあうトピック

「2000年からの日数」の乱数性について:
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 で割っているため解像度が落ちています。
浮動小数として保持されているので 24 * 60 * 60 * 1000 をかけると元のミリ秒が復元できるようです。
乱数? remix

Last edited by inoking (March 21, 2021 21:43:41)

LightningJames
Scratcher
100+ posts

演算について話しあうトピック

へ~初めて知りました
ringo2go
Scratcher
100+ posts

演算について話しあうトピック

inoking wrote:

abee wrote:

#14
分布に偏りが大きすぎて乱数とは言えないと思います。
検証してみました。
5 だけが多くなる傾向がありますね。
何か理由がありそうです。


逆に5を多くした乱数などに活用出来そうです。(無理か?)
kazu-014916
Scratcher
46 posts

演算について話しあうトピック

ringo2go wrote:

inoking wrote:

abee wrote:

#14
分布に偏りが大きすぎて乱数とは言えないと思います。
検証してみました。
5 だけが多くなる傾向がありますね。
何か理由がありそうです。


逆に5を多くした乱数などに活用出来そうです。(無理か?)
それなら
もし <((1) から (2) までの乱数) = [1]> なら 

[answer v] を [5] にする

でなければ
[answer v] を ((1) から (10) までの乱数) にする
end
でもできそうです
LightningJames
Scratcher
100+ posts

演算について話しあうトピック

それならほかの数もいけそうですね
kazu-014916
Scratcher
46 posts

演算について話しあうトピック

特定の数を何%で出すかとかも調節できるので、こちらの方が実用性はあるかもしれません
hakumaidaisuki
Scratcher
100+ posts

演算について話しあうトピック

いきなりですが
(() を四捨五入)
ってどのくらいを四捨五入するんですかね?
kazu-014916
Scratcher
46 posts

演算について話しあうトピック

hakumaidaisuki wrote:

いきなりですが
(() を四捨五入)
ってどのくらいを四捨五入するんですかね?
小数点以下第一桁を四捨五入します。
例えばscratchのブロックで1.47を四捨五入したら、結果は1になります。

Last edited by kazu-014916 (March 22, 2021 05:02:10)

ringo2go
Scratcher
100+ posts

演算について話しあうトピック

立法根
をスクラッチで再現できますかね。
kazu-014916
Scratcher
46 posts

演算について話しあうトピック

できます。#48で示した式のbに1/3を代入すれば立方根になります。

Last edited by kazu-014916 (March 22, 2021 05:27:58)

sochanpiko
Scratcher
50 posts

演算について話しあうトピック

Oborou wrote:

ちなみに、クローンとsinをうまく使えば、立体音響になった感じになります!

立体音響にも演算って使えるのか…といいつつ僕も使ったんですけどね…
ringo2go
Scratcher
100+ posts

演算について話しあうトピック

(タイマー)

このブロックと演算の組み合わせが個人的に好きです。
kazu-014916
Scratcher
46 posts

演算について話しあうトピック

僕はリストや変数と組み合わせて使っています
ringo2go
Scratcher
100+ posts

演算について話しあうトピック

kazu-014916 wrote:

僕はリストや変数と組み合わせて使っています

リストは最近便利なことにきずきました!
kazu-014916
Scratcher
46 posts

演算について話しあうトピック

便利ですよ〜簡単なものですが、こんなこともできます〜

Powered by DjangoBB