ベルク・カッツェ |
25と互いに素となる、1個先、2個先・・・12個先の10通り。
ちなみに13個先からは12個先と同じ。 |
2月11日(木) 0:07:17
50131 |
ベルク・カッツェ |
ちょっと訂正。
13個先からは12個先までと同じ。 |
2月11日(木) 0:09:17
50132 |
紫の薔薇の人 |
#50131
全く同じです。 オイラーのφ関数を使って、2で割る。 25*(1-1/5)/2=10 // |
2月11日(木) 0:10:45
50133 |
ヤッコチャ |
25個全ての点を通らないとダメなのですか? |
2月11日(木) 0:12:14
50134 |
ドリトル |
また引っかかりました。
「全て」を軽視して、12通りと答えてしまいました。 |
2月11日(木) 0:14:17
50135 |
今年から高齢者 |
全部の点を通らないといけなかったのですね
5の場合も、10の場合も元のところに戻ってはくるのですが....。 |
2月11日(木) 0:14:36
50136 |
ドリトル |
あれ、でも、全てとは書いていませんね…
書き足した方が良いのでは? |
2月11日(木) 0:15:39
50137 |
紫の薔薇の人 |
#50137
そうですね。 実例を6角形で与えておけば、出題意図が伝わっていたかも。 |
2月11日(木) 0:22:28
50138 |
ベルク・カッツェ |
確かに、全部の点を通らないといけないとは書いていませんね。
勝手にそうだと思って答えていました。 |
2月11日(木) 0:32:54
50139 |
EG |
私も最初「すべて通る」と書いてないので12通りにしていました。正五角形でも「図形」にはあたるので・・・
>50126駒場東邦の問題ですが, そもそも今年は2021=43×47という素数の積なので,これ自体中学受験塾ではおそらく指導しています。 駒場東邦の入試問題中でもこれ以前に複数回2021が登場していますね。 そういった意味で,2021がわかるのはデフォルトでしょう。 そこに47×101をたして6768も比較的簡単に導けます。 問題は2桁数が降順になるときで,これは2021→2019や3536→3534のように昇順の数と比べて2不足します。 101÷47=2あまり7より,公差101の数列ではあまりが7ずつずれていくので, 2021→2019で2不足している状態から,7×7=49ずれたときに,差し引き47のあまりとなり,わりきれると考えました。 つまり,2019+101×7=2726ですね。最後は昇順の時と同じく7473を見つけて終了。 ・・・だと思います(私は)。でももっといい解き方もありそうですね。 |
2月11日(木) 0:33:41
50140 |
algebra |
(25−1)/2=12 1から12までの整数の中で、25と互いに素なものは10個である。 |
2月11日(木) 0:53:10
50141 |
アルファ・ケンタウリ |
お久ぶりです。
花粉も飛んできて、くしゃみ止まらない・目が純潔・鼻水止まらない・・・ 今日塾がなかったので、2時間弱寝ました。それでも何とか起きている状態。 頑張って眠気と戦いながら、書きます。 隣り合う点までの中心角を□度とすると、 □×25=N×360 Nが1から順に調べていくと、 N=12 □=172.8 N=13 □=201.6 となるが、N=13は、N=12の順番が逆向きに なっているだけで、点を結んだ図形としては同じ。 同様に考えると、N=14のときはN=11の逆向き。 以降、これが続く。 なので、N=12までだが、N=5と10のとき、 □が72度と144度で、途中で元の位置に戻るので、 これら2つの場合は除く。 答え.10 |
京都小学5年 宇宙大好き
2月11日(木) 1:34:43
50142 |
「数学」小旅行 |
最初、12にしてました。 |
2月11日(木) 2:09:19
50143 |
アルファ・ケンタウリ |
#50142
入力ミスを訂正します。 N=13 □=201.6度 ⇒ □=187.2度 N=12の場合の □=172.8度とたすと360度。 |
2月11日(木) 2:12:01
50144 |
みかん |
今回の問題、円周を10等分でやったことはあるのではないでしょうか。
九九表で5の段の末尾を順に結ぶ→0と5が交互なので、一直線で0と5を往復 2の段だと2・4・6・8・0を繰り返す→正五角形になる など。 #50140 2021=43×47 は西暦ネタということで受験生は把握しているでしょう。 しかし、そのことを問題を解く際に当たり前のこととして使っていいのか? ということが頭をよぎりました。計算式などを書かせる設問だけに、模範解答と しては認めたくないなぁ、と。 入試ではほとんどが「2021=43×47 だから、2021は47の倍数」 と書いた程度で終わっているような気がします。正解のうちの1つではあるので、 2点ぐらいはもらえるでしょうか? |
2月11日(木) 2:26:27
50145 |
あめい |
中学校で繋いでできる図形の内角の和(5点なら五角形540度、星形180度)の規則性(?)を調べたことがありました。知的好奇心の体力もなく25まではとてもいきませんでしたが、先輩に教えてもらった内角の和の求め方が、鉛筆をその図形に沿って動かしながら、内角の分ずつ回転させていき、元の位置まで戻るのに何回転しているかで調べる方法(5角形なら1回転半540°、星形なら半回転180°)、変形とか計算とか使わず面白かったです。 |
静岡県
2月11日(木) 6:59:40
50146 |
くらげ |
偶数角形で実験してみると規則が見えました。 |
2月11日(木) 8:05:30
50147 |
にこたん |
25と互いに素なもので、足して25になるものを1つとしました。 |
超ど田舎
2月11日(木) 8:07:29
HomePage:気ままに 50148 |
くらげ |
3桁で最も約数の多い整数は何でしょう。 |
2月11日(木) 10:58:43
50149 |
紫の薔薇の人 |
某所ではやっていた問題のアレンジ。
AB=3、BC=21、∠B=90°の△ABCのBC上にBD=4となる点Dを取る。この時、∠ADB+∠ACBは? 答はtanの加法定理で出るけど、答をヒントに、別のよくある問題に変換すると結果だけは、小学生にも説明できそう。 AB=1、BC=3、BD=2の場合は、おなじみの問題。 |
2月11日(木) 12:17:47
50150 |
ごくつぶし |
32個の840か? |
2月11日(木) 15:15:29
50151 |
ヤッコチャ |
#50140
2021が47の倍数と分かれば、4747も47の倍数なので降順のものの1つは 4747-2021=2726 と求められますね。 |
2月11日(木) 17:05:19
50152 |
量子論 |
#50150
図形の埋め込みと相似で求まるので、 確かに小学生にもできるかも。 2:1直角+3:1直角は、もうおなか一杯でしょうから、 こういう変化球もありかと。 |
2月11日(木) 19:18:19
50154 |
ゴンとも |
#50149
>3桁で最も約数の多い整数は何でしょう。 最もだから1個(多分)ですよね。3桁の次は7桁で8648640で448個 さて次は何桁でどの数でしょうか?桁数が大きくなると プログラムでも素因数分解が大変で・・・ |
豊川市
2月11日(木) 21:45:21
MAIL:fttnm528@ybb.ne.jp 50155 |
くらげ |
#50151
正解です。840です! |
2月12日(金) 9:06:26
50156 |
くらげ |
#50155
さすがに4桁以上になるとしんどいですよね・・・。 2桁なら比較的見当がつきやすく、3桁なら全部調べるのはしんどいけれども実験していくうちにどんな数なら約数が多いのかわかってくる点で算数教育的に有用なのではと思っています。 自作問題と呼べるようなものではないですけどね(笑) |
2月12日(金) 9:48:10
50157 |
くらげ |
約数の「コスパ」で考えると素因数に小さい素数を持っている方が有利ですが、累乗を考えていくと増え幅が減っていくのでそこの均衡点を考えていくような問題です。 |
2月12日(金) 9:49:42
50158 |
紫の薔薇の人 |
#50154
>図形の埋め込みと相似で求まるので、 >確かに小学生にもできるかも。 お察しの通り、 3:4直角と、1:7直角を並べて、隙間に、直角二等辺三角形を埋め込みます。 ∠ADB+∠ACB=45度 // |
2月14日(日) 22:49:47
50159 |
「数学」小旅行 |
#50059 自己レスです。
n=7の場合の答えがやっと出てきました。 #50057 いちごみるく様と同じ答えは出ましたが、 かかった時間は比べるべくもなく、いちごみるく様の75秒に対して、 私の場合、1719245.9044101秒 すなわち、 19日21時間34分5.9044101秒 CPU使用率25%で頑張ってくれました。 パソコンさん!お疲れさまでした。 |
2月15日(月) 7:03:48
50160 |
おすまん |
12の呪縛からやっと逃れることができました… (^^; |
2月15日(月) 22:02:02
50161 |
いちごみるく |
#50160
私ruby読めないので教えてほしいのですが 「数学」小旅行さんの方法ってどこまで対称性を考慮してますか? その辺りをうまいことやれば大幅に時間短縮できるかもしれません。 例えば私の#50057のやり方だと 1,2,3,4,5 2,?,?,?,? 3,?,?,?,? 4,?,?,?,? 5,?,?,?,? は確定させた上で一行ごとに再帰させています。 これで求めた答えにN!*(N-1)!を後で掛け合わせています。 |
2月17日(水) 21:56:14
50162 |
いちごみるく |
というわけというで1マスごとに再帰で30秒
#include "bits/stdc++.h" using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define rep2(i,l,r)for(int i=(l);i<(r);++i) #define endl "\n" long long N, M, subM; int Board[7][7]; long long dfs(const int &d) { if (d == ((N - 1)* (N - 1) - 1)) { return 1; } int x = d / (N - 1) + 1; int y = d % (N - 1) + 1; long long ret = 0; rep(i, N) { int num = i + 1; bool b = true; rep(j, N) { if (num == Board[x][j]) { b = false; break; } } if (!b) { continue; } rep(j, N) { if (num == Board[j][y]) { b = false; break; } } if (!b) { continue; } Board[x][y] = num; ret += dfs(d + 1); Board[x][y] = 0; } return ret; } int main() { cin >> N; clock_t start = clock(); M = 1; rep(i, N) { M *= (i + 1); } subM = M / N; rep(i, N) { Board[0][i] = i + 1; Board[i][0] = i + 1; } long long ans = M * subM; ans *= dfs(0); cout << ans << endl; clock_t end = clock(); const double time = static_cast<double>(end - start); printf("time %d[ms]\n", (int)time); } |
2月17日(水) 22:55:37
50163 |
いちごみるく |
#50057を改良したもの20秒(7*7)
#include "bits/stdc++.h" using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define rep2(i,l,r)for(int i=(l);i<(r);++i) #define endl "\n" long long N, M, subM; int memo[5040][7]; bool Check[7][7]; long long dfs(const int &d) { if (d == (N - 2)) { return 1; } long long ret = 0; rep2(i, (d + 1)*subM, (d + 2)*subM) { bool b = true; rep2(j, 1, N) { if (Check[j][memo[i][j]]) { b = false; break; } } if (b) { rep(j, N) { Check[j][memo[i][j]] = true; } ret += dfs(d + 1); rep(j, N) { Check[j][memo[i][j]] = false; } } } return ret; } int main() { cin >> N; clock_t start = clock(); M = 1; vector<int>v; rep(i, N) { v.push_back(i); M *= (i + 1); } subM = M / N; int now = 0; do { rep(i, N) { memo[now][i] = v[i]; } now++; } while (next_permutation(v.begin(), v.end())); rep(i, N) { Check[i][i] = true; } long long ans = M * subM; ans *= dfs(0); cout << ans << endl; clock_t end = clock(); const double time = static_cast<double>(end - start); printf("time %d[ms]\n", (int)time); } |
2月17日(水) 22:56:26
50164 |
いちごみるく |
#50163
before:if (d == ((N - 1)* (N - 1) - 1)) { after:if (d == ((N - 1)* (N - 2))) { でこちらも20秒まで落とせますね |
2月17日(水) 23:18:25
50165 |