Discuss Scratch
- Discussion Forums
- » 日本語
- » Scratchスクリプトクイズ
- taiyo_a
-
Scratcher
100+ posts
Scratchスクリプトクイズ
無限個のコスチュームを作ることは不可能であるかつ、(足す数)が負の数、少数だった場合計算できなくなるので、解答例としては不完全ではないでしょうか。定義 (足される数)+(足す数)を求める
コスチュームを (足される数)にする
(足す数) 回繰り返す
次のコスチュームにする
end
[答え v] を (コスチューム #) にする
- tabakenn
-
Scratcher
100+ posts
Scratchスクリプトクイズ
a + b
(なおちょっと大きいとダメな模様 (-745 <= a, b, a + b <= 709)
((((a) の[e^ v]::operators) * ((b) の[e^ v]::operators)) の[ln v]::operators)結構いいかんじに動きました。(小数も負の数もいけるし
(なおちょっと大きいとダメな模様 (-745 <= a, b, a + b <= 709)
((((2) * (((a) の[cos v]::operators) * ((b) の[cos v]::operators))) - (((a) - (b)::operators) の[cos v]::operators)) の[acos v]::operators)↑色々残念なバージョン (0 <= a, b, a + b <= 180)
Last edited by tabakenn (Dec. 6, 2023 14:15:49)
- Leonhard01
-
Scratcher
100+ posts
Scratchスクリプトクイズ
#2744
#2750
解答ありがとうございます。正解です。
自分の作ったプログラムです。
https://scratch.mit.edu/projects/934914791/
https://scratch.mit.edu/projects/935488699/
一つ目はお二方同様パスカルの三角形の性質の一つである上からx番目、左からy番目の項はx-1 C y-1で表すことができるを使い
二つ目は11^nとパスカルの三角形の関連性を用いて作りました。
またWikipediaにあるような
#2750
解答ありがとうございます。正解です。
自分の作ったプログラムです。
https://scratch.mit.edu/projects/934914791/
https://scratch.mit.edu/projects/935488699/
一つ目はお二方同様パスカルの三角形の性質の一つである上からx番目、左からy番目の項はx-1 C y-1で表すことができるを使い
二つ目は11^nとパスカルの三角形の関連性を用いて作りました。
またWikipediaにあるような
パスカルの三角形の最も単純な性質として、以下のようなものがある。を使った解法なども考えられるかもしれません。
頂上から右下・左下の方向へ並ぶ数字はすべて1である。
2段目の 1 から右下・左下の方向(すべて1の方向を除く。以下同じ)には自然数の列が現れる。
3段目の 1 から右下・左下の方向には三角数の列が現れる。
4段目の 1 から右下・左下の方向には三角錐数の列が現れる。
5段目の 1 から右下・左下の方向には五胞体数の列が現れる。
一般的に n 段目の 1 から右下・左下の方向には n − 1 次元単体数が現れる。
- inoking
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
#2762反論のための反論に見えます。
そうですが、それを言ってしまえばkouryou118103さんの投稿も同じです。
あくまで「自然数の足し算ならこんなものもあるよ」と言っただけです。
どちらのやり方も不完全ですが、その程度が違います。
無限とは言わずとも、1000個もコスチュームが作れますか?
- abee
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
私は#2761の無限個は冗談だと感じたので、回答時に制限を示していれば、これはこれでありだと思いました。
この問題の趣旨は、加算の置き換えとして使えるブロック(加算を使うべき場面でも使わなくてもすむように用意されているブロック)やアルゴリズムを探すことだと思うので、その点では成立しています。
この問題の趣旨は、加算の置き換えとして使えるブロック(加算を使うべき場面でも使わなくてもすむように用意されているブロック)やアルゴリズムを探すことだと思うので、その点では成立しています。
Last edited by abee (Dec. 6, 2023 23:19:23)
- tabakenn
-
Scratcher
100+ posts
Scratchスクリプトクイズ
#2754()は元々 笑 がなくて、笑えないという意味らしいですが、最近だと()でネタという意味もあるので、そもそものネタ解答にマジレスするのが野暮だと思います。
スプライトを用意して、無限個のコスチュームを用意します()
(略)
やっぱりマジレスにも寛容にならないと…!
Last edited by tabakenn (Dec. 7, 2023 09:46:38)
- rinasama_tabasi
-
Scratcher
100+ posts
Scratchスクリプトクイズ
問題です。できましたが長いので(() + ())を使わずに、以下の続きにスクリプトをつけたして、足し算が出来るようなスクリプトにしてください。定義 (足される数)+(足す数)を求める(想定解は何個もありますので、もうこの問題が答えられていても、頭をひねって考えてみてください!)
プロジェクトにおいておきます。
(全加算器です)
https://scratch.mit.edu/projects/936480039/
あっ….マイナスの数無理やん
(あと少数)
直してきます
Last edited by rinasama_tabasi (Dec. 7, 2023 05:51:51)
- kouhei-1
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
擬似乱数を
を使わずに作ってください。
の先を作ってください。
50block以内でお願いします
(() から () までの乱数)
((any v) 番目( [list v] ) :: list)
[どこか v] へ行く
を使わずに作ってください。
定義 [最小値]から[最大値]までの乱数を変数nに代入
の先を作ってください。
50block以内でお願いします
- newmomizi_txt
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
#2772
おまけ(本物の乱数ver)
定義 乱数 (最小値) (最大値)(最大値)-(最小値)<2^31-1 の場合に動作します。また、「乱数」にはあらかじめ2147493647で割れない整数を入れておく必要があります。(線形合同法)
[乱数 v] を (((48271) * (乱数)) を (2147483647) で割った余り) にする
[n v] を ((最小値) + ((乱数) を (((最大値) - (最小値)) + (1)) で割った余り)) にする
おまけ(本物の乱数ver)
定義 乱数 (最小値) (最大値)
[n v] を (0) にする
[i v] を (0) にする
(((((最大値) - (最小値)) + (1)) の [log v]::operators) の [切り上げ v]::operators) 回繰り返す
[乱数さい(20面ダイス)を振り、その出目を入力してください] と聞いて待つ
[n v] を ((答え) * ((i) の [10^ v]::operators)) ずつ変える
[i v] を (1) ずつ変える
end
[n v] を ((n) を (((最大値) - (最小値)) + (1)) で割った余り) にする
[n v] を (最小値) ずつ変える
Last edited by newmomizi_txt (Dec. 7, 2023 23:42:14)
- dj-YakoChite
-
Scratcher
100+ posts
Scratchスクリプトクイズ
タイマーの細かいところを利用してみました.
追記:#2778に修正しました.
定義 [最小値]から[最大値]までの乱数を変数nに代入
[n v] を (((最小値) + (((最大値) - (最小値)) * (((タイマー) * [100]) を (1) で割った余り))) を四捨五入) にする
追記:#2778に修正しました.
Last edited by dj-YakoChite (Dec. 7, 2023 14:54:01)
- abee
-
Scratcher
1000+ posts
Scratchスクリプトクイズ
#2775
タイマーを使った場合、なんらかの規則性が起こり、一様乱数にならない可能性があります。数千、数万回程度試行して偏りがないか検証することをお勧めします。
タイマーを使った場合、なんらかの規則性が起こり、一様乱数にならない可能性があります。数千、数万回程度試行して偏りがないか検証することをお勧めします。
Last edited by abee (Dec. 7, 2023 22:21:46)
- dj-YakoChite
-
Scratcher
100+ posts
Scratchスクリプトクイズ
#2776の指摘を受けて#2775のプログラムを試行してみた結果,
0 ~ 100 の乱数を生成しようとしたところ,一の位がすべて0になっていました.
そのため,下のように修正をしました.
(プログラムが見切れる端末がありそうなので,minは最小値,maxは最大値,定義ブロックと変数ブロックは省略)
ぱっと見 規則性は見えず,相加平均は約49305.73で (最大+最小)/2 ぐらいだったので,成功と言えるでしょう.
0 ~ 100 の乱数を生成しようとしたところ,一の位がすべて0になっていました.
そのため,下のように修正をしました.
(プログラムが見切れる端末がありそうなので,minは最小値,maxは最大値,定義ブロックと変数ブロックは省略)
(((min) + (((max) - (min)) * ((((13) の [10 ^ v]) * ((タイマー)を (1) で割った余り)) を (1) で割った余り))) を四捨五入)最小値を0,最大値を100000とし,3000回実行して(3000回キーボードを連打しました.疲れた)リストに記録したところ,
ぱっと見 規則性は見えず,相加平均は約49305.73で (最大+最小)/2 ぐらいだったので,成功と言えるでしょう.
Last edited by dj-YakoChite (Dec. 8, 2023 06:04:32)
- Jinenjo_000
-
Scratcher
100+ posts
Scratchスクリプトクイズ
>> #2777
そのプログラムは、ループに入れて連続で実行する場合と、1回ずつ手動で実行する場合で結果が変わると思います。
前者の場合は確かにabeeさんが指摘されているように規則性が起こりそうです。後者の場合はキーボードを押すタイミングに大きく依存するでしょう。
#2776の指摘を受けて#2775のプログラムを試行してみた結果,#2775の乱数を検証したときも、キーボードを連打して生成しましたか?
0 ~ 100 の乱数を生成しようとしたところ,一の位がすべて0になっていました.
そのため,下のように修正をしました.
(中略)
最小値を0,最大値を100000とし,3000回実行して(3000回キーボードを連打しました.疲れた)リストに記録したところ,
ぱっと見 規則性は見えず,相加平均は約49305.73で (最大+最小)/2 ぐらいだったので,成功と言えるでしょう.
そのプログラムは、ループに入れて連続で実行する場合と、1回ずつ手動で実行する場合で結果が変わると思います。
前者の場合は確かにabeeさんが指摘されているように規則性が起こりそうです。後者の場合はキーボードを押すタイミングに大きく依存するでしょう。