Discuss Scratch
- r4010
-
16 posts
演算について話しあうトピック
(略)
はい。ちなみにですがscratchの計算の仕方上、ほんの少しだけ誤差が出る時があります
[答 v] を [1] にするこれなら誤差が減ると思います。
([切り下げ v] \( (b) \)) 回繰り返す
[答 v] を ((a) * (答)) にする
end
もし <<((b) を (1) で割った余り) = [0]> ではない> なら
[答 v] を ((答) * (([10^ v] \(((b) を (1) で割った余り)\)) * ([log v]\( (a) \)) )) にする
end
Last edited by r4010 (Aug. 26, 2021 23:19:02)
- inoking
-
1000+ posts
演算について話しあうトピック
これと同じですが時々出てくる話題です。((0.1) * (0.1))が0.01ではないのが致命的
機械計算に便利な2進数に置き換えて実行しているため生じる誤差です。
2進数で正確に表現できる数字(例:0.125)なら浮動小数点でも有効桁の範囲内で正確に計算できます。
これは Scratch に限った話ではありません。
ブラウザの「開発者ツール」の「コンソール」でもすぐ試せます。
IEEE 754 はデファクトスタンダード(事実上の標準)と言ってもよいようなものです。
この誤差が、例えば電卓ソフトなら致命的ですが
プログラミング言語はソフトを作るための道具にすぎません。
道具の特性を理解して使うのは、使用者側(電卓ソフトの例えで言うと、電卓ソフトの作成者)の責任です。
つまり、Scratch で言うと、ブロックを使ってプログラムを作っている我々ユーザーの責任です。
- r4010
-
16 posts
演算について話しあうトピック
なるほど。よくわかりました。ありがとうございます。 (略)
この誤差が、例えば電卓ソフトなら致命的ですが
プログラミング言語はソフトを作るための道具にすぎません。
道具の特性を理解して使うのは、使用者側(電卓ソフトの例えで言うと、電卓ソフトの作成者)の責任です。
つまり、Scratch で言うと、ブロックを使ってプログラムを作っている我々ユーザーの責任です。
Last edited by r4010 (Aug. 26, 2021 10:20:29)
- ahorashi
-
35 posts
演算について話しあうトピック
cosθは直角三角形の形をしていてθ°の角を持っている楽器のトライアングルみたいなものの直角のところを右下にして、θ°の角度を左下にして置いた時(⊿←こんな感じの時)の(_の部分の長さ÷/の部分の長さ)がcosです。
伝わらなかったらすいません。語彙力無いので()
追記:逆でした()
伝わらなかったらすいません。語彙力無いので()
追記:逆でした()
Last edited by ahorashi (Aug. 27, 2021 04:52:00)
- takumaiq
-
80 posts
演算について話しあうトピック
((0.1) * (0.1))が0.01ではないのが致命的
僕はあまり詳しくないのですが、こういうことではないでしょうか。
機械は計算を2進数で計算しています。
例えば、5+6=11であれば、5→101 6→110 2進数で101+110=1011 1011→11
2進数は、2の冪乗の和で整数を表すというものですから、当然小数も2の冪乗の和で表します。
例えば、0.75=0.5+0.25→0.11 このように表されます。
小数になりますと、2進数表記が有限の長さで表せなくなることがあります。
それが0.1の例です。
0.1を2進数表記すると、0.1=0.0625+0.03125+0.00390625+0.001953125+…=0.000110011… (違ったらすいません)
所謂「循環小数」になります。
10進数を用いる我々からすると、循環小数を分数に直さないまま正確に計算することは不可能です。
それと同じで、2進数を使う上に、小数第〇位(64とかだったかな?)までしか小数を扱う事の出来ないコンピュータは、
2進数で言う0.000110011…×0.000110011…、即ち10進数の0.1×0.1を正確に計算することはできないのです。
このようなことではないかと思います。長文失礼致しました。
- ejimasa-sab
-
4 posts
演算について話しあうトピック
こんにちは。ほぼ初のディスカッションフォールです。演算自体わからないのですが演算って何ですか?

定義 演算って何?(演算てなんなんだああああああ)
- LiQiXian
-
57 posts
演算について話しあうトピック
もし <<((何らかの数) を (1) で割った余り) = [0]> ではない> ならこれがそこそこ便利。
[君は少数だ!] と言う
end
- StrongPeanut
-
1000+ posts
演算について話しあうトピック
「少数」ではなくて「小数」。もし <<((何らかの数) を (1) で割った余り) = [0]> ではない> ならこれがそこそこ便利。
[君は少数だ!] と言う
end
もし <((何らかの数) を (1) で割った余り) = [0]> なら便利ですね。
[君は整数だ!] と言う //整数判定
でなければ
[君は小数だ!]と言う //小数・分数判定
end
- ringo2go
-
100+ posts
演算について話しあうトピック
#327
簡単に言うと計算でしょうか。演算のための記号?を演算子と言いますす。
演算子一覧↓
http://wisdom.sakura.ne.jp/programming/perl/perldata1.html
簡単に言うと計算でしょうか。演算のための記号?を演算子と言いますす。
演算子一覧↓
http://wisdom.sakura.ne.jp/programming/perl/perldata1.html
- mikan__s
-
71 posts
演算について話しあうトピック
あの、sinやcosやasin(三角関数系のやつとか平方根とか絶対値とか…)はわかるんですけど、lnやlog、e(ネイピア数(?)っていうの)が分かりません。
- ahahahahanoha
-
46 posts
演算について話しあうトピック
演算についてのトピックに移動して再投稿
scratchの演算についてしっかり学ぶことができる本、サイトを教えてください。
scratch専門の本、サイトじゃなくてもいいです。 (やって覚えろとか言わないでください。演算苦手なんです)
scratchの演算についてしっかり学ぶことができる本、サイトを教えてください。
scratch専門の本、サイトじゃなくてもいいです。 (やって覚えろとか言わないでください。演算苦手なんです)
- ahahahahanoha
-
46 posts
演算について話しあうトピック
参考にします。ありがとうございます。
Last edited by ahahahahanoha (Sept. 17, 2021 01:50:37)
- StrongPeanut
-
1000+ posts
演算について話しあうトピック
#335
(((x) - (n))の [平方根 v]:: operators)https://scratch-mit-edu.ezproxyberklee.flo.org/projects/573819827/
Last edited by StrongPeanut (Sept. 23, 2021 00:04:16)
- 00giri
-
1000+ posts
演算について話しあうトピック
#336
nを求めるということはnは使えません。
#335
n²+n-x=0 を解の公式に代入して、
nを求めるということはnは使えません。
#335
n²+n-x=0 を解の公式に代入して、
(((-1) + (((1) + ((4) * (x)))の[平方根 v]::operators)) / (2))で2つの解を求めることができます。
(((-1) - (((1) + ((4) * (x)))の[平方根 v]::operators)) / (2))
- kuriboushi1
-
3 posts
演算について話しあうトピック
#336
nを求めるということはnは使えません。
#335
n²+n-x=0 を解の公式に代入して、(((-1) + (((1) + ((4) * (x)))の[平方根 v]::operators)) / (2))で2つの解を求めることができます。
(((-1) - (((1) + ((4) * (x)))の[平方根 v]::operators)) / (2))
ありがとうございます!