Discuss Scratch
- tuneninemuihito
-
Scratcher
93 posts
Scratchスクリプトクイズ
#3679
NOTは((a)+1)*-1ではなく((a)*-1)+1かと…
ORから和を引いて符号を反転させた形です。
(NOT<A=B>出来ないの辛い…)
0,0 = (ceil(0/2)-0)*-1 = (0-0)*-1 = 0
0,1 = (ceil(1/2)-1)*-1 = (1-1)*-1 = 0
1,0 = (ceil(1/2)-1)*-1 = (1-1)*-1 = 0
1,1 = (ceil(2/2)-2)*-1 = (1-2)*-1 = 0
追:書き方悩んでたら頭良い人に先越された…
NOTは((a)+1)*-1ではなく((a)*-1)+1かと…
((((((a)+(b))/(2))の[繰り上げ v])-((a)+(b)))*(-1))とか。
ORから和を引いて符号を反転させた形です。
(NOT<A=B>出来ないの辛い…)
0,0 = (ceil(0/2)-0)*-1 = (0-0)*-1 = 0
0,1 = (ceil(1/2)-1)*-1 = (1-1)*-1 = 0
1,0 = (ceil(1/2)-1)*-1 = (1-1)*-1 = 0
1,1 = (ceil(2/2)-2)*-1 = (1-2)*-1 = 0
追:書き方悩んでたら頭良い人に先越された…
Last edited by tuneninemuihito (Aug. 22, 2026 14:15:34)
- sakura_neko
-
Scratcher
90 posts
Scratchスクリプトクイズ
#3679
ブロック数は@Catapult-さんと同じ7ですが、
プロジェクトはこちらです。
ブロック数は@Catapult-さんと同じ7ですが、
((a) + ((b) * ((1) - ((2) * (a)))))とすると四捨五入や切り下げ・切り上げも不要になりますね。
プロジェクトはこちらです。
- h_team_x
-
Scratcher
100+ posts
Scratchスクリプトクイズ
oh…無限大を使う方法は思いつきませんでした…
一応想定解(10ブロック、考え方は↑3つと同じ)
一応想定解(10ブロック、考え方は↑3つと同じ)
((((a) + (c)) / (2)) - (((a)+(c))/(2)) の [切り下げ v] ::operators) * (0)
//notはミスでしたね(#3681であってる)
- nyabimo
-
Scratcher
2 posts
Scratchスクリプトクイズ
少々難解な問題をご用意いたしました。じっくりと取り組んでいただければ幸いです。急に違う内容を書いてすみません
【問題】(与式)には、整数係数で降べきの順に並べられたx多項式が格納されています。
この多項式を有理数の範囲で因数分解するプログラムを作成してください。
【条件】
・因数分解は、できるところまで行ってください。
・同じ因数をまとめる必要はありません。例(x+1)(x+1)を(x+1)^2とする必要はありません。
・因数分解後の式も降べきの順 に並べてください。2x^2+4x→2x(x+4)
x^2+x+1→x^2+x+1
x^3+x^2-4x-4→(x+1)(x+2)(x-2)
12x^5+84x^4+237x^3+400x^2+84x+217→(4x^2+12x+31)(3x^3+12x^2+7)
動作確認とプログラムが長くなることが期待されることから作品の状態で共有していただけるとありがたいです。
是非ブロック数を少なくしたものと高速化を意識したもの両方作ってみてください。
今回は想定解発表まで暫く待とうと思います。
作ってみました
https://scratch.mit.edu/projects/1364496407/
Last edited by nyabimo (Aug. 28, 2026 15:37:16)
- weather_sunny
-
Scratcher
56 posts
Scratchスクリプトクイズ
#3195
先越された
高速版
先越された
(#3688)省ブロック版少々難解な問題をご用意いたしました。じっくりと取り組んでいただければ幸いです。急に違う内容を書いてすみません
【問題】(与式)には、整数係数で降べきの順に並べられたx多項式が格納されています。
この多項式を有理数の範囲で因数分解するプログラムを作成してください。
【条件】
・因数分解は、できるところまで行ってください。
・同じ因数をまとめる必要はありません。例(x+1)(x+1)を(x+1)^2とする必要はありません。
・因数分解後の式も降べきの順 に並べてください。2x^2+4x→2x(x+4)
x^2+x+1→x^2+x+1
x^3+x^2-4x-4→(x+1)(x+2)(x-2)
12x^5+84x^4+237x^3+400x^2+84x+217→(4x^2+12x+31)(3x^3+12x^2+7)
動作確認とプログラムが長くなることが期待されることから作品の状態で共有していただけるとありがたいです。
是非ブロック数を少なくしたものと高速化を意識したもの両方作ってみてください。
今回は想定解発表まで暫く待とうと思います。
作ってみました
https://scratch.mit.edu/projects/1364496407/
高速版
Last edited by weather_sunny (Sept. 17, 2026 07:35:42)
- weather_sunny
-
Scratcher
56 posts
Scratchスクリプトクイズ
問題でっす
変数 t を 0 から 1 ずつ増やしていくと、変数 y が
0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0 …
と上がったり下がったりするようにしてください。
ルール
確認には下のスクリプトを使ってください。?? の部分を考えてください。
変数 t を 0 から 1 ずつ増やしていくと、変数 y が
0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0 …
と上がったり下がったりするようにしてください。
ルール
- 使えるのは「 を ( ) にする」ブロック1つと、その中に入れる演算ブロックだけです
- 「もし」などの制御ブロックは使えません
- なるべく少ないブロックで作ってください
確認には下のスクリプトを使ってください。?? の部分を考えてください。
@greenFlag が押されたとき
[t v] を (0) にする
(12) 回繰り返す
[y v] を (??) にする
(y) と言う
(0.5) 秒待つ
[t v] を (1) ずつ変える
end
- paletsistem
-
Scratcher
23 posts
Scratchスクリプトクイズ
#3690
(??) ← ((1.5-1.5*cos(60t))を四捨五入)
でどうでしょうか。(??)の部分で6ブロックです。
(??) ← ((1.5-1.5*cos(60t))を四捨五入)
でどうでしょうか。(??)の部分で6ブロックです。
- weather_sunny
-
Scratcher
56 posts
Scratchスクリプトクイズ
正解です![y v] を (((([sin v] of (((t) * (60)) - (90))) * (1.5)) + (1.5)) を四捨五入) にする
sinで波を作ってから四捨五入するのは思いつかなかったです。
t×60-90 のsinは 0,1,2,3,2,1 のときに -1, -0.5, 0.5, 1, 0.5, -0.5 になるので、1.5倍して1.5を足すと 0, 0.75, 2.25, 3, 2.25, 0.75 になって、四捨五入でちゃんと 0,1,2,3,2,1 になりますね。
ちなみに自分が考えてた答えはこれです。
[y v] を ((3) - ([abs v] of (((t) を (6) で割った余り) - (3)))) にするt を 6 で割った余りから 3 を引いて絶対値をとると 3,2,1,0,1,2 になるので、それを 3 から引いています。
演算ブロックは4個です。
- weather_sunny
-
Scratcher
56 posts
Scratchスクリプトクイズ
じゃあこれは解けますか?即席で作ったので少し間違ってるかもしれません
変数 t を 0 から 1 ずつ増やしていくと、変数 y が
1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 …
になるようにしてください。
(1が1回、2が2回、3が3回…と、数字 n が n 回ずつ並びます)
ルール
確認には下のスクリプトを使ってください。
変数 t を 0 から 1 ずつ増やしていくと、変数 y が
1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5 …
になるようにしてください。
(1が1回、2が2回、3が3回…と、数字 n が n 回ずつ並びます)
ルール
- 使えるのは「 を ( ) にする」ブロック1つと、その中に入れる演算ブロックだけです
- 「もし」などの制御ブロックや、変数を増やすのはダメです
- 演算ブロックは4個以下にしてください
確認には下のスクリプトを使ってください。
@greenFlag が押されたとき
[t v] を (0) にする
(15) 回繰り返す
[y v] を (??) にする
(y) と言う
(0.5) 秒待つ
[t v] を (1) ずつ変える
end
- abee
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
解釈を間違えていたので削除します。
9を超えたときにどうなるか書かれていないので解けないと思います。
9を超えたときにどうなるか書かれていないので解けないと思います。
Last edited by abee (Sept. 17, 2026 09:18:46)
- paletsistem
-
Scratcher
23 posts
Scratchスクリプトクイズ
#3693
割った余りを使うのは思いつきませんでした。誤差を四捨五入で潰すのはズルいなーと思いながら回答しましたが、想定解の方では幅が大きくなったり小数範囲であってもジグザグを維持できますね。往復するタイプのアニメーションに使えそうだなと思いました。
次の問題は難しかったです
割った余りを使うのは思いつきませんでした。誤差を四捨五入で潰すのはズルいなーと思いながら回答しましたが、想定解の方では幅が大きくなったり小数範囲であってもジグザグを維持できますね。往復するタイプのアニメーションに使えそうだなと思いました。
次の問題は難しかったです
- weather_sunny
-
Scratcher
56 posts
Scratchスクリプトクイズ
正解です!!演算ブロック4個もクリアです。[y v] を (([sqrt v] of (((t) + (1)) * (2))) を四捨五入) にする
自分が用意してた答えは t+t+2 の平方根を四捨五入するやつで、(t+1)×2 と同じなので、ほぼ同じ答えでした。
(本当に早いですね


)Last edited by weather_sunny (Sept. 17, 2026 11:25:56)
- weather_sunny
-
Scratcher
56 posts
Scratchスクリプトクイズ
学校の先輩と一緒に考えた問題です。二人でかなり悩みました。
ペンで下のような四角い渦巻きを描いてください。
t 番目の点の座標 (x, y) は、こうなります。
t=0 (0,0)
t=1 (1,0)
t=2 (1,1)
t=3 (0,1)
t=4 (-1,1)
t=5 (-1,0)
t=6 (-1,-1)
t=7 (0,-1)
t=8 (1,-1)
t=9 (2,-1)
t=10 (2,0)
…
ルール
確認には下のスクリプトを使ってください。★の部分を作ってください。
ペンで下のような四角い渦巻きを描いてください。
t 番目の点の座標 (x, y) は、こうなります。
t=0 (0,0)
t=1 (1,0)
t=2 (1,1)
t=3 (0,1)
t=4 (-1,1)
t=5 (-1,0)
t=6 (-1,-1)
t=7 (0,-1)
t=8 (1,-1)
t=9 (2,-1)
t=10 (2,0)
…
ルール
- ループの中で自分で作っていいのは「 を ( ) にする」ブロックだけです(変数は何個作ってもOK)
- 「もし」などの制御ブロック、「〇歩動かす」「〇度回す」などの動きブロックは使えません
- リストも使えません
- t を 1 ずつ増やすたびに、その t の x と y を前の値を使わずに計算してください
- 使うブロックが少ないほどえらいです
確認には下のスクリプトを使ってください。★の部分を作ってください。
@greenFlag が押されたとき(zは特に何の意味もないです)
全部消す
x座標を (0) 、y座標を (0) にする
ペンを下ろす
[t v] を (0) にする
(81) 回繰り返す
[z v] を (z) にする
x座標を ((x) * (15)) 、y座標を ((y) * (15)) にする
[t v] を (1) ずつ変える
end
