Discuss Scratch
- Discussion Forums
- » 日本語
- » Scratchスクリプトクイズ
- hirayuu1414
-
Scratcher
500+ posts
Scratchスクリプトクイズ
正解です。想定解の一つでもあります。
綺麗ではありませんが想定解はもう二つ一つあります。
綺麗ではありませんが想定解はもう二つ一つあります。
Last edited by hirayuu1414 (April 5, 2023 12:26:16)
- abee
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
普通に考えるとこれでしょうか。
定義 sin(θ)
x座標を (0) 、y座標を (0) にする
((θ) - (90)) 度に向ける
(100) 歩動かす
[sinθ v] を ((y座標) / (100)) にする
- Catapult-
-
Scratcher
100+ posts
Scratchスクリプトクイズ
#2618に回答
定義 sin(θ)
[pi v] を [3.14159265359] にする
[sinθ v] を [0] にする
[i v] を [1] にする
(10) 回繰り返す
[num! v] を [1] にする
(i)!
[sinθ v] を ((<(((i) - (1)) を (4) で割った余り) = [2]> 番目\( [-] \)の文字) と (([10^ v] \( ((i) * ([log v] \( (((θ) / (180)) * (pi)) \))) \)) / (num!))) ずつ変える
[i v] を (2) ずつ変える
end
[i v] を ([i] と []) にする
定義 (num)!長々と書きましたが要するにテイラー展開です
[num! v] を ((num!) * (num)) にする
もし <(1) <(num) > なら
((num)-(1))!
end
Last edited by Catapult- (April 5, 2023 23:20:45)
- sakura_neko
-
Scratcher
90 posts
Scratchスクリプトクイズ
#2618に回答
追記:https://scratch.mit.edu/projects/831751113/ で検証できます
定義 sin(θ)長々と書きましたが要するにニュートン法です
もし <<(θ) < [0]> または <(θ) > [360]>> なら
sin((θ) を (360) で割った余り)
でなければ
もし <(θ) > [180]> なら
sin((θ) - (180))
[sinθ v] を ((-1) * (sinθ)) にする
でなければ
もし <(θ) > [90]> なら
sin((180) - (θ))
でなければ
もし <(θ) > [45]> なら
sin((90) - (θ))
[sinθ v] を ([平方根 v] \( ((1) - ((sinθ) * (sinθ))) \)) にする
でなければ
[sinθ v] を (0) にする
(5) 回繰り返す
[sinθ v] を ((sinθ) - ((0.0174532925199432958) * ((([asin v] \( (sinθ) \)) - (θ)) * ([平方根 v] \( ((1) - ((sinθ) * (sinθ))) \))))) にする
end
end
end
end
end
追記:https://scratch.mit.edu/projects/831751113/ で検証できます
Last edited by sakura_neko (April 6, 2023 04:26:37)
- inoking
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
数学的な三角関数の代用方法は他にいくつもありますが
それを Scratch で実装するだけって
スクリプトクイズの範疇なのでしょうか?
それを Scratch で実装するだけって
スクリプトクイズの範疇なのでしょうか?
- abee
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
このケースでは、どこまでがクイズでどこまでがそうでないかの判断は難しいと思います。
出題者が決めることですが、私は面白いと思いました。マーヴィン・ミンスキーが言うように「2つ以上の方法で解かない限り、本当に理解したとは言えない」だと思います。
出題者が決めることですが、私は面白いと思いました。マーヴィン・ミンスキーが言うように「2つ以上の方法で解かない限り、本当に理解したとは言えない」だと思います。
- xiangyeng
-
Scratcher
100+ posts
Scratchスクリプトクイズ
この問題を解く前にこの記事を読むことをお勧めします。
下のスクリプトは1つ欠けています。欠けているところを埋めて下さい‼️(定義のハットブロックがScratch3.0の色じゃないのは許して)
下のスクリプトは1つ欠けています。欠けているところを埋めて下さい‼️(定義のハットブロックがScratch3.0の色じゃないのは許して)
定義 キーボード判定ここからのスクリプトは欠けていません。
x座標を ((x座標::4c97ff)+(<[右向き矢印キー v] キーが押された::#5cb1d6> - ()::#59c059)::#59c059) 、y座標を ((y座標::4c97ff)+(<[上向き矢印キー v] キーが押された::#5cb1d6> - <[下向き矢印キー v] キーが押された::#5cb1d6>::#59c059)::#59c059) にする::#4c97ff
@greenflagがクリックされたとき::#ffbf00
ずっと::#ffab19
キーボード判定::#ff6680
end
Last edited by xiangyeng (April 6, 2023 04:57:20)
- hirayuu1414
-
Scratcher
500+ posts
Scratchスクリプトクイズ
#2623~2625
検証プロジェクトを作成してみました。
abeeさんのものとsakura_nekoさんのものは正解です。
Catapult-さんのものは負の数や少し大きめの数を入力すると誤差が規定より大きくなるようです。
最後の想定解も入っています。
ただのテイラー展開を利用しただけなので他の想定解より綺麗ではありませんが。
#2627
私はsousi02さんやabeeさんのように綺麗に解くのも、sakura_nekoさんのように数学的な解き方を実装するのもアリだと思っています。
検証プロジェクトを作成してみました。
abeeさんのものとsakura_nekoさんのものは正解です。
Catapult-さんのものは負の数や少し大きめの数を入力すると誤差が規定より大きくなるようです。
最後の想定解も入っています。
ただのテイラー展開を利用しただけなので他の想定解より綺麗ではありませんが。
#2627
私はsousi02さんやabeeさんのように綺麗に解くのも、sakura_nekoさんのように数学的な解き方を実装するのもアリだと思っています。
Last edited by hirayuu1414 (April 7, 2023 01:48:36)
- akinarin
-
Scratcher
500+ posts
Scratchスクリプトクイズ
問題です。
以下のブロックだけを使ってフィボナッチ数列の先頭のちょうど1000個を
「結果」というリストに並べて下さい。
(フィボナッチ数列は(1, 1, 2..)というように1から始まります)
但し、使っていいブロック数は100個以下とします
追記: 整数で扱える範囲を超えてしまうことによる誤差は考えないものとします。
以下のブロックだけを使ってフィボナッチ数列の先頭のちょうど1000個を
「結果」というリストに並べて下さい。
(フィボナッチ数列は(1, 1, 2..)というように1から始まります)
@greenFlagがクリックされた時 :: hat events定義ブロック
[... v]のすべてを削除する::list
[]を[... v]に追加する
(() + ())
()回繰り返す
end
[... v]を止める
但し、使っていいブロック数は100個以下とします
追記: 整数で扱える範囲を超えてしまうことによる誤差は考えないものとします。
Last edited by akinarin (April 7, 2023 03:22:30)
- Catapult-
-
Scratcher
100+ posts
Scratchスクリプトクイズ
#2632
オーバーフローを考えないのであれば、以下のようなスクリプトでできます。
オーバーフローを考えないのであれば、以下のようなスクリプトでできます。
@greenFlagがクリックされた時 :: hat events
[list v]のすべてを削除する::list
F (1) (1) (1)
定義 F (a)(b)(time)
(a)を[list v]に追加する
((time) + (-999))回繰り返す
[すべて v]を止める
end
F (b) ((a)+(b)) ((time)+(1))
- akinarin
-
Scratcher
500+ posts
Scratchスクリプトクイズ
変数x, yには正の整数が入っています。
以下のブロックを用いて、xとyの最大公約数を2秒言うプログラムを作って下さい。
以下のブロックを用いて、xとyの最大公約数を2秒言うプログラムを作って下さい。
(x)定義ブロック
(y)
[] と (2) 秒言う
@greenFlagがクリックされた時 :: hat events
(() + ())
()回繰り返す
end
[... v]を止める
- pupon
-
Scratcher
100+ posts
Scratchスクリプトクイズ
数値が入った変数解答がないまま次ページに行ってしまったので再投稿します。(min)があります。
(max)
(n)
この時、
変数「n」を「min」から「max」までの範囲に入るように修正するプログラムを作ってください。
(例)
minが1 maxが10 nが20の時は、nが1~10までの範囲からはみ出ないように調整するので、nが10になります。
minが5 maxが8 nが3の時は、nが5になります。
難易度が二段階あります。
<Easy>
何のブロックでも使っていいです。
<Hard>
演算ブロック、変数ブロックしか使えません。
正解者が二人以上になったら想定解を出そうと思います
- Catapult-
-
Scratcher
100+ posts
Scratchスクリプトクイズ
min < maxの場合、
max ≦ minの場合はおそらく問題ではないと思われるので、これで回答します。
[n v] を ((n) + ((<(max) < (n)> * ((max) - (n))) + (<(n) < (min)> * ((min) - (n))))) にするで動作します。
max ≦ minの場合はおそらく問題ではないと思われるので、これで回答します。