Discuss Scratch

tuneninemuihito
Scratcher
93 posts

Scratchスクリプトクイズ

#3679
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ですが、
((a) + ((b) * ((1) - ((2) * (a)))))
とすると四捨五入や切り下げ・切り上げも不要になりますね。
プロジェクトはこちらです。
00giri
Scratcher
1000+ posts

Scratchスクリプトクイズ

#3679を見て思いついたので投稿
#3679と同じ条件の下で、xnorを求める方法を考えてください。
(想定解:6ブロック)
Catapult-
Scratcher
100+ posts

Scratchスクリプトクイズ

#3683
ワンパターンですが

(scratchblocksが悪い言葉検知器によって貼れないっぽい)
の6ブロックでどうでしょうか。
プロジェクト版はこちら

Last edited by Catapult- (Aug. 23, 2026 14:39:00)

00giri
Scratcher
1000+ posts

Scratchスクリプトクイズ

#3684
正解(想定解と同じ)です。
これを利用してxorを7ブロックで求めることもできます。
((1) - ((1) / ((((a) - (c)) / (0)) + (1))))
cはbだと思ってください

Last edited by 00giri (Aug. 23, 2026 14:56:12)

h_team_x
Scratcher
100+ posts

Scratchスクリプトクイズ

oh…無限大を使う方法は思いつきませんでした…
一応想定解(10ブロック、考え方は↑3つと同じ)
((((a) + (c)) / (2)) - (((a)+(c))/(2)) の [切り下げ v] ::operators) * (0)

//notはミスでしたね(#3681であってる)
Kouzeru
Scratcher
23 posts

Scratchスクリプトクイズ

#3679
(((a)+(c)) * ((2) - ((a) + (c))))

(((a)-(c)) * ((a) - (c)))

Project

Last edited by Kouzeru (Aug. 25, 2026 15:54:38)

nyabimo
Scratcher
2 posts

Scratchスクリプトクイズ

Leonhard01 wrote:

少々難解な問題をご用意いたしました。じっくりと取り組んでいただければ幸いです。
【問題】
(与式)
には、整数係数で降べきの順に並べられたx多項式が格納されています。
この多項式を有理数の範囲で因数分解するプログラムを作成してください。

【条件】
・因数分解は、できるところまで行ってください。
・同じ因数をまとめる必要はありません。例(x+1)(x+1)を(x+1)^2とする必要はありません。
・因数分解後の式も降べきの順 に並べてください。

入力例と出力例 wrote:

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
先越された

nyabimo wrote:

(#3688)

Leonhard01 wrote:

少々難解な問題をご用意いたしました。じっくりと取り組んでいただければ幸いです。
【問題】
(与式)
には、整数係数で降べきの順に並べられたx多項式が格納されています。
この多項式を有理数の範囲で因数分解するプログラムを作成してください。

【条件】
・因数分解は、できるところまで行ってください。
・同じ因数をまとめる必要はありません。例(x+1)(x+1)を(x+1)^2とする必要はありません。
・因数分解後の式も降べきの順 に並べてください。

入力例と出力例 wrote:

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 …
と上がったり下がったりするようにしてください。

ルール
  • 使えるのは「 を ( ) にする」ブロック1つと、その中に入れる演算ブロックだけです
  • 「もし」などの制御ブロックは使えません
  • なるべく少ないブロックで作ってください

確認には下のスクリプトを使ってください。?? の部分を考えてください。

@greenFlag が押されたとき
[t v] を (0) にする
(12) 回繰り返す
[y v] を (??) にする
(y) と言う
(0.5) 秒待つ
[t v] を (1) ずつ変える
end
my_hokanko
Scratcher
31 posts

Scratchスクリプトクイズ

#3690
完成しました。リンク
総ブロック数8個です。



Last edited by my_hokanko (Sept. 17, 2026 08:23:01)

paletsistem
Scratcher
23 posts

Scratchスクリプトクイズ

#3690
(??) ← ((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 回ずつ並びます)

ルール
  • 使えるのは「 を ( ) にする」ブロック1つと、その中に入れる演算ブロックだけです
  • 「もし」などの制御ブロックや、変数を増やすのはダメです
  • 演算ブロックは4個以下にしてください

確認には下のスクリプトを使ってください。

@greenFlag が押されたとき
[t v] を (0) にする
(15) 回繰り返す
[y v] を (??) にする
(y) と言う
(0.5) 秒待つ
[t v] を (1) ずつ変える
end
abee
Scratcher
1000+ posts

Scratchスクリプトクイズ

解釈を間違えていたので削除します。
9を超えたときにどうなるか書かれていないので解けないと思います。

Last edited by abee (Sept. 17, 2026 09:18:46)

my_hokanko
Scratcher
31 posts

Scratchスクリプトクイズ

#3694


できました。リンク
ブロック数ちょうどです
paletsistem
Scratcher
23 posts

Scratchスクリプトクイズ

#3693
割った余りを使うのは思いつきませんでした。誤差を四捨五入で潰すのはズルいなーと思いながら回答しましたが、想定解の方では幅が大きくなったり小数範囲であってもジグザグを維持できますね。往復するタイプのアニメーションに使えそうだなと思いました。

次の問題は難しかったです
weather_sunny
Scratcher
56 posts

Scratchスクリプトクイズ

[y v] を (([sqrt v] of (((t) + (1)) * (2))) を四捨五入) にする
正解です!!演算ブロック4個もクリアです。
自分が用意してた答えは 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)
…

ルール
  • ループの中で自分で作っていいのは「 を ( ) にする」ブロックだけです(変数は何個作ってもOK)
  • 「もし」などの制御ブロック、「〇歩動かす」「〇度回す」などの動きブロックは使えません
  • リストも使えません
  • t を 1 ずつ増やすたびに、その t の x と y を前の値を使わずに計算してください
  • 使うブロックが少ないほどえらいです

確認には下のスクリプトを使ってください。★の部分を作ってください。

@greenFlag が押されたとき
全部消す
x座標を (0) 、y座標を (0) にする
ペンを下ろす
[t v] を (0) にする
(81) 回繰り返す
[z v] を (z) にする
x座標を ((x) * (15)) 、y座標を ((y) * (15)) にする
[t v] を (1) ずつ変える
end
(zは特に何の意味もないです)
ie_523
Scratcher
100+ posts

Scratchスクリプトクイズ

#3699

https://scratch.mit.edu/projects/1181241389/
こんなのでどうでしょうか?

Powered by DjangoBB