ひとりも見捨てないことを、あきらめない

学校教育、社会教育、数学、技術家庭科、Youtube、EdTech、ICT、プログラミング、その他

AtCoder Beginner Contest 143 問題A 10/22 火

AtCoder Beginner Contest 143 問題A 10/22 火

2019/10/19(土)に実施されたコンテストに参加してみました。
それぞれの問題について、考察してみます。

f:id:takase_hiroyuki:20191020103642p:plain

 

感想。過去、何回かコンテストに参加したなかでも、比較的簡単な内容だなあと感じました。おそらく、入出力の基本がわかっているかどうかを調べる問題なのだろうと、予想しています。


問題Aに対する解答

#include <bits/stdc++.h>
using namespace std;

int main() {
  int A, B, C;
  cin >> A >> B;
  C = A - B - B;
  if (C < 0) {
    C = 0;
  }
  cout << C << endl;
}

 

f:id:takase_hiroyuki:20190921052521p:plain

 

#フィットネス 2019/10/20 -- 10/21 月

#フィットネス 2019/10/20
現在の走行距離の合計、約448km 

ライイング・トライセップス・エクステンションの負荷を、10kgから12.5kgにあげてみました。ただし、最後の10回のみです。ヒジに負担がかかるので、慎重に増やしていきます。

キャット&ドッグ 3回x3セット
ラット・プル 32kgx10回x3セット
ベンチ・プレス 20kgx10+25kgx7+30kgx3+42kgx10回+45kgx20回

トレッドミル(25分間) 2,630m⇒2019年の累計 118,330m

ハムストリングス 23kgx10回x3セット
レッグ・エクステンション 39kgx10回x3セット
アダクション 49kgx10回x3セット
アブダクション 43kgx10回x3セット
プレス・ダウン 34kgx10回x4セット
アーム・カール 27kgx10回x4セット
レッグ・プレス 57kgx10回x3セット
腹筋 1秒x20回x3セット
ライイング・トライセップス・エクステンション 12.5kgx15回x3セット
ダンベル(内側) 10kgx10回x3セット
ダンベル(外側) 4kgx20回x3セット
フロント・プル 32kgx10回x3セット

バイク(25分間) 9,800m⇒2019年の累計 330,010m

#はてなブログ #一人も見捨てないことをあきらめない 

f:id:takase_hiroyuki:20190519162425p:plain

 

AtCoder Beginner Contest 143 参加記録 10/20 日

 10月19日、土曜日に標記のコンテストがありました。

 A問題からF問題まで合計6問で、満点は2100点。A:100点、B:200点、C:300点、D:400点、E:500点、F:600点です。

 過去2回は、A問題とB問題を解いて時間切れでしたので、さらに上をねらって挑戦しました。結果は、A問題からD問題までの4問で正答し、合計点数は 1,000点になりました。

 少しずつ、慣れてきたかな、という印象です。

f:id:takase_hiroyuki:20191020084742p:plain

f:id:takase_hiroyuki:20190921052521p:plain

 

通信制「中学校」と地域振興、その2 10/19 土

 前回、通信制「中学校」と地域振興について、「地域のセンター」が生まれるということを述べました。

 上の記事で述べたことは、「中学生と御高齢の皆さんが集まるようなセンターができれば、その場が地域振興の核になるだろう」という趣旨です。

 本日は、「中学生と御高齢の皆さんだけでなく、働き盛りの人たちにとっても有意義であり、中学生にとっても将来の自分の就職にプラスになる」ということを述べようと思います。

 通信制の学校は、現在の教育関連法規の仕組みを最大限に利用して、さまざまな新しい取り組みをしています。

 知識・理解については、ひとりひとりの生徒の力量に合わせながら、効率よく、着実に理解できるような仕組みがあります。しかしながら、最も大切なことは(最も大切だと高瀬が考えることは)、「これらの知識を利用しながら、多くの人と協力しつつ課題に取り組んで、課題を解決していく学習」だと思います。このような学習の仕方を、「問題解決型学習」、「問題にもとづく学習」、プロジェクト・ベースト・ラーニング( Problem Based Learning、略してPBL)と呼んでいます。

 通信制の学校においても、PBLは積極的に取り入れられています。単に「生徒と学校」の関係だけでなく、Slack や Zoom 等のさまざまなツールを用いて、生徒同士が交流しながら問題を解決していくという取り組みが、実際に行われています。高等学校においては、さまざまな分野について、相当に高度な内容を含めて、課題に取り組んでいると思われます。

 では、通信制の中学校では、どのような課題がPBLの課題として適切なのでしょうか。

 私は、中学生の発達段階を考えると、やはり「身近な課題」、「肌で感じることができる課題」に取り組むのが適切だろうと思います(もちろん、さらに高度な内容に挑戦することは自由です)。そうすると、その題材は、先日の述べた「地域のセンター」で見つけることになるだろうと思います。

 念のために書きますが、地域のセンターは必須ではありません。それぞれの地域に、さまざまな通信制の学校に通う、雑多な中学生が増えてくると、自然発生的に地域のセンターのようなものはできてくるだろうし、またそういうものを少しずつでも、できるところから整備しなければならないだろうと思います。

 しかし、いずれにしても、そういう「人の集まる場所」はできてくるでしょう。生徒たちは、さまざまな人達が集まる場所で、自分たちの「課題」を見つけていくだろうと思います。

 これらの課題は、「その地域に特有の、その地域の人たちのためになる課題」です。その地域の人たちが必要としているサービスです。つまり、これらの課題は、そっくりそのまま「地域に根ざした起業のアイデアにつながるだろうと思われます。会社組織にすれば、そのまま地域の子どもたちが働く場になっていくだろうと思います。

 地域のセンターで子どもたちが学習し、地域のセンターで課題を見つけ、その課題を解決するために仕事をつくりだしていけます。これは、地域に根ざした学習の場があるからこそ、できることです。

 いままでの「学校」では、子どもたちが直接、地域の課題に触れることは難しく、何らかのフィルターを通して触れることがほとんどでした。通信制の「中学校」であれば、地域の子どもたちが、直接、地域の課題に触れることが可能だろうと思います。

f:id:takase_hiroyuki:20191019084002p:plain

 

通信制「中学校」と地域振興、その1 10/17 木

 通信制学校大手の「N高校」が、中等部の開校を発表しました。
 私は、単に学校が開校しただけでなく、全国各地の「地域」にとって、大きな意味があると考えています。その理由は以下のとおりです。 

f:id:takase_hiroyuki:20191019084554j:plain

 N高校の中等部は通信制の学校ですから、 生徒たちは基本的には自宅で学習することになります。しかし、一年中、ずっと自宅に閉じこもっているということは考えられません。スクーリングの際には、学校に関連した施設等に出かけていくでしょうけれど、普段は、地域の図書館や公民館などの施設を利用して、勉強するだろうと思われます。

 最初のうちは、N中等部の生徒はごく少数ですが、さまざまな状況を考えると、一般の中学校に進学せずにN中等部に進学する生徒は、どんどん増えていく可能性があります。もちろん、N中等部だけでなく、他の通信制の「中学校」がさらに開設されることも考えられます。

 

 たとえば、東京からあまり離れていない、千葉県市川市の中学生の人数は、次のとおりです。

出典:http://www.city.ichikawa.lg.jp/common/000318504.pdf

f:id:takase_hiroyuki:20191019090110p:plain

 ごらんのとおり、合計で9,400人ほどの中学生がいます。いまから数年後にこのうちの5%から10%が通信制中学に通うようになったとすると、500人から1000人程度の中学生が、「ふだんから、勉強のために、日中、市内をあちこちに移動する」という状況が生まれます。

 通信制高校であれば、生徒は義務教育を終えていますので、ある程度、自己責任でも大丈夫でしょうが、中等部となると、小学校を卒業したばかりの子どもたちも含まれてきます。子どもたちの安全のことを考えると、いくら通信制学校の子どもの安全は、家庭の責任」といっても、何らかの対策が必要になってくるだろうと思います。また昼食の準備などについても、公的な仕組みがあれば、親御さんとしても助かることでしょう。

 前述したとおり、通信制学校はN中等部だけではありませんから、このような仕組みをひとつの学校が請け負うのは適切とは思えません。おそらく自然発生的に、「子どもたちが集まって、一緒に勉強する場所」が生まれてくるだろうと思います。

 その場所に来るのも自由、そこから自宅に戻るのも自由。年齢の違う子どもたちが、ひとりで勉強したり、一緒に勉強したりという場が生まれるだろうと思います。当然、大人の手も必要ですから、地域の比較的高齢の方に、半分ボランティアで面倒をみていただくことになるかも知れません。そうすると、大人(老人?)と子どもとが、一緒に学習する場になります。

 学習に関しては、通信環境の整備が必須です。まずは、生徒たちが学習のためにWifi等を利用しますが、それと同時に、御高齢の皆さんにも子どもと一緒にWifiを利用していただくことになります。そうすると、スマホやインターネットなど、御高齢の皆さんには「高い壁」だったものが、子どもたちのチカラも借りて、みんなが使えるものになっていくだろうと思います。

 さらに保健所と連家すれば、子どもたちも高齢の人たちも、そういう場で健康面に関する簡単なケアが受けらるようになると思います。

 このような学習・健康・交流としての地域センターが生まれれば、それを核にして地域の活性化が進んでいくだろうと考えています。

 

⇒ 通信制「中学校」と地域振興、その2
http://manabiai.hatenablog.com/entry/2019_10_19

地域での課題の発掘、地域での起業についてです。

#通信制中学 #地域振興 #考えたり悩んだり
#はてなブログ #ひとりも見捨てないことをあきらめない

 

f:id:takase_hiroyuki:20191019084002p:plain

 

打楽器14重奏「情熱大陸」 10/16 水

Youtube でみつけました。

題名のとおり「情熱大陸」の14重奏なのですが、ぜんぶ一人で演奏していて、多重録音で実現しています。メロディはマリンバビブラフォンの鍵盤打楽器。いろいろな種類の楽器が出てきて、とても楽しい演奏です。

f:id:takase_hiroyuki:20191014173947p:plain

 

いじめあっせん事案。10/15 火

標題は短すぎる表現で、正確には、

「いじめあっせん事案における被申請人の業種」

です。独立行政法人労働政策研究・研修機構の調査研究成果です。

正式な題名は、「職場のいじめ・嫌がらせ、パワーハラスメントの実態」です。2011年度の調査ですので、現在の状況に完全に一致しているとは言えないと思いますが、おおまかな傾向は変わらないだろうと思います。

この調査の結果は、厚生労働省の「働きやすい職場環境形成事業」及び「個別労働紛争解決援助」において活用予定とのことですが、実際にどのように活用されたのかが興味があります。

⇒まだ調べていないので、今後、調べてみます。

f:id:takase_hiroyuki:20191012071643p:plain



フィットネス 2019/10/13 現在の走行距離の合計、約435km

#フィットネス 2019/10/13 現在の走行距離の合計、約435km 

前日、首都圏に台風が来たので、フィットネス・ジムは休業でした。
この日は、午後1時にオープンしましたが、スタッフの皆さんも大変だっだろうと思います。

キャット&ドッグ 3回x3セット
ラット・プル 32kgx10回x3セット
ベンチ・プレス 20kgx10+25kgx7+30kgx3+42kgx10回+45kgx20回
 
トレッドミル(25分間) 2,700m ⇒2019年の累計 115,700m

ハムストリングス 23kgx10回x3セット
レッグ・エクステンション 39kgx10回x3セット
アダクション 49kgx10回x3セット
アブダクション 43kgx10回x3セット
プレス・ダウン 34kgx10回x4セット
アーム・カール 27kgx10回x4セット
レッグ・プレス 57kgx10回x3セット
腹筋 1秒x20回x3セット
ライイング・トライセップス・エクステンション 10kgx15回x3セット
ダンベル(内側) 10kgx10回x3セット
ダンベル(外側) 4kgx20回x3セット
フロント・プル 32kgx10回x3セット
 
バイク(25分間) 10,200m ⇒2019年の累計 320,210m

 

f:id:takase_hiroyuki:20190519162425p:plain

 

2019年10月13日、台風一過の江戸川、富士山、スカイツリー 10/13日

 前日の台風では、各地に大きな被害が出ました。被災した皆様には、こころからお見舞い申し上げます。

 午前7時前に、自分の職場の様子を見に行きました。その帰りに、江戸川から撮影した映像です。


2019年10月13日、台風一過の江戸川、富士山、スカイツリー

 

f:id:takase_hiroyuki:20191013113525j:plain

 

市川市ハザードマップ。10/12 土

千葉県市川市ハザードマップをながめていました。

京成電鉄の沿線が、帯状に白くなっています。

「むかし、砂丘だったところなんだろうなあ」と思いました。

地理とか、歴史とか、理科(地学)とか、こういうところで役に立ってくるんだろうなあと感じました。

f:id:takase_hiroyuki:20191012052009p:plain

 

コンビニ閉店。大賛成。10/11 金

近くのコンビニの店長さんと知り合いです。
「休まないのですか?」とお聞きしたところ、「すいません。夕方6時から深夜2時くらいまでは閉店します」とのこと。「ぜひ、ぜひ、休んでください」とお伝えしました。
コンビニで働く皆さんも、御自分の生命と生活を守っていただきたいです。

f:id:takase_hiroyuki:20191006075503j:plain



コンピュータの使い方 10/10 木

 現状では「公立学校のコンピュータ」には、数々の制限があります。

 Google 検索ができない。Youtube が視聴できない。新しいソフトウエアやアプリをインストールできない。コンピュータと外部装置(USBやBluetoothを使用するもの等)を接続できないなどです。

 こうなってくると、数少ない選択肢が「それなりにちゃんと閲覧できる Web サイトを利用する」ということになるのですが、通信回線があまり太くないので、ひとクラス35人程度がアクセスすると、たちまち画面が凍結してしまいます。

 私は、「全員が一斉に同じことをする」ということを、あきらめた方がいいと思います。児童・生徒の活動に時間差が生じるように工夫すれば、みんながそれぞれ学習しつつ、しかし回線がふさがることもないだろうと思います。

 現状では、さまざまな制約があるのですから、やむを得ません。児童・生徒の学習をきちんと成立させるための方策として、「それぞれが個別最適化された学習過程を経て、学習課題に取り組む」というのが有効だと思います。

f:id:takase_hiroyuki:20191010210225p:plain

 

法令等で学校に義務付けられている業務等 10/09 水

 「学校における働き方改革」に関連して、「法令等で学校に義務付けられている業務等」の一覧が、文部科学省から出されています。

 比較的若い教員の皆さんにとっては、「こんな仕事があるんだなあ」という勉強になると思います。また、中堅・ベテランの皆さんにとっては、自分の職務を振り返るきっかけになると思います。

 公立の学校に勤務する教職員にとっては、これらの業務は「かならずやらなければならない業務」であって、「面倒くさいからやりたくない」とか「働き方改革があるから、やらないことにする」とか、そういうことは許されません。

 参考になれば、幸いです。

■引用

法令等で学校に義務付けられている業務等(一覧)

※本資料は、法令等で学校に義務付けられている業務を便宜的に整理して一覧にしたものである。ここでいう「法令等」には、文部科学省所管以外の法令も含まれる。また、国が出している通知等(実質的に義務付ける内容を含むもの)も含まれる。ここでいう「学校」は、公立の小学校及び中学校を念頭に置いている。また、学校の設置者は含まれない。ここでいう「義務付けられている」には、努力義務であるものも含む。なお、義務付けがなされていない業務についても教員の勤務実態を勘案して記載しているものもある。

※ア.及びイ.の列は、教員勤務実態調査(平成28年度)に基づいて作成しており、イ.列の数値(勤務実態調査の結果)は、ウ.~オ.に記載の業務(法令等で学校に義務付けられている業務)にかかる時間の合計ではないことに留意すること。

※カ.の列は、教職員の業務実態調査(平成26年度)において、学校現場における業務ごとの従事率及び負担感率の状況を調査したものであり、その業務内容は、ウ.の事項を含むが完全に一致していない場合もあることに留意すること。

従事率:従事状況に係る設問に関して、「主担当として従事している」「一部従事している」と回答した数の和の全有効回答数に対する割合

負担感率:負担感に係る設問に関して、「負担である」「どちらかと言えば負担である」と回答した数の和の全有効回答数に対する割合

f:id:takase_hiroyuki:20191006190227p:plain

 

AtCoder Grand Contest 039 参加記録 問題Aについて 10/08 火

 標記のコンテストに参加しました。

 結果については、このページをご覧ください。

 さて、私は「問題A」しか解けませんでしたが、解いていて「この問題は、よくできているなあ」と感心しながら解いていました。そういう意味では、とても面白かったです。

 具体的な問題は、次のとおりです。

■問題文
文字列Sが与えられます。
SをK回繰り返してできる文字列をTとします。
Tの文字をひとつ選んで他の文字に書き換える操作を繰り返すことでTのどの隣り合う2文字も相異なるようにするとき、必要な操作の回数の最小値を求めてください。

■制約
1≤|S|≤100
Sは英小文字からなる
1≤K≤10^9
Kは整数である

 

いろいろやってみたことを、以下にメモします。

まず、S は100文字以下の文字列ですので、たとえば、次のような文字列を用意しました。

S="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"

これを、最大で「10の9乗」回、つまり、10億回、繰り返します。そうすると、文字列の長さは、最大で1000億文字になります。1000億の文字が並んでいる文字列というのは、すごい長さだなあと思いました。でも、まあ、つないでみないと始まりませんので、とりあえず10億回連結してみました。

 そうすると、コンピュータはとても賢いので、ちゃんと10億回連結してくれるのですが、この時点で時間が1.5秒くらいかかってしまいました。今回の問題では制限時間は2秒です。したがって、対象となる文字をそのまま扱ったのでは問題は解決できないということが分かりました。

 ということは、文字列を連結せずに、元の文字のままで解析して、答えを出す必要があります。きっと、いろいろなパターンがあって、それぞれに対してアルゴリズムを考えなくてはならないんだろうなと予想しました。

 この時点で、サンプルとして与えられている入力文字(3種類あります)を見てみました。すると、この3種類のサンプルが、とてもよくできていて、回答にたどり着くための誘導問題になっていることがわかりました。

 つまり、サンプルと同じように、3つの場合に分ければよいことがわかりました。具体的には、最初に与えられた文字列が、

 

ア、文字列全体が1種類の文字だけでできている場合

 例)aaaaaaaaaaaaaaaaa

イの1、文字列が2種類以上の文字でできていて、しかも最初と最後の文字が異なっている場合

 例)aaaaaaaaabbbbbbbb

イの2、文字列が2種類以上の文字でできていて、しかも最初と最後の文字が同じ場合

 例)aaaaaaaaabbbbbbba

 

の3通りです。 

 この結果をもとに作成したプログラムが、次のようなものです。やっつけ仕事でゴチャゴチャのコードになっています。その点は、ご了承ください。

#include <bits/stdc++.h>
using namespace std;

int main() {
 string s;
 int64_t k;
 cin >> s;
 cin >> k;

 int sl = s.size();

 char c; // 文字列が「一種類の文字だけでできているか」を調べる
 c = s.at(0);
 int x1=1;
 for (int i=1;i<s.size();i++) {
  if (c == s.at(i)) x1++;
 }

 if (x1 == s.size()) { // 一種類の文字だけでできている場合
  int64_t tmp;
  tmp = *1 * k) / 2; // 全部つなぐと文字数がわかる。置き換え数は、文字数を2で割れば求められる。
  cout << tmp;
 } else {

  vector <int64_t> aa(s.size()); // それぞれの文字が何個続いているかを格納する配列変数
  vector <int64_t> bb(s.size()); // 結果的に何文字置き換えればよいかを格納する配列変数

  char c;
  int last_i;
  last_i = 0;
  c = s.at(0); // 最初の文字はこれ
  aa.at(0) = 1;
  for (int j = 1; j< s.size(); j++ ) {
   if (s.at(j) != c) { // もし違う文字が出てきたら次のハコに移動する
   last_i++;
   c = s.at(j);
  }
  aa.at(last_i)++; // 連続している文字数をカウントする
 }

 if ( s.at(0) == s.at(s.size()-1) ) { // 最初と最後が同じ場合
  bb.at(0) = aa.at(0) / 2; // 一番最初の部分
  for (int i=1; i<last_i; i++ ) {
   bb.at(i) = (aa.at(i)/2) * k; // 途中は繰り返しになるので k 倍する
  }
  bb.at(last_i) = aa.at(last_i) / 2; // 一番最後の部分
  bb.at(last_i+1) = *2 / 2) * (k-1); // 最初と最後が同じなので連結すると「長い文字列」ができる。その文字列の長さを 2 で割ると1回あたり置き換え数が出てくる。連結部分は k-1 個あるので、(k-1)倍する

 } else { // 最初と最後が違う場合
  for (int i = 0; i < s.size(); i++) {
  bb.at(i) = (aa.at(i)/2) * k; それぞれの文字数を2で割ると置き換え数が出るので、単純にk倍する。最初と最後の文字が違うので、上のような「連結」は発生しない。
  }
 }

 int64_t tmp;
 tmp = 0;
 for (int i = 0; i < s.size(); i++) { // 置き換え数をすべて合計する
  tmp = tmp + bb.at(i);
 }
 cout << tmp << endl; // 答えを出力する
 }
}

 



f:id:takase_hiroyuki:20190921052521p:plain

 

*1:int64_t)(s.size(

*2:aa.at(0) + aa.at(last_i