はてなキーワード: 整数とは
自動で安価をつけて返信するプログラムでもこんなに長く複雑になる(一部抜粋)
/**************************************
以下のCSV_DIR, FILE_PATHS, SETTINGSを書き換えてね。 <h3>o- *************************************/</h3>
//CSVファイルが置かれてるディレクトリのパス。投稿前にエラー出たら大体ここの設定ミス。 例:"C:\\Users\\sakuraimasahiro\\Documents\\iMacros\\Macros\\rentou\\";
'C:\\Users\\USER\\Desktop\\iMacros\\Macros\\rentou\\';
//ファイルのパス。CSVは絶対パスで、拡張子も必要。iimは相対パスでよく、拡張子不要。
const FILE_PATHS = {
textCsv: CSV_DIR + 'textNoAnker.csv',
//レス用投稿文が書かれたCSV。通常とレス用で分けないなら同じファイルを使えばいい。
replyTextCsv: CSV_DIR + 'textReply.csv',
};
baseWaitTime: 5,
//baseWaitTime+0~waitTimeRange(ランダム)だけ待つ
waitTimeRange: 5,
//連投しすぎだと忠告された場合に処理を一時停止させる時間(秒)
waitTimeForAvoidingPunishment: 60 * 30,
//メール
mail: 'sage',
//名前設定
name: '',
//以下、偽装ワッチョイ設定。浪人でワッチョイを非表示にしてるときだけtrueにしてね。
//妙なニックネーム(ワッチョイ、アウアウウーなど)をランダムで決めて付加するかどうか。true=付加する。false=付加しない。
//妙なニックネームの後に付く8桁の文字列をランダムで決めて付加するかどうか。
},
//アンカー無し投稿をするならtrue。しないならfalse。noAnkerPostかreplyPostのどちらかはtrueにすること(両方trueでもOK)。
//アンカー付き投稿(返信)をするならtrue。しないならfalse。もしnoAnkerPostとreplyPostの両方がtrueの場合、投稿は返信が優先され、返信対象が見つからなくなったらアンカー無し投稿をする。
//最初に取得するアンカー無し投稿文CSVファイルの行番号。もし返信用と同じCSVファイルを使うなら-1と入力。
noAnkerPostTextCsvStartRow: 1,
//最初に取得する返信用投稿文CSVファイルの行番号。もしアンカー無しと同じCSVファイルを使うなら-1と入力。
//テキストCSV/返信用テキストCSVの取得行が最終行に達したら最初の行まで戻るかどうか。true=戻る。false=マクロ終了。
//返信する場合、これより小さなレス番には返信しない。返信を投稿すると、この数値は前回の返信先のレス番に更新される。
minAnker: 895,
//返信する場合、名前に以下の文字列を含む投稿にアンカーをつけて返信する(ワッチョイやIPなど名前フィールドにあるものならなんでも可)。配列で複数指定可能。指定無しなら空配列([])。filterNamesとfilterNamesNotIncluded共に無指定ならレス番1から順に返信していく(minAnkerが設定されてればそこから順に)。以下のfilter系は全て併用可能。
//↑とは逆に、名前に以下の文字列を含まない投稿にアンカーをつけて返信する。↑と併用も可能。
//返信する場合、本文に以下の文字列を含む投稿にアンカーをつけて返信する。
filterText: ['自演かな', '自演わらわら', 'スクリプト使うの', '安価ガバ', '>>660', '自演で擁護', '最後' ,'あいうえお', 'かきくけこ', 'さしすせそ', 'なにぬねの', 'はひふへほ', 'まみむめも', 'やいゆえよ', 'やゆよ', 'らりるれろ', 'わいうえを', 'わをん', 'わいうえをん'],
},
//自分のIPアドレスの確認。VPNとかでIPを変更してマクロを動かしてるとき、突然VPNが作動しなくなってIPが元に戻ったときにマクロを止めるためのもの。
//以下の文字列が自分の現在のIPアドレスに含まれている場合、マクロを一時停止する。基本的に自分の本当のIPアドレスを入力。
},
//浪人設定。最後に動作を確認したのは5年くらい前で、今も同じように動作するかは、浪人を持ってないから確認できずわからない。
//浪人にログインしてるかどうかをチェックするかどうか。trueならする。falseならしない。trueにしていてもし浪人にログインしていないことを確認したらログインしにいく。
password: '1234',
},
};
/**************************************
設定箇所終わり。
https://info.5ch.net/index.php/%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%81%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E6%97%A9%E8%A6%8B%E8%A1%A8 <h3>o- *************************************/</h3>
/**************************************
・NULL演算子(??)は使えない。論理積(&&)は使える。
・オブジェクトの分割代入はできない。
・importはできない。 <h3>o- *************************************/</h3>
/**************************************
関数 <h3>o- *************************************/</h3>
/**
* ここから始まる。
*/
checkSettings();
var _TextCsvCursors = new TextCsvCursors(
SETTINGS.postSettings.noAnkerPostTextCsvStartRow > 0
? SETTINGS.postSettings.noAnkerPostTextCsvStartRow - 1
: SETTINGS.postSettings.noAnkerPostTextCsvStartRow,
SETTINGS.postSettings.textCsvLoop,
),
SETTINGS.postSettings.replyPostTextCsvStartRow > 0
? SETTINGS.postSettings.replyPostTextCsvStartRow - 1
: SETTINGS.postSettings.replyPostTextCsvStartRow,
SETTINGS.postSettings.textCsvLoop,
),
);
var _LoopStatuses = new LoopStatuses(0, SETTINGS.postSettings.minAnker);
const _MyPosterName = new MyPosterName({
name: SETTINGS.nameSettings.name,
});
const _ThreadUrl = openPromptThreadUrl();
//ループ
while (true) {
SETTINGS.ipSettings.checkIp && checkCurrentIpNotTheIp();
//スレを開く
openUrl(_ThreadUrl.fullUrlHttps());
//浪人にログインする設定なら、浪人にログインしているかどうかを確認し、していなければログインしにいく。
if (SETTINGS.roninSettings.checkLogin) {
}
}
if (SETTINGS.postSettings.replyPost) {
const targetAnkerNumber = createPostDOMList()
.filterPostnumberHigher(_LoopStatuses.currentMinAnker())
.filterByPostername(SETTINGS.postSettings.filterNames)
.filterByPosternameNotIncluded(
SETTINGS.postSettings.filterNamesNotIncluded,
)
.filterByText(SETTINGS.postSettings.filterText)
if (targetAnkerNumber !== null) {
const r = _TextCsvCursors.takeNextRowTextAsReply(targetAnkerNumber);
messageDisplay(`返信対象有り。アンカー先: ${targetAnkerNumber}`);
return {
...r,
updatedLoopStatuses:
_LoopStatuses.updateMinAnker(targetAnkerNumber),
};
}
}
if (SETTINGS.postSettings.noAnkerPost) {
//返信対象無し、或いは返信しない設定の場合。アンカー無し投稿文を作る。
const r = _TextCsvCursors.takeNextRowTextAsNoAnker();
messageDisplay('返信対象無し。アンカー無し投稿。');
return {
...r,
updatedLoopStatuses: _LoopStatuses,
};
}
return null;
})();
if (p) {
//投稿。
nickname: SETTINGS.nameSettings.nickname,
korokoro: SETTINGS.nameSettings.korokoro,
area: SETTINGS.nameSettings.area,
}),
SETTINGS.mail,
p.text,
);
//_TextCsvCursorsと_LoopStatusesを更新。
_TextCsvCursors = p.updatedTextCsvCursors;
_LoopStatuses = p.updatedLoopStatuses.incrementPostCount();
`投稿回数: ${_LoopStatuses.currentPostCount()}`,
`minAnker: ${_LoopStatuses.currentMinAnker()}`,
`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,
`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,
]);
} else {
`返信対象が現われるのを待機中...。`,
`投稿回数: ${_LoopStatuses.currentPostCount()}`,
`minAnker: ${_LoopStatuses.currentMinAnker()}`,
`今回アンカー無し投稿取得行: ${_TextCsvCursors.currentRows().noAnker}`,
`今回アンカー有り投稿取得行: ${_TextCsvCursors.currentRows().reply}`,
]);
}
wait(SETTINGS.baseWaitTime + randomRange(0, SETTINGS.waitTimeRange));
}
}
/**
* 投稿処理と投稿結果を見てリトライしたりマクロ終了したり。
* @param {string} serverName サーバー名
* @param {MyPosterName} _MyPosterName
* @param {string} postMail メール
*/
serverName,
postMail,
_MyText,
retryTimes = 0,
) {
const r =
retryTimes === 0
? new ValuesOfPost(serverName, _MyPosterName, postMail, _MyText).post(
postTo5chTread,
)
serverName,
postMail,
_MyText,
).postSubstring(retryTimes, postTo5chTread, postConfirm);
if (r) {
back();
return;
}
wait(7);
const error = createPostErrorMessage().analyze();
messageDisplay(error.message);
if (error.order === 'KILL') {
kill();
} else if (error.order === 'SKIP') {
return;
} else if (error.order === 'TRUNCATE') {
back();
serverName,
postMail,
_MyText,
retryTimes + 1,
);
} else if (error.order === 'WAIT') {
wait(SETTINGS.waitTimeForAvoidingPunishment);
serverName,
postMail,
_MyText,
retryTimes,
);
} else if (error.order === 'LOGIN') {
serverName,
postMail,
_MyText,
retryTimes,
);
}
return;
}
/**
* 現在のIPアドレスに、SETTINGS.ipSettings.avoidTheIpの値が含まれていないことを確認する。含まれていたらマクロを一時停止。
* @returns
*/
function checkCurrentIpNotTheIp() {
openUrl('https://www.cman.jp/network/support/go_access.cgi');
const _IpAdress = createIpAdressFromCMan();
if (_IpAdress.includes(SETTINGS.ipSettings.avoidTheIp)) {
pause('現在のIPに指定した値が含まれていることを確認。');
}
return;
}
/**
* @returns
*/
if (
SETTINGS.postSettings.noAnkerPost === false &&
SETTINGS.postSettings.replyPost === false
) {
return kill('設定エラー。noAnkerPostとreplyPost両方ともfalseになってる。');
}
if (
SETTINGS.postSettings.noAnkerPostTextCsvStartRow < 0 &&
SETTINGS.postSettings.replyPostTextCsvStartRow < 0
) {
return kill(
'設定エラー。noAnkerPostTextCsvStartRowとreplyPostTextCsvStartRow両方とも-1になってる。',
);
}
if (
SETTINGS.postSettings.noAnkerPostTextCsvStartRow === 0 ||
SETTINGS.postSettings.replyPostTextCsvStartRow === 0
) {
return kill(
'設定エラー。noAnkerPostTextCsvStartRow/replyPostTextCsvStartRowの初期値は-1或いは1以上で。',
);
}
}
/**
* 入力フォームを表示して入力されたスレのURLを受け取る。
*/
function openPromptThreadUrl() {
const url = prompt('スレURLを入力');
}
/**
* 開いてるスレのレス全て読み取ってPostListインスタンスを作って返す。
* 重すぎるので使うのやめ。どうやらインスタンスの大量生成が原因な模様。
*/
const posts = window.document.getElementsByClassName('post');
return new PostList(Array.from(posts).map((e) => new Post(e)));
}
/**
* 開いてるスレのレス全て取得してPostDOMListに格納して返す。
* @returns
*/
function createPostDOMList() {
const posts = window.document.getElementsByClassName('post');
for (let index = 0; index < posts.length; index++) {
//HTMLCollectionからElementを1つずつ抽出して配列に。
arrPostDOMList.push(posts.item(index));
}
return new PostDOMList(arrPostDOMList);
}
/**
* 開いてる投稿結果画面に表示されてるエラーを読み取ってPostErrorMessageインスタンスを作って返す。
*/
function createPostErrorMessage() {
window.document
何を重視するかは多少変わると思うが、落ちぶれるデメリットを無視して書いてみる
1. 高校受験をしなくて良いので、中学で内申点を気にせずに過ごせる、つまり中高の、6年間、成績を気にしないで、まとまった時間をもてることで、本当に没頭したいことに没頭できる時間を作れる
2. 1は、勉強以外の意味で書いたが、勉強に関しても、先取りで勉強できるので、大学受験で有利なのは言うまでもないが、中学受験で、算数をしていることで、整数問題とか確率とかそういうのに抵抗がなくなっていることがむしろ大きく、難関大学の数学に有利
なるべく軽い方法で三つの異なる数字を求めたい(例123、526)言語はJavaScript
今はLoop文で
1つ目をランダムで出す
2つ目をランダムでだし、1つ目と値が同じなら、5以上ならー1,5以下なら+1(10とかー1にはしたくないため)
3つ目は12と比べてどっちかと同じなら上と同じ処理ってやってるけど、そうなると手を加えた後にどっちかと同じ値になる可能性がでてきそう
Loopで全部の桁をそれぞれチェックするってやつは処理回数が多いからあまり使いたくない
じゃあ最初から数学でよくありそうなそれぞれの桁で値がことなる3桁のランダムな数字を求めるのが一番効率いい処理なんじゃないかと思ったけど数学がわからない
つまり、組合せを計算する際の分子は必ず分母で割りきれるわけ。
これって、誰も言わないけど、かなり驚きのことだと思う。
例えば、10×9×8×7×6が5×4×3×2×1で割りきれるかって考えてみてほしいんだけど、計算しないですぐわかる?
直感的にはわからないじゃん。でもこれって、10C5の分子と分母だから、割りきれるわけですよ。
他にも、111×110×99×98×97×96×95が7×6×5×4×3×2×1で割れるとか、わからないでしょ。
すごさがわかったよね?
すなわち、組合せnCrって、任意の整数nから下に連続するr個の整数を、r×r-1×…×2×1で割った値だけど、
こんな変な割り算が、自然数nとrがどんな値でも常に整数になるなんて驚き!!
マジすごくない?
マジですごいと思うのに、誰も感動してないから、教養の殿堂たる増田に書き込んでみたよ!
(追記)
ちょっと証明してみるかーと思ったら思いの外手こずった。ググったらパスカルの等式っていうのが出てきてこれがわかれば帰納法でいけるのか。この等式自体もなかなか面白い
なるほど。
パスカルの三角形ってやつで、一番上が整数だから下側は全部整数になるってわけか。
厳密な証明をするまでもないよ。
7個の数字が並んでいたらどこかに7で割れる数字が混じっている。n個の数字が並んでいたらどこかにnで割れる数字が混じっている。
いやいや、重複があるかもしれないじゃん。
この説明もわかりやすいとは思ったんだけど、証明としてはダメなのかな?
ほんとそれ。整数論的にちゃんと証明するにはルジャンドルの定理的な考察が必要。
分からない人は高校数学の美しい物語の記事: https://manabitimes.jp/math/589 を見て、どうぞ。
国立大受験、共通テストにプログラミング…25年から「情報」追加で6教科8科目に
https://www.yomiuri.co.jp/kyoiku/kyoiku/daigakunyushi/20220128-OYT1T50158/
https://www.asahi.com/articles/ASQ1X7S36Q1SUTIL01M.html
国立大協会、共通テストに「情報」追加 25年以降、6教科8科目に
https://mainichi.jp/articles/20220128/k00/00m/040/332000c
2022年4月に高校に入学した生徒を対象にした大学入学共通テストから教科情報の試験が追加されることはもう決まっていたのだが「そんなのわざわざ受けるやついるの?」とならないように、文科省と入試センターが布石をうった結果としての国立大学の入試での必須化だと思う。
これについては、私立大学には強制できるスキームがない(補助金をちらつかせればできるかもしれないが)のと、地方の高校などにその衝撃波が届くように、だと個人的に思っている。
ぶっちゃけ首都圏などは、高校の情報教員は余ってはいないが足りてはいるが、地方では情報教員の採用をまだ実施していない県もあれば、ようやく始めてまだ数名しかいないという県もある。
そんな情報教員の採用に消極的な地方での、高校のKPIの一つに国公立大学への合格者人数というものがある。教育委員会によっては、特定の進学校に助成金みたいなのを出して、進学実績をさらに上げさせようとしている県もあると思う。そんななか情報をきちんと教えられる教員がいないと、国立大学に不利になるよ、というのは地方の高校や教員区委員会への圧力になるのである。
「急すぎるじゃないか」とお怒りの校長とかもいるだろうけど、受験には関係ないからという言い訳で、教育委員会が教員も採用してこなかったり、未履修問題のように高校が勝手に情報をやらずに他教科に置き換えて授業を潰していたりしたことが、結果としてスマホしか使えない大学生を大量生産してきたのではないだろうか?
高校の情報という授業は実は2003年に高校に入学した生徒から必修科目となっている(正確には必履修科目)。ということで教科が出来てからもう20年近くになる。
商業高校や工業高校は別として、全ての普通科で必修の教科が「ドーン」と爆誕したのがその年だったのだが、文科省の失政を今の今まで引きずっていたのだった。
それまでにない教科(情報処理に類する科目は無かったわけじゃないが)が誕生するということは、教える人が新たに必要となるということである。
それが全国何千校の普通科の高校で急に始まるのである。まあ、時代で必要だったのでそれはしょうがないと思うが。
大学の教員養成課程で、一気に何千人も情報科教員を輩出できるわけではないので、現職の教員に講習を行って新たな免許を持たせることにした。
まずは意識高い教員に、現職講習の講師役となるための研修を行い、育成された講師たちが各都道府県で現職教員にたった15日間の講習で「教科情報をもう教えられるよ」ということにした。
しかも希望した受講者だけ目標ノルマ人数にとても足りず(講習を受けられる教科に縛りを付けた失策があり、そもそも希望しているのに受けられなかった教員もいる)、各学校で肩たたきのように希望しなくても免許を取りに活かされた数学や理科、家庭科の教員が多数いるというわけである。
これを時限的な教員免許とすれば、大学で情報の教員免許をとった新しい教員がどんどん入ってきたのだが、いかんせん恒久的な免許だったのだ。
あと教員免許更新があるじゃないかと思われるかもしれないが、免許更新はどの教科で更新するとかはなくて、文科省が認めている免許更新の講座だったら何の教科の内容でもいいし、生徒指導でもレクリエーション論でも何でもアリなのだ。一気に全部の免許の有効期限が延びる仕組みである。
情報処理学会は、教科情報の内容で更新講習をやってはいるが、知名度は高くないようである。
そんな石器時代のような人たちが令和の時代に、「情報とは」と教えている現状があるから、それを刷新したいという文科省の意図もあったような気がする。
恒久免許をいまから取り上げるわけにもいかないし、全て定年退職するまで待っていたら日本が沈没するのが加速するだけである。
学習指導要領という教科で教える内容が決められる教育界の法律みたいなものがあって、だいたい10年に1度のペースで改訂される。
最初の情報は、情報A、B、Cという科目があり、いわゆる町のパソコン教室的な内容でも教科の内容をけっこう満たしてしまうものであった。
とはいえ、TCP/IPやWWW、DNSの概略や、アルゴリズム、知財などの法規は当時から教科書に載っていたのであるよ。
その次の世代の学習指導要領で、「社会と情報」「情報の科学」の2つに再編され、今の高校1年生の代まではこれを勉強している。2年後に高3で始めて習う生徒もいるかもしれないが。
今度の4月からの入学生では、情報1に一本化されて、全ての高校生が共通の範囲を勉強している(これが大事)はずなので入試に出しても良いよね、と出来たわけである。
それまではどれかだけ勉強したら卒業はOKという扱いで複数科目あったので。
今年の1年生が浪人して1個下の代と一緒に国立大学を受けると、他教科の試験は移行措置で現行科目の試験が用意されるのだが、情報は今の科目での出題がないからどうするの?という問いかけが国立大学協会からあった。さっきの複数科目の問題があって浪人生に強要できるのかよーという問題だったのだが、文科省&入試センターは強気に「社会と情報か情報の科学か、どっちかだけでもやっていれば100点分になる問題をその年だけ新たに設置するので、無問題」という回答により、国立大学の入試必須化が正式に決まった。
情報1にはプログラミングだけではなく、問題解決の考え方、情報デザインとコミュニケーション、データサイエンスの基礎などが入っている。
ちなみに、情報2という科目もできて、数学みたいに1をやったあとでなければ2を勉強できない、より高度な内容になっている。物理基礎に対する物理みたいな。
データサイエンスといえば聞こえがよいが、それよりちゃんとした統計を学ばせるのが先じゃね?と思う人も多いと思う。
実は数学1で統計の内容が必須化して10年経つのだが、10個や20個の整数を手計算で計算して、分散・標準偏差・偏差値を出してたり、相関係数と散布図くらいしか届かない、「紙の上で鉛筆でやる意味があるのか?」という内容である。センター試験や共通テストでは奇をてらうことが難しい分野だったが、今年の共通テストはやらかした。
次の学習指導要領では数学教育者と統計教育者のバトルなどがあって、それも興味深いのだが、それはまた別のお話。
劇薬ではあるが、かわいい生徒たちの志望大学進学という、餌をつるされた教員たちの良心で今まできちんとした情報教育を受けることができなかったかもしれない地方の高校生が報われるようになるといいと思っている。
あ、あと入試改革すると、企業が儲けるために結託しているんじゃないかと思う方もいるかと思うが、情報1にからめてうちは底辺校と呼ばれる学校なのだが、プログラミング教材とかの売り込みはかなり来るし、ベネッセはすでに高校情報1のオンライン教材の売り込みをガンガンやっている。東進ハイスクールも情報の講師を確保しているようである。
なので「教える教員がいない、地方を見捨てるのか!」となった場合は、ベネッセやら東進の高校向け教材でもやらせてお金で解決してください。
国立大受験、共通テストにプログラミング…25年から「情報」追加で6教科8科目に
https://www.yomiuri.co.jp/kyoiku/kyoiku/daigakunyushi/20220128-OYT1T50158/
https://www.asahi.com/articles/ASQ1X7S36Q1SUTIL01M.html
国立大協会、共通テストに「情報」追加 25年以降、6教科8科目に
https://mainichi.jp/articles/20220128/k00/00m/040/332000c
2022年4月に高校に入学した生徒を対象にした大学入学共通テストから教科情報の試験が追加されることはもう決まっていたのだが「そんなのわざわざ受けるやついるの?」とならないように、文科省と入試センターが布石をうった結果としての国立大学の入試での必須化だと思う。
これについては、私立大学には強制できるスキームがない(補助金をちらつかせればできるかもしれないが)のと、地方の高校などにその衝撃波が届くように、だと個人的に思っている。
ぶっちゃけ首都圏などは、高校の情報教員は余ってはいないが足りてはいるが、地方では情報教員の採用をまだ実施していない県もあれば、ようやく始めてまだ数名しかいないという県もある。
そんな情報教員の採用に消極的な地方での、高校のKPIの一つに国公立大学への合格者人数というものがある。教育委員会によっては、特定の進学校に助成金みたいなのを出して、進学実績をさらに上げさせようとしている県もあると思う。そんななか情報をきちんと教えられる教員がいないと、国立大学に不利になるよ、というのは地方の高校や教員区委員会への圧力になるのである。
「急すぎるじゃないか」とお怒りの校長とかもいるだろうけど、受験には関係ないからという言い訳で、教育委員会が教員も採用してこなかったり、未履修問題のように高校が勝手に情報をやらずに他教科に置き換えて授業を潰していたりしたことが、結果としてスマホしか使えない大学生を大量生産してきたのではないだろうか?
高校の情報という授業は実は2003年に高校に入学した生徒から必修科目となっている(正確には必履修科目)。ということで教科が出来てからもう20年近くになる。
商業高校や工業高校は別として、全ての普通科で必修の教科が「ドーン」と爆誕したのがその年だったのだが、文科省の失政を今の今まで引きずっていたのだった。
それまでにない教科(情報処理に類する科目は無かったわけじゃないが)が誕生するということは、教える人が新たに必要となるということである。
それが全国何千校の普通科の高校で急に始まるのである。まあ、時代で必要だったのでそれはしょうがないと思うが。
大学の教員養成課程で、一気に何千人も情報科教員を輩出できるわけではないので、現職の教員に講習を行って新たな免許を持たせることにした。
まずは意識高い教員に、現職講習の講師役となるための研修を行い、育成された講師たちが各都道府県で現職教員にたった15日間の講習で「教科情報をもう教えられるよ」ということにした。
しかも希望した受講者だけ目標ノルマ人数にとても足りず(講習を受けられる教科に縛りを付けた失策があり、そもそも希望しているのに受けられなかった教員もいる)、各学校で肩たたきのように希望しなくても免許を取りに活かされた数学や理科、家庭科の教員が多数いるというわけである。
これを時限的な教員免許とすれば、大学で情報の教員免許をとった新しい教員がどんどん入ってきたのだが、いかんせん恒久的な免許だったのだ。
あと教員免許更新があるじゃないかと思われるかもしれないが、免許更新はどの教科で更新するとかはなくて、文科省が認めている免許更新の講座だったら何の教科の内容でもいいし、生徒指導でもレクリエーション論でも何でもアリなのだ。一気に全部の免許の有効期限が延びる仕組みである。
情報処理学会は、教科情報の内容で更新講習をやってはいるが、知名度は高くないようである。
そんな石器時代のような人たちが令和の時代に、「情報とは」と教えている現状があるから、それを刷新したいという文科省の意図もあったような気がする。
恒久免許をいまから取り上げるわけにもいかないし、全て定年退職するまで待っていたら日本が沈没するのが加速するだけである。
学習指導要領という教科で教える内容が決められる教育界の法律みたいなものがあって、だいたい10年に1度のペースで改訂される。
最初の情報は、情報A、B、Cという科目があり、いわゆる町のパソコン教室的な内容でも教科の内容をけっこう満たしてしまうものであった。
とはいえ、TCP/IPやWWW、DNSの概略や、アルゴリズム、知財などの法規は当時から教科書に載っていたのであるよ。
その次の世代の学習指導要領で、「社会と情報」「情報の科学」の2つに再編され、今の高校1年生の代まではこれを勉強している。2年後に高3で始めて習う生徒もいるかもしれないが。
今度の4月からの入学生では、情報1に一本化されて、全ての高校生が共通の範囲を勉強している(これが大事)はずなので入試に出しても良いよね、と出来たわけである。
それまではどれかだけ勉強したら卒業はOKという扱いで複数科目あったので。
今年の1年生が浪人して1個下の代と一緒に国立大学を受けると、他教科の試験は移行措置で現行科目の試験が用意されるのだが、情報は今の科目での出題がないからどうするの?という問いかけが国立大学協会からあった。さっきの複数科目の問題があって浪人生に強要できるのかよーという問題だったのだが、文科省&入試センターは強気に「社会と情報か情報の科学か、どっちかだけでもやっていれば100点分になる問題をその年だけ新たに設置するので、無問題」という回答により、国立大学の入試必須化が正式に決まった。
情報1にはプログラミングだけではなく、問題解決の考え方、情報デザインとコミュニケーション、データサイエンスの基礎などが入っている。
ちなみに、情報2という科目もできて、数学みたいに1をやったあとでなければ2を勉強できない、より高度な内容になっている。物理基礎に対する物理みたいな。
データサイエンスといえば聞こえがよいが、それよりちゃんとした統計を学ばせるのが先じゃね?と思う人も多いと思う。
実は数学1で統計の内容が必須化して10年経つのだが、10個や20個の整数を手計算で計算して、分散・標準偏差・偏差値を出してたり、相関係数と散布図くらいしか届かない、「紙の上で鉛筆でやる意味があるのか?」という内容である。センター試験や共通テストでは奇をてらうことが難しい分野だったが、今年の共通テストはやらかした。
次の学習指導要領では数学教育者と統計教育者のバトルなどがあって、それも興味深いのだが、それはまた別のお話。
劇薬ではあるが、かわいい生徒たちの志望大学進学という、餌をつるされた教員たちの良心で今まできちんとした情報教育を受けることができなかったかもしれない地方の高校生が報われるようになるといいと思っている。
あ、あと入試改革すると、企業が儲けるために結託しているんじゃないかと思う方もいるかと思うが、情報1にからめてうちは底辺校と呼ばれる学校なのだが、プログラミング教材とかの売り込みはかなり来るし、ベネッセはすでに高校情報1のオンライン教材の売り込みをガンガンやっている。東進ハイスクールも情報の講師を確保しているようである。
なので「教える教員がいない、地方を見捨てるのか!」となった場合は、ベネッセやら東進の高校向け教材でもやらせてお金で解決してください。
1巻目は「とらドラ!」で問題なかったのだが、2巻目は「とらドラ2!」で、当時から私には「タイトル名の間に巻番号付けるの?どうしてそこにビックリマーク付けるの??」って感じだった。
「とらドラ!2」(タイトル名の後ろに巻番号)ではなぜダメだったのだろう。アニメ化されて10年以上経った今でも、深く疑問に思っている。
そして、「とらドラ!」は最終的には10巻まで刊行されたので、最終巻は「とらドラ10!」という名称だった。
ところで、数学には階乗という概念がある。例えば、「5の階乗」と言えば5から1までの整数を掛け算した値のことで、5×4×3×2×1=120となる。
そして、その階乗は数式で表す際、ビックリマークが用いられる。つまり、「5の階乗」は「5!」と表現する。
とすると、「10!」は「10の階乗」という意味であり、計算すると10×9×8×7×6×5×4×3×2×1=3628800である。
皆さんはじめまして。Twitterで「レンタル数学教える人」を名乗っている者です。つい今月の初めに、「そうか!だから小学校の算数においてはかけ算順が大切なんだ」と目からうろこが落ち、そのことを夜中のうちにTwitterに書いたところ、朝になったら見たこともない数のリプや引用がついて驚いた。その内ほとんどが「バカ」とか「アホ」とか「クズ」とかの類の言葉でした。それで怖くなりました。「この程度」とか「周回遅れ」とか誹謗中傷まで酷いものでした。
その中でいくつかやり取りするうちに、これは一人一人返信してもらちが明かないから、カリキュラムの順番含めて整理してTwitter内に投稿しよう、と思いつきました。
何でかけ算導入時において順番が大切なのかを教えてやる
2年で「乗法の意味」→「乗法の場面を式に表す」→「乗法の交換法則」
と段階を踏んで学ぶ。ポイントは「乗法の場面を式に表す」だ。この単元を学習中に式の順番が問われるわけだろ。その後に交換法則。計算しやすければ交換してもよいという話
勝手に交換法則使って計算しろよ。ただし場面に合った式を書きなさいと言われている所に、一つ分×いくつ分の順番を無視した式を書くんじゃねえ!という話。途中式間違ってるけど答えはマルもらえるって中高生でも普通によくある話じゃない?
「場面を式に表す」が課題なのよ。段階的ってこと考えよう。
3年で「整数の乗法」だ。数を抽象的なものとして計算するわな。結合法則・分配法則も習うから計算の工夫をしてスマートに解いてみやがれ!かけ算に慣れてきた頃に「除法の場面を式で表す」をやる。何を何で割るかよく考えろ。割られる数、割る数っていう区別(順番)が理解をスムーズにしてくれる。
ここでワケも分からず前から数字を順番に入れて式を立てる奴がいたらどうなる。解答欄の「□÷○=△」穴ポコに順番に入れたらどうなる。かけ算だったら答え合ってて良かったね。
それ習慣ついてたら割合の単元で地獄を見ることになる。ったゆうか現実としてすでに地獄だけどな。
4年で「長方形、正方形の面積」だ。お待たせしました。なんか知らんけどかけ算順番の話してるとすっ飛んでくる輩が「縦×横と横×縦は違うんですか?」ってドヤ顔で聞いてくる。うるせえ。交換法則しとけよ。場面を式で表すとは状況が違うんだから好きにしろ。こちとら「卵10個が3パック」の話してんだよ
この前spaceで聞いた知見を共有する。面積ってのは「1㎝×1㎝の□が何個分」ってところから考える。縦に3個、横に5個、なら一個ずつ数えてもいいが3×5で出してもいい。「1つ分はいかようにも取れるんですよ?」のドヤ顔勢が言いたいのはそれだろ。勝手に5×3やっとけよ。
あのさ、面積ってのはそうやって丁寧に学習していくんだよ。「そもそも面積とは〜積分の考え方を使っているのであり〜」とか言う自称理系人間。アタマおかしいと言わざるを得ない。お前小学生相手に何言ってんの?中学生ですら錐の体積や球の体積を厳密に理解できない。そうやって積み上げていくんだろ
僕がずっと違和感を持っているのは、なぜ掛け算順を認めない人はこのように必死にTwitter内を警備し、いきなり引用リツして人格否定的なことを繰り返してしまうのかということです。バカとか洗脳とか悪影響とか「理由を説明してください」という謎のエンドレス質問。そしてそのような人はいつも同じメンツで、仲間同士でコメントを付けあっている。「井超算数」というタグをつけるのが彼らの仲間を呼び寄せるシグナルのようです。以後、この一派のことを「超算数警察」と呼称します。
逆に、いつも虐められている(ように見える)人は言葉使いが丁寧で、明らかに教育現場にいる率が高い。誠実な教育者であることが見受けられた。懇切丁寧に掛け算順の必要性を説明しているのに、いくら必死に説明しても聞かないうえに暴言を吐かれる、謎のエンドレス質問返しで、いつの間にかダンマリになっていく。この誠実な教育者たちを「掛け順派」とします。
■■■
恥ずかしい告白をします。僕は半年ほど前まで「掛け算順序否定派」でした。くだらねえ理由で減点して子供が可哀想と思っていました。「バカな慣習だ」と暴言を吐いたこともあります。ただし、ここからが重要。耳かっぽじってよく聞け。Twitterで「掛け順必要派」の人に対して凸撃とかしなかった。極めて一般的に、まともな大人は、フツーの人間は、Twitterで自分と反対な意見の人をわざわざ見つけて攻撃したりしない。時間的なヒマもない。
だってその人にリプを飛ばして考えを改めさせるなんてことができると思うか?まあ出来なくはないんだけど、現実的じゃない。しかし超算数警察は平気でやる。まあしつこい。相手がブロックするまでやめない。結局は見下してバカにしていい気分になりたいだけだろう。同調者が表れて良いキモチ。ちなみにこの人たちは「ブロックされたこと=論破した」と定義している。世間一般的にはそうではないが、超算数警察の中ではそうなのだ。スクショ付きで「逃げやがった」「やっとブロックしたか」が決め台詞である。
実は僕がTwitterで意見を投下し始めて、あまりに暴言がひどいので反論の意味で多方面に暴言を吐いてしまったところ、ある方に批判された。対話を重ねていたら、その方はスマートな教育をされ、学校に期待しすぎないで家庭と学校で協力していけばいいという考えの持ち主だった。
「あなたがスマートな教育をされていることは分かった。学校の先生も必死でやっているんだ。掛け順間違いでバツされたことなど、学校ってそんなもんだよなと受け流してくれればいいのに」
と伝えたら、そこで衝撃の一言「とっくにそうしている。はじめから掛け算の話などしていない」と。僕は冷や汗をかいた。
そうなのだ。始めからそうだった。そしてそうやってある種諦めの境地でもって受け流し、家でも教育しておけば良いというバランス感覚こそ僕が求めているものだった。それこそ思想転向のずっと前から。
テストで不本意ながらバツをもらってきた子供に対して、親としてもし、その採点に納得がいかないのなら「これは学校のテストにおいてのみ守っておかなければならないルールで、数学的には答えが合ってるから、まあ気にするな」と教えてやればいいのだ。僕だったらそうする。
実際、社会に出たら本当にどちらでもいい問題だ。よくある例としては「個数×単価」のような書き方がある。英語圏では「〇倍した□」といった言い方が一般的だ。だから僕はあくまでも日本国内での「算数ルール」「小学校ルール」と言っても良いと思っている。
冒頭の固定ツイと内容が被るが、僕自身は掛け算の順序を丁寧に教えていくのは極めて有用だと思っている。それは日本語的な感覚という意味でもだ。「●個が〇セット」、割合の単元なら「▼の□倍」という語順がしっくりくる。まだ抽象理解や言語の運用がいまいちな低学年にとってはなおさらだ。
■■■
超算数警察は厄介なことに、叩ける相手だと認定したらとにかく他のどんなことでもツッコめる穴は無いかと探し始める。たとえば僕は連ツイの最後に「面積の学習は丁寧にやっていく。そもそも面積は積分の考えを使っているので~とか言うな。中学生ですら錐の体積や球の体積を厳密には理解できない」と書いたら、まあそこに食いつく食いつく。一言言わずにいられない馬鹿どもが。
「中学生に球の体積の理屈くらい教えてあげないのは怠慢、講師失格」
などという酷い言われようだった。まったく現実を見ていない、好き勝手な意見だなと思うわけだが、一方でそんな教え方ができるのであればすごいことだ(たとえ受け手側に理解するポテンシャルがなかったとしても)と思って、全員に「中学生でも理解できる球の体積の考え方を教えてくれませんか?」と聞いた。
もう大半がヘンなリンク送ってきたり、有名な説明だから今さらする必要なしとか繰り返すだけで、何の益もなかった。30人くらいいたかな。そんな中で2人だけ実際に説明を書いて送ってよこしてきた。2,3分でササっとかける代物ではない。余裕で中学生で習う範囲を超えている。しかし素晴らしいと思った。
僕からするとそもそも僕が主張したいことと話がズレているし、それを活用できるほどの力量もないので、それをどうこうはできない。それは2人にとって肩透かしだったと思う。そもそもこちらは煽られてスタートしているのだ。「できるものならやってみろ」とは言ったが、本当にやってきたのならば敬意を表するほかない。そう。これなのだ。数学を愛し、数学を嗜んでいるのなら、自分の手を動かしてみろっていうんだ。超算数警察みたいに「数学は答えがあってればマル、ウソを教えるのは迷惑」とかいってTwitter内でクソリプ飛ばしてないでさ。んでマウンティング、グルーミング。それの繰り返し。
超算数警察は、小学生も学校の先生も、そもそも全部ひっくるめて公教育というものが人間社会のなかで行われているということを忘れている。自分の大好きな数学の美しさに惹かれて、極めて抽象的で、この世界中どころか宇宙全体に通用する法則をはやいとこ小学生にも教えてやれと言っている。んで「合ってるのにバツされるのは可哀想」という。だからもう一回思い出してくれ。こちとら小学校低学年を相手にしているし、そもそも「算数」の授業をしているんだって!教科名が「数学」じゃないことに注意。段階を踏むってことが彼らには理解できていない。
超算数警察は「美しさ」にこだわっているんだと思う。掛け算は順序を問わないのだから、式が逆なくらいでバツされている答案が目に入るのが耐えられないんだ。現実には日本中の小学校で丁寧に式の立て方から指導している。「一つ分×いくつ分」も「○○の□割(倍)」もとても重要視されている。だって最初に「3+3+3+3+3のことを3×5だって説明しているんだから。そりゃ5×3って書いたらバツでしょ。お前思いついた順に数字を書いてんじゃねえよ!って言いたくなるでしょ。「一つ分」を先に書けと言われているのだから。
Twitterで見かけた例を拝借すると、二つの倉庫があって「右の倉庫にはボールを、左の倉庫にはバットを入れてな」と決めてそれを周知したのに、逆に入れるヤツがいたら説教したくなるでしょ。右がボール、左にバットなんていう必然性なんかない。ただそう決めただけなんだが、決めなきゃしょうがねえだろ。そのきめたルールが無くなることはないと思うぞ。調べたら100年近くやってるらしいじゃん。じゃあお前らは永遠に不満を持ってTwitterで吹き上がるだけの人生だぞ。超算数警察たちは、ごく普通の人間たちの営みを否定している。だってようやく数字という概念を学び始める準備段階の子供を相手にしているんだぞ。ムチャ言うな。
なあ、そんな理論通りの、全てが数式通りに記述された、超算数警察が理想とする美しい世界が実現するにはどうしたらいいか教えてやる。「この世界から人間がソックリいなくなる」しかないんだよ!
■■■
今から30年ほど前に超絶ヤバ集団がいたことを覚えているな。「オウム真理教」っていうんだけど。ムチャクチャへんな主張をするカルト宗教でメディアは面白がって、バラエティ番組なんかにも出ていたな。あれのトップが何て言っていたか知っているか?
「近いうちに日本の人口が十分の一になる」って言ってたんだぞ。これが何を意味しているか分かるよな。それがどうだ。東京のど真ん中の地下鉄でサリンがまかれた。彼らの母数が大したことなかったから、同時多発的にってところまではいかなかったけどな。
そりゃ今だって「地球環境を壊さないためには」とか「埋蔵資源を枯渇させないためには」とか「海や山の生態系を守るためには」とか考えると、人間がいなくなるしかねえ!って結論になるよな。ま、それを言っちゃおしめえなので・・とスルーされるのが常識的な流れなんだけど。
しかし超算数警察よ!お前らがやっていることはそれに近い。すべての人間が「極めて忠実に数学の美しさを体現するためには」なんてことをやっている。無理だよ。この世界にはとんでもなく計算が苦手だったり、日本語が通じなかったり、中学生の半分が教科書を読めていなかったり、高校生で「数学を捨てる」なんて発言がまかり通っているんだから。中学を卒業したら数学というものから離れる人だって多い。そういう人がどれくらい数学が苦手か分かるか?そういう多くの人たちをとりあえず一斉に教えるために作られたカリキュラムだ。ちょっとやそっとじゃ揺るがねえよ。
掛け算を逆に書いてしまったものを慈悲深い心でマルにしてもらえたら、彼らは数学を好きになれただろうか。小学校のカラーテストで、本来だったらもらえてた(とおまいらが主張する)5点を取り返したところで、その後の人生に1ミリも役に立たねえよバカ。
んで超算数警察の口癖、「掛け順教」。数学的に正しくないウソを教えている宗教って言いたいんだろうけど。あのなあ。宗教って言葉が相手をバカにする言葉に使えると思っているところが人間のことを分かってねえっていうんだよ。もしかしてお前らって「もともと存在しない神とかいうものにすがって、科学を否定してきた宗教というもの信じてるヤツってバカ」ってシンプルに思ってない?でなきゃ「掛け順教」なんていう言葉が気軽に出てこないと思うんだけど。
それこそ人間社会のことを分かってないってことの証左なんだよ!人間はこの世界のよく分からないものに暫定的な解を与えるために宗教というものを生み出した。それがよりよく生きるための術だったからだ。もちろんそれが命の奪い合いを引き起こすこともあるがな。現代の日本だって神様にお願いしたり、クリスマスを祝ったり、葬式したり、全部宗教だろが!そのことを分かってないで「自分は無宗教なんで」とか言ってる。んでここ100年とかで明らかになってきた科学的な知見をかってに借用して、「今どき宗教にハマってるなんてプギャー」とか喚いてんだろ。お前たちは人類の先輩たちが大切にしてきた偉大な宗教というものもコケにしているんだよコラ!
この世界のことが科学的に説明できるようになっていることは事実だろう。それと、人間の認知機能が一気に進化するってことは話が違うだろが。お前らは数学の美しさ(数式は場面を捨象するからこそ美しい、程度の知識)を知ったからと言って強化人間にでもなったつもりなんだろう。んで科学の知識を得た我々は、次から次へとニュータイプが生まれてくるとでも思っているんだろう。そして、現行の算数教育はそのニュータイプの育成をジャマしていると。
バカ言ってんじゃねえよ。そんな簡単に人間が進化してたまるか。お前らなんか強化人間にすらなり切れていないし、だいたいジャレドダイアモンド先生が言う「認知革命」が起こって以来、人間なんか大して成長してねえわ。ホモサピエンスは昔も今も、ちょっとずつ日常の数的感覚(自然数)から、抽象的な理解に至っていくんだろうが。小学校6年間は、まず数学に入る前の準備段階だって決まってんの!それを数学的な知識を先取りしたうるさい大人たちがエラそうに・・・
俺たちは真っ当に義務教育の中で算数指導をしているだけなんだよ!
■■■
お前らが何と戦っているか教えてやる。
僕は超算数警察を見ていると「進撃の巨人」11巻で「敵は何だ!」と喚いてユミルにたしなめられているエレンをいつも思い出すよ。
お前らには見えていない。お前らはお前らが言うところの「掛け順教」と戦ってんじゃねえ。Twitter内にいる「掛け順教」をやっつけて終わりだと思ってんのなら・・そりゃ・・大きな勘違いだ。
お前らは「敵は何だ!」と問うだろう。
そうして僕はこう答える。「そりゃ言っちまえば・・世界だ」と。
お前らが数学が得意で数学が好きでその魅力にヤラれちまっているのは認める。そしてそれは素晴らしいことだ。んでハッキリ言うとくけど、世の中の人はそんなに数学が好きじゃないし、数学に興味がない。
数学が好きならお前たちそれくらい分かんだろがよ。数学者列伝とか読めば明らかだろうがよ。数学を専攻する人間なんてのは奇人変人だと相場が決まってんだよ!
超算数警察は一般人相手に「それ数学的に間違ってますけど!」とか言ってないで、自分で数学的な真理を突き詰めたらどうだよ。ただしそれは生きるか死ぬかのイバラの道だと心得よ。フェルマーの最終定理を証明したアンドリューワイルズ先生は10年間誰とも連絡を取らずに、生きてるか死んでるかも分からないような状況に追い込んで偉業を成し遂げた。ワイルズ先生が必死こいてTwitterでクソリプ飛ばしてたらとか考えると笑えるよな。あ、コイツ生きてるなって安心できるよな。やってるわけねーよな。
つまり人のことを気にしてる暇があったら、自分のやるべきことやっとけってこった。だから僕に対して自筆の証明を送ってきた二人以外のお前らは、どっかからリンク引っ張ってきた以外になんか生み出したか?
■■■
君たちは三重の壁の外に、バカも天才も秀才も凡人もひっくるめた人間社会が営まれているということを忘れちまってる。Twitterの中でお仲間を見つけて、自分たちだけが世界の真実に気づけていると思って正義感に燃えているんだろう。それをあの頃のエレンだって言ってんだよ。
エレンは壁の外にいる巨人をすべて駆逐すると誓った。そして裏切り者だった同期生を許さねえと言った。しかしやがて真実にたどり着いたエレンは全てを理解したよな。そしてそんな風に怒り狂っていた自分を恥じた。そうか、みんな同じだったんだって。それは壁の外に出たからだ。外に出るという強い意志を持ったからだ。
超算数警察よ。君たちはいつまでも三重の壁の中に閉じこもって、つかの間の楽園を享受しているんだ。とことんまで抽象世界にもぐりこむのも良い。ただそれは浮世離れした人生を歩むことを意味する。それがイヤだったら、人間たちの世界に戻ってこい。人と心を通わせることを選択しろ。三重の壁(心の壁)を壊して外の世界に出るんだ。
Xの次に背の高い人は誰?という問題で、以下のような内容です。
【問題】
この5人の中で、Cの次に背が高い人は?
【選択肢】
1.B
2.D
3.どちらとも解釈できる
【結論】
私は、3.どちらとも解釈できる、が正解と思っていて、言い方を変えると「Bの方が確からしいが、問題文として不備があるのでDの可能性が排除できない」と思っています。
【解説】
これが一番大事なところです。各々の解釈で話を進めるから大変なことになるんです。日本語に関して絶対的に正しい辞書を用いて話しましょう。
次
1:すぐあとに続くこと。また、そのもの。
高い
2:数値が大きい。また、度合いが大きい
とあります。
答えは"必ずそれぞれの1,2どちらかの表現を用いて表すことができます”。
以上を踏まえて読解していきます。
【解がBになる解説】
①昇順か降順か書いてないので、問題文に書かれていないことは勝手に推測しない。(問題解釈の基本)
Cの次に高い→Cより一段劣る背が高い人、なので155cmのBがCよりも一段劣る背が高い人。
これは劣るのに背が高いと続いて日本語としてやや不自然ではあるが、いったん置いておく。
②5人の一覧をわかりやすくすると、
E170cm 最も高い
A150cm 最も低い
となり、
この中でCの次に背が高いのは?と聞けばBになることが理解しやすい。
身長の数値が大きいという評価基準で、Cのすぐあとに続くものはBで疑いようがない。
【解がDになる解説】
Cの次に背が高いのは?
↓
次に、と聞かれたので、必ずあとに続くか一段劣るものを選ぶため、何かの順番に並べる必要があり、その場合のC(基準値)の次のもの(X)が問われている。つまり、
↓
そう考えたとき、身長が何cmかはただの識別情報なので、数学的解釈は使わずに答えが出せる。
つまり、
A 背が最も低い
B 背が低い
C 背が普通
D 背が高い
E 背が最も高い
ということ。
なぜなら、"背の順″は背が低い順とは言わなくても誰しもが昇順と理解するし、高い順番から並べることは一般的な解釈とは言えないので考慮しない。
ゆえに、始点Aから始まる背の順において、Cのすぐあとに続く背が高い人はD。
「背の順でCのすぐあとに並ぶ身長が高い人はD」
→「ある順番でCのすぐあとに続く背が高い人は誰?」
→「Cより順番がすぐあとになる背が高い人は誰?」
→「Cの次に背が高い人は誰?」
となって、この文章を背の順と理解できることに矛盾が生じないと解釈する。
ここでの争点は「ある順番とは何?」で、そんなもんは知ったこっちゃないのですが、普遍的に背の順番は昇順(背の順)になることを考えて、答えは、"背の順でCのすぐあとに続くD”となります。
背が高い方から並べたB理論は、「ある順番」が何か指定されていないことに気づかずに数値が一段劣る、の意味だけで解釈をしてしまって、数値が最も高いものからの降順以外の可能性を考慮できていません。
並べ方について問われている問題なので、単純な数値としての160cmと155cmの比較だけの「160cmより一段劣る背が高い155cmの人」という表現は日本語として不自然です。
【Bの方が確からしいが、問題文として不備があるのでDの可能性が排除できない理由】
これは背の順だから起きてしまったことで、例えば以下の例ではどうでしょう。
スカイツリー 634m
東京タワー 333m
あべのハルカス 300m
横浜ランドマークタワー 295.8m
りんくうゲートタワービル 256.1m
このとき、B理論もD理論も答えは横浜ランドマークタワーです。
(B理論)
①634mが数値として最も高いので、基準値あべのハルカスのあとに続く建造物は横浜ランドマークタワー。
②300mという数値にたいして一段劣る高い建造物は295.8mの横浜ランドマークタワー。
(D理論)
256.1mを始点とした低い順は一般的に想定されないので考慮しない。
高い順であべのハルカスのあとに続く全長が高い建物は横浜ランドマークタワー。
以上のように、回答としてはどちらも同じ横浜ランドマークタワーで丸く収まっていますが、実際の思考プロセスには隔たりがあります。
他にもいくつか例を挙げて、それぞれの思考を掘り下げてみましょう。
1位 100点
2位 90点
3位 80点
4位 70点
3位の次に点数が高い人は何位?
(B理論)
①100点が数値として最も高いので、基準値3位のあとに続く点数が高い人は4位。
②80点という数値にたいして一段劣る高い点数は70点の人で4位。
(D理論)
順番が3位のすぐあとの点数が高い人は4位。
ある程度わかったかもしれませんが、大抵のものは降順ランキングになるので、思考プロセスは違っても答えは同じになります。
では、このようにしたらどうでしょう。
160cmの次に高いのは161cm、159cmのどちらでしょう?
(B理論)
161cm 最も高い
で、どちらも159cmで疑いようがない。
(D理論)
159cm 数値が最も低い
161cm 数値が最も高い
となる。
問題文を整理すると、
160cmの次に背が高いのは
↓
次に、と聞かれたので、必ずあとに続くか一段劣るものを選ぶため、何かの順番に並べる必要があり、その場合の160(基準値)の次のものが161か159か問われている、つまり
問題.〇〇の順番で基準値のあとに数値が高いのは161と159のどっち?
↓
答え.◯◯の順番で基準値のあとに続く数値が高いものは161 or 159、となる。
答えは、160㎝のあとにつづく数値がたかいものは161cm。
しかし、「あとにつづく数値がたかいもの」という表現は日本語としては不自然で、B理論はどちらも自然な結果になっているため、Bと解釈する方が収まりがいい。
この結果は単純な数値の比較をした際、B理論の解釈が常に正しいと言えることを証明しているともとらえられます。そして、その場合の順番は常に降順(高い数値が上)です。
ようやく輪郭が見えてきましたね。問題になるのは、「単純な数値の比較ではない場合」です。
Sサイズ(数値小)
Mサイズ(数値中)
Lサイズ(数値大)
(B理論)
①Lサイズが最も数値が大きいので、基準値Mサイズのあとに続く大きいサイズはSサイズ。(大きいサイズはSサイズ、と言っているのでこれは日本語表現としてやや不自然)
(これも一段劣る大きいサイズ、という言葉は日本語表現としてやや不自然)
(D理論)
服のサイズはSサイズを始点として、S、M、Lと数えるが、L、M、Sとは数えない。
Lサイズから始まる店は存在しないし、サイズについて比較する際は必ず始点にSサイズがある。
ここまでの例題からわかったことは、「次に〇〇」で昇順/降順のどちらに動くか判断が付かない場合は、どちらの理論も試してみて、より自然な言葉になる方を選べばいいだけです。
なぜBD理論が論争になっているかというと、このケースではB理論も成立していて、D理論も成立しているからです。(どちらの結果も日本語が不自然にならない)
B理論支持者は、単純な数値の比較をした際は常にB理論の解釈が正しいことを根拠に、問題は数値について問われていると勝手に解釈して、答えはBで揺るがないと思っています。
これは、数値の比較なので数値が高い=上のものという認識があるので、降順以外は考えられていないです。
一般的に「Xの次に高いものはどれ?」という問題は凡そ全て数学の問題のため、みんな単純な数値の比較以外の用法は聞いたことがないので、D理論は意味の分からない勝手な解釈をしている例外だと判断しているのです。
続いてD理論支持者ですが、まず第一に「背を比較するときの順番は背の順(昇順)である」という解釈が前提にあります。
この前提が正しいとみんなが思ってるかはわからないですが、私の中では「大体そう」ってぐらいの認識です。
ロシアだと背が高い人が前に並ぶし、国内では自衛隊も高い順に並びます。
しかし、「背の順で一番前の人は背が高い?低い?」って聞かれたら真っ先に低い人を想像します。
また、「複数人の背を一斉に比較するために順番で並んだとき、先頭に並んでいる人の身長は一番後ろの人よりも身長が低い?高い?」って聞かれたら、うっかり低いって断定してしまいそうですが、
この問題についての正解は、「どの順番で並んでいるか知らないので、どっちもありえる」です。
一番最初の解説でも言いましたが、「次に」と言われてるので、何かの順番になるのですが、問題文からそれが確定することができません。
そのために2つ仮説を立てます。
B派は単純な数値の比較と同じ降順だと想定した場合でも、数値が高いものが上にくると仮定した降順でも結果的に答えはBで、どちらの根拠もある程度正しいと言えます。
D派は背の順だと仮定すれば正しいと言えるし、「背の順かどうかは書かれていないのでどっちもありえる」とも言えます。
比較してみるとD派の方が勝手な解釈に見えて根拠としてはやや弱い気がしますが、B派も肝心の前提条件は絞れていないので、降順という仮説が成り立たない限りは、"日本語として不自然な表現の答え”に過ぎないので、Dという答えを誤答とは"しづらい”です。
ゆえに改めて私の結論をより詳細に述べると、「Bの方が仮説を立てる根拠が確からしいが、問題文として不備があるので別解Dの可能性が排除できない」となります。
【まとめ】
BD問題は、大体の場合がどちらも先入観や勘違いをベースに論争をしているので、全く噛み合わないケースが多い。
BとDのどちらも根拠がありそうな正解を導き出せるようにしていて、あえて論争を起こそうとしてるのではないかとすら思える。
また、B理論支持者の方が論理的に正しいと言えそうで、実際は降順の並び替えについての根拠が整数の並び順でしかないことについて気づく人はあまりいない。
D派は背の順、というあやふやな根拠を理論にして戦ってるので、かなり分が悪いし、どこまで頑張っても前提条件は判明しないので、「Dが間違いとは言えない可能性がある」としか言えないので、屁理屈扱いされる。
もしも、背の比較をするときは必ず背の順(昇順)に並ぶ、という解釈が絶対的になることがあれば(仮に)、D理論はB理論よりも確からしくなるし、BD問題の結果がB、Dどちらかの100%になったとしたら、それは日本語が変化したと言えるのかも知れません。 実際に何%になったら辞書が変わるのかとかは知りませんが、誤用が広まって定着した結果、用法として辞書に載ってしまった例はありますし、時代とともに意味が変化していった言葉はたくさんあります。 いずれ、Xより一段劣る背が高い人、という表現が当たり前に使われる日も来るのかもしれません。
しかしながら、BD問題は"問題文として”試験に出せるようなシロモノではないと思うし(最初のツイ主さんは、これは問題ではなくアンケートだと仰っていました)、もしも私の解釈がおかしいところがあるとしても、表現方法に問題があるとは思います。
もしもBかDの2択ならBの方が根拠が強いと思うので、Bを選ぶ方が正しそうです。しかし、BD問題は4択にしてしまっているので、問題文も選択肢も合わせて罠になっています。
問題文とは回答者との誤解なきコミュニケーションであるべきだというのが私の主張です。 つまり、答えに対しての問い方でなくてはいけないし、正しい根拠でのみ正しい答えが導き出せるようにしなくてならないということです。
(注意力や論理力があれば解けるひっかけ問題まで悪いと言ってる訳ではありませんよ、念のため)
テストやクイズを作る方はもちろん、この問題は日常生活でも起こりうることで、誤解なきコミュニケーションを大事にしていくべきだと強く思う結果となりました。
【おまけ」
①次に「高い」か「低い」かで昇順、降順が決まると思ってるパターン
やっかいなことに、例題のいくつかの問題はこれでも当てはまっちゃうんです。
ただし、「300mの次に高い建造物が301m以上のもの」、「160㎝の次に高い身長は161㎝」になってしまって、破綻します。
この説には根拠がありませんが、ゆえに都合の良いように解釈できてプラス方向にもマイナス方向にも行ったり来たりと便利なので用法としても広まってしまっています。
②主語/述語、装飾語/被装飾語の関係で法則性を見つけようと思っている人
これもやっかいです。体感ですが、正しく文法などのルールをきちんと勉強したことがある方でここに辿り着いた人はいないと思ってます。
(専門家である飯間先生のツイートでも言及されていなかったので。もし文法で解釈できるならご一報ください)
私も専門家ではないし、きちんと勉強した人じゃないので触りだけにしますが、
Cの次に背が高いのは?
↓
Cの(修飾語)次に(被修飾語)背が(修飾語)高い(被装飾語)人は(主語)誰(述語)?
となるので、この文章は複文(1つの単文の中に単文が組み込まれている文)です。
複文なのでまとめると、
となります。
もう少し粘ってみましょうか。
Cの〇〇に背が〇〇な人は誰?としましょう。
Cの(あとに続く、または、一段劣る)背が(大きい)人です。
あとに続くのか一段劣るのか断定できないので、「背が大きい人」とは、「Cのあとに続く背が大きい人」なのか、「Cより一段劣るけど背が大きい人」なのかの区別がつかないので無意味です。
③「次に背(身長)が高い人」と「次の高さ(身長の度合い)が高い人」を混同してる人
Cのあとに続く高さが高い人は誰?
↓
〇〇の順番で基準値のあとに続く高さが高いXは誰?
↓
昇順でCのあとに続く高さが高い人はD。
これはXのあとに続く"高さが高い人”に絞っていて、高さが低い人を排除してしまっているので、文の構造が完全に変わっています。
ちなみにこの解釈をすると、「Xより一段劣る背が高い人」は「Xより一段劣る高さが高い人」になるので、B理論は自己矛盾を抱えることになります。
本稿では、和田秀樹氏らが提唱している暗記数学というものについて述べます。
受験数学の方法論には「暗記数学」と「暗記数学以外」の二派があるようですが、これは暗記数学が正しいです。後者の話に耳を傾けるのは時間の無駄です。
まず、読者との認識を合わせるために、暗記数学に関するよくある誤解と、それに対する事実を述べます。
暗記数学は、数学の知識を有機的な繋がりを伴って理解するための勉強法です。公式や解法を覚える勉強法ではありません。「暗記」という語は、「ひらめき」とか「才能」などの対比として用いられているのであり、歴史の年号のような丸暗記を意味するわけではありません。このことは、和田秀樹氏の著書でも繰り返し述べられています。
類似の誤解として、
などがあります。これらは事実に反します。むしろ、大学の理学部や工学部で行わていれる数学教育は暗記数学です。実際、たとえば数学科のセミナーや大学院入試の口頭試問などでは、本稿で述べるような内容が非常に重視されます。また、ほとんどの数学者は暗記数学に賛同しています。たまに自他共に認める「変人」がいて、そういう人が反対しているくらいです。大学教育の関係者でない人が思い込みで異を唱えても、これが事実だとしか言いようがありません。
嘘だと思うならば、岩波書店から出ている「新・数学の学び方」を読んで下さい。著者のほとんどが、本稿に書いてあるように「具体例を考えること」「証明の細部をきちんと補うこと」を推奨しています。この本の著者は全員、国際的に著名な業績のある数学者です。
そもそも、暗記数学は別に和田秀樹氏が最初に生み出したわけではなく、多くの教育機関で昔から行われてきたオーソドックスな勉強法です。和田秀樹氏らは、その実践例のひとつを提案しているに過ぎません。
暗記数学の要点を述べます。これらは別に数学の勉強に限ったことではなく、他の科目の勉強でも、社会に出て自分の考えや調べたことを報告する上でも重要なことです。
一番目は、従来数学で重要なものが「ひらめき」や「才能」だと思われてきたことへのアンチテーゼです。実際には、少なくとも高校数学程度であれば、特別な才能など無くとも多くの人は習得できます。そのための方法論も存在し、昔から多くの教育機関で行われています。逆に、「"才能"を伸ばす勉強法」などと謳われるもので効果があると実証されたものは存在しません。
大学入試に限って言えば、入試問題は大学で研究活動をする上で重要な知識や考え方が身についているのかを問うているのであって、決していたずらな難問を出して「頭の柔らかさ」を試したり、「天才」を見出そうとしているわけではありません。
二番目はいわゆる「解法暗記」です。なぜ実例が重要なのかと言えば、数学に限らず、具体的な経験と結びついていない知識は理解することが極めて困難だからです。たとえば、
などを、初学者が読んで理解することは到底不可能です。数学においても、たとえば二次関数の定義だけからその最大・最小値問題の解法を思いついたり、ベクトルの内積の定義や線形性等の性質だけを習ってそれを幾何学の問題に応用することは、非常に難しいです。したがって、それらの基本的な概念や性質が、具体的な問題の中でどのように活用されるのかを理解する必要があります。
これは、将棋における定跡や手筋に似ています。駒の動かし方を覚えただけで将棋が強くなる人はまず居らず、実戦で勝つには、ルールからは直ちには明らかでない駒の活用法を身につける必要があります。数学において教科書を読んだばかりの段階と言うのは、将棋で言えば駒の動かし方を覚えた段階のようなものです。将棋で勝つために定跡や手筋を身につける必要があるのと同様、数学を理解するためにも豊富な実例を通じて概念や定理の使い方を理解する必要があります。そして、将棋において初心者が独自に定跡を思いつくことがほぼ不可能なのと同様、数学の初学者が有益な実例を見出すことも難しいです。したがって、教科書や入試問題に採用された教育効果の高い題材を通じて、数学概念の意味や論証の仕方などを深く学ぶべきです。
そして、これは受験数学だけでなく、大学以降の数学を学ぶ際にも極めて重要なことです。特に、大学以降の数学は抽象的な概念が中心になるため、ほとんどの大学教員は、学生が具体的な実例を通じて理解できているかを重視します。たとえば、数学科のセミナーや大学院入試の口頭試問などでは、以下のような質問が頻繁になされます。
教科書や解答例の記述で分からない部分は、調べたり他人に聞いたりして、完全に理解すべきです。自分の理解が絶対的に正しいと確信し、それに関して何を聞かれても答えられる状態にならなければいけません。
たとえば、以下のようなことは常に意識し、理解できているかどうか自問すべきです。
ほとんどの人はまず「自分は数学が分かっていない」ということを正確に認識すべきです。これは別に、「数学の非常に深い部分に精通せよ」という意味ではありません。上に書いたような「定義が何で、定理の仮定と結論が何で、文中の主張を導くために何の定理を使ったのか」といったごく当たり前のことを、多くの人が素通りしていると言うことです。
まず、用語や記号の定義が分からないのは論外です。たとえば、極大値と最大値の違いが分かっていないとか、総和記号Σ でn = 2とか3とかの場合に具体的に式を書き下せないのは、理解できていないということなのですから、調べたり他人に聞いたりする必要があります。
また、本文中に直接書いていないことや、「明らか」などと書いてあることについても、どのような性質を用いて導いたのか正確に理解する必要があります。たとえば、
などと書いてあったら、これは
という一般的な定理を暗に使っていることを見抜けなければいけません。上の命題はpが素数でなければ成り立ちません。たとえば、l = 1, m = n = 2として、4l = mnを考えれば、mもnも4で割り切れません。他にも、
は正しいですが、逆は一般的には成り立ちません。nとmが互いに素ならば成り立ちます。それをきちんと証明できるか。できなければ当然、調べたり他人に聞いたりする必要があります。
l'Hôpitalの定理なども、もし使うのであれば、その仮定を満たしていることをきちんと確かめる必要があります。
さらに、単に解法を覚えたり当て嵌めたりするのではなく、「なぜその方法で解けるのか」「どうしてそのような式変形をするのか」という原理や意図を理解しなければいけません。たとえば、「微分で極値が求まる理屈は分からない(或いは、分からないという自覚さえない)が、極値問題だからとりあえず微分してみる」というような勉強は良くありません。
そして、教科書の一節や問題の解答を理解できたと思ったら、本を見ずにそれらを再現してみます。これは「解き方を覚える」と言うことではなく、上に書いたようなことがすべて有機的な繋がりを持って理解できているか確かめると言うことです。
はじめの内はスラスラとは出来ないと思います。そういう時は、覚えていない部分を思い出したり、本を見て覚え直すのではなく、以下のようなことを自分で考えてみます。
こういうことを十分に考えた上で本を読み直せば、ひとつひとつの定義や定理、式変形などの意味が見えてきます。また、問題を解くときは答えを見る前に自分で解答を試みることが好ましいです。その方が、自分が何が分かっていて何が分かっていないのかが明確になるからです。
以上のことは、別に数学の勉強に限った話ではありません。社会に出て自分の考えや調べたことを報告する時などでも同様です。たとえば、近年の労働法や道路交通法の改正について説明することになったとしましょう。その時、そこに出てくる用語の意味が分からないとか、具体的にどういう行為か違法(or合法)になったのか・罰則は何か、と言ったことが説明できなければ、責任ある仕事をしているとは見なされないでしょう。