M2になったらしい 就活とかなんとか

おはようございまーす.

もう4月なのでM2になりました.大学が完全に沈黙しているので学年が上がった感がありませんが.うちの大学もめでたく登校原則禁止になっています.

 

ここでは140文字以上投下出来ることに感謝しつつクソポエムを投下したいと思います.

*   *   *

突然なんですが,就活をしています.

割とこれ先生とかからも驚かれたのですが,元からその予定ではいて同期には「内(々)定は取り得」とかずっと言ってました.とはいえ,その分研究の時間が削れられるわけで,たくさん受けまくるのはディスアド,数絞って投げて通った中と進学を天秤にかけて考えるのがパレート最適やなあ~という理論です.実際,就活のお約束的などをほとんど勉強しないまま,インターン,説明会には進んでしまったのものの,学部時代の経験や競プロ経験が生きたのか,いい結果をいくつか頂けました.

 

それでここまではいい話なんですが,実家の方の状況がわりと変わってしまい,(進学をするには)相当な額を例の団体からお金を借りなければならず(前の計算ではいくつかの制度やバイトと,わずかな額を借りれば足りる計算だった),早い話がひよって諦めた方に傾いたというわけです.周りの話を聞くなかで,そもそもこんな程度でひよっているようではだめなので,この選択は仕方ないのかなと思います.

 

自分の中でものすごく心にひかかっているのは,ずっと能力的なことをずっと気にしていたのに,最終的に金銭面を理由にして(かなり大きな理由の1つではありますが),いい話のように落とそうとしている自分が許せないことです.実際,この段階で結果が出ているならまだしも,今の自分の進捗は「上手くいけばいいなぁ」という話があるだけに過ぎません.その意味でも,やはりレベル感というか温度感を見誤っていただけのバカだったのかも知れません.この話だって十分な能力がある,いける見込みがあると分かれば全然問題ない話です.無事修了できればきっと返せるはずです.自分の脳力では博打にしかできん.分が悪すぎる賭けは現代社会でやるとヤバい.ここまで学生に対する当たりが強い国でこんな無謀なこと考える人いないと思いますけど.

 

話は変わって就活に戻りますが,面接も落ちることなく順調だったのですが,""新型コロナウィルス""のせいで選考が露骨に遅れ始めます.私は(就活に本当に疎いので)「内々定全部揃ってから考えるか!」とかとぼけたこと言ってたのですが,採用業務を大量に抱えている企業が無限時間待ってくれるかというとそういうことはなく,いわゆる受諾期限というやつで,今あるやつをどうするか,残ってるやつをどうするかを本気で考えなければいけません......時期が悪すぎるまじでコロナ許せねえ.

この辺の話はオチがついてないので詳しくは書けませんが...

 

ここまでいうと,本当に不本意で就活しているように見えますが,それに関しては決してそういうわけではなく,いずれは(普通に)就活するつもりだったのでそれが早くなっただけだと考えています.非情報系競プロ純粋培養なのでむしろ2,3年伸びたほうが怪しかったかも知れん.その中でも,(ITスキルに関して)取り組んできたこと,取り組んできていないことをきちんと話した結果,ある意味でポテンシャルを評価してもらえた企業さんにはものすごく感謝しています.

 

*   *   *

というわけで,あと1年になってしまった大学院生活ですが悔いのないように頑張りたいと思います.新M1の人は,いきなり出鼻をくじかれてますが悔いのないようにお互いがんばりましょう...

 

ここからの大逆転や留年もありえないわけではないですが...

 

VSCode + wslの競プロデバッグ環境メモ


おおよそ備忘録です.C++どころかコンピュータなんもわからん.おま環満載だと思います...

 

・ここに出てくるもののバージョン

VSCode: ver1.38.1

g++(windows) 8.2.0

gdb(windows) 7.6.1

g++(wsl) 8.1.0

gdb(wsl) 8.1.0

 

CLionで競プロをしていたのですが,あまりに入力時などのレスポンスが悪かったり,もりもりとメモリを食いつぶしていくので,VSCodeに乗り換えようとしたときのメモです.

 

VSCodeで単に出力したmain.exeを実行する分には,適当にg++ man.cpp -O2 ---std=gnu++1y -o main.exe とでもして実行すればいいですが,デバッグ環境となると結構面倒なことになりました.

 あとは,デバッグするときには"-g"と"-O0"とでもしておいて...と思っていたのですがうまく行かなくて...

 

というのも,VSCodeの下でgdbデバッグをすると,標準入出力ができないようです.

        {
            "name": "(gdb) launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/main.exe",
            "args": ,
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": ,
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": (๑•﹏•๑`)\\gdb.exe",
            "setupCommands": [
                {   
                    "description": "gdb の再フォーマットを有効にする",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },

externalConsole:trueにすると,標準入出力が入るという記事はググってよく出てきたのですが,こちらの環境では再現できませんでした.困る.

stopAtEntryあたりもダメそうです.

困ったのでファイルから入力を送り込もうともしたのですが,"args"に書いてもうまく行かないっぽい?("<","hoge.in"とか)

一応stopAtEntry : true, externalConsole : falseだと入力できるのですが,最後に出力したあと即終了してしまって出力を確認できない問題がどうやっても解決しなかったので...

 

 

kamiyaowl.github.io

という記事を見つけ,codeLLDBを使え,とある.

これを使うと確かにintegrate terminalが使え,オプションとしてファイルからstdinが出来る.

        { "name": "(lldb) Launch with stdin(./main.in)",
              "type": "lldb""request": "launch",
              "program": "${fileDirname}/main.exe"
              "args": [], "cwd": "${fileDirname}"
              "terminal": "integrated"
              "stdio": ["${fileDirname}/main.in"nullnull],
        }

この環境だと,デバッグ中変数の中身が一切見れない問題が起こる.(普通は見れるらしいんだけど...)ブレークポイントは動くんだけど,ソースコード単位でステップ実行ができないっぽいところもあんまり合わなかった.

 

これもやはりググるSTLまわりの変数が見れないという記事が出ていて解決法が乗っているがそもそもなんの変数も見れなくて,試してみたけどだめでした.

 

どっちを使っても微妙なので苦い顔をしている.

しゃーないのでwslを使ったやつを試してみる.あおかびさんの

qiita.com

通りに入れてみる.このへんで

sudo apt install gdb

も叩いておくと良さそう.

あとは,launch.jsonとtasks.jsonで,下の記事を参考にペタっとさせていただく.

qiita.com

 

これでもやはり見えない変数がある.-gとかそこら辺は入ってるのに.ここからはひたすら1つずつそれっぽいものを試す作業を繰り返して,結局

コンパイル時に

"-D_GLIBCXX_DEBUG"

を刺すとすべてが解決しました.STLも見れるし見えない変数もない.

 "tasks":[
    {
        "label": "build",
        "type": "shell",
        "options": {
            "shell": {
                "executable": "C:\\Windows\\System32\\wsl.exe",
            }
        },
        "command": "g++",
        "args": [
            "-std=gnu++1y",
            "-g",
            "-D_GLIBCXX_DEBUG",
            "-O",
            "-I/opt/boost/gcc/include",
            "-L/opt/boost/gcc/lib",
            "-o",
            "`wslpath",
            "'${workspaceFolder}\\main'`",
            "`wslpath",
            "'${file}'`",
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
    },
    
    ]

ぐらいをつけておけば良かったです.長かった.

 

現状ではCode-Runner(拡張機能)で,これを呼び出すことで,

(hoge.sh)

while true
do
    echo "-------------------------"
    ./main
done

F5を押すとmainを連続実行する,テストケース連続確認などに使えて

F6を押すと上のデバッグ用のオプションのついたコンパイル+デバッグ実行をする,といった環境が作れました.

f:id:lilies_lit:20191008090241p:plain

(Xが見えないのは後にもう出てこないのでおそらく問題ない挙動だと思います...)

卒業したわーい

 すごい 卒業しただけで110ふぁぼもきた すごい

 

f:id:lilies_lit:20190402222827j:plain

 

学類長賞もらえた すごい

なにも事前に聞いてなくてスマホ見ててごめんなさい ゆるして

 

1年間,計算機代数をしたので,4月からはいっぱい計算機代数をします.

なんかいっぱいがんばってすごいことがしたいです

 

おわり

 

 

 

 

辞めるのは軟弱者だけです(2)(どうにもなりません)

前回の続き

 

結局,その3年間で得たものの大半は苦痛と悪夢だけだったということ.

彼らの言う練習は私にとっては晒し上げにしか機能しなかった.あのような環境の中で,正しい指導を得て,瞬時に理解をし,思い描いたように体を動かし,うまくいかなかったら修正するというサイクルはどう考えても不可能だった.ここで本当に運動が一切できなかったら紛れこんだ本物の運動音痴で済んだのかも知れないが,どういうわけか足だけは早かった.もちろん嫌味を言われる材料になる.初めてなのでそれを加味して外野に回されるが,未だに正しい外野フライの捕り方が分からないし,そもそも存在するのかも分からない.遠視と乱視があるのもあって曇りの日のフライは最悪だった.ボールが消えませんか?

 

失敗するたびに同級生から向けられる視線は当然そういうものになる.「こいつ試合絶対出さないで欲しい」と「蔑み」の混じった目がどういうものなのかを覚えてしまった.高校に入ってからもこの目を見たし,きっと社会不適合なので社会に出てもそういう目に遭うだろうと思っている.そう考えるともう既に心が苦しい.

 /////////// /////////// /////////// /////////// /////////// /////////// /////////// /////////// /////////// ///////////

 

そして市外の高校に入った.「絶対こいつ高専行くだろ」と言われ続けていたが,実際の進学先は,諸般の事情から詳しく書くのを憚られるが,いわゆるブラック自称進学校だった.ここもやはり地獄.全然違う環境なはずなのに,まったく同じ辞めたくても辞められない状況が起こる.

 

そもそもあの中学の部活を辞められなかったのは,報復が怖かったのと孤立するのが嫌だったからであったが,次は「高校を辞めるというのは,社会通念上かなりの確率で人生が厳しくなりすぎる」という問題と戦うことになった.同級生の中で,きつすぎて辞めた人間もいる,という状況は同じだった.

 

高校,知り合いが1人もいない,友達ができない,2日目にして明確にハブられる.つらい.朝6時起床と大量の課題も合わせて既に心は折れた.

 

夏休みも10日しかないのに課題は4倍分ぐらいあるし,休みの日に家を出れた試しがない.日が変わるまで課題と明日の予習をしても終わらないので当然である.もちろん自称進出身の人なら分かると思うが,予習はしてこないと晒し上げか怒鳴り倒されるかの二択である.校則に違反すらしてないのに怒鳴り散らかしてくる教師といいなんといい,怒鳴り散らかすことで「統治」する様は,中学の頃の顧問を彷彿とさせた,というよりそのままだった.

ここでTwitterというやつを覚える.こいつはものすごく中毒性があるやつで,他の人からリプライが帰って来たり,それだけではなく向こうから話しかけてきたりもする夢のツールであった.家族以外の会話の95%は占めていたと思う.当然,自分の高校の異常性を再確認したのは言うまでもない.リアルで知ってる人なら分かると思うが,「自分が声を発さなかった日がほとんど」というレベル.

 

一番やばかったのはクラスの人を全然覚えていないので,もう1年も終わろうかという頃に,クラス担任に「ーーさんにこれ持っていって」と言われた時だった.「誰?」

なんとか特定したものの要件には取り合ってくれないわけで. 

 

結局2年ではクラス再編成はしたものの上のクラスには上がれなかった.成績が上がらないのでひたすら環境を恨んでいた.

2年でも大きな変化はなかったが,あまりにしんどすぎて高校辞めたさゲージが最大値を示したのもここだった.修学旅行の週にも課題が出て,移動中とホテルで課題してたら,帰りの新幹線で課題増やされたの思い出してウケる.もはや進学成績を稼ぐ工場という比喩も嘘じゃないと思う.

実はここら辺で数学科志望を決める.理由はわからない.

 

3年になって上のクラスに上がれた.上のクラスに上がることが決まった日にいろんな人に初めて声をかけられた.よっぽどよそ行ってくれるのが嬉しかったんやろな.もちろんまともな精神状態ではなかった.受験期だからしょうがないね(?).

この頃になるとTwitterしまくってるのはかなり響いてくる.が,精神安定剤というか精神維持装置だったのでどんだけコストが高くても辞められなかった.当然,成績はまったくあがらず,名大志望だったのだが,夏A判定だったものが秋に入る頃には壊滅的になる.それでも強烈な課題と,2ヶ月に10回を超える模試(もちろん強制でサボると後日受験が待っている)のせいで,ここまで追い込まれてやってるのになんで伸びないんだろうという気持ちだけが募る.周りは自分ほど苦しんでいる様子がない.自分だけが数学科志望なのに,模試数学6点を出したり,赤点をとったりした.もうなんも分からん.明らかにアンマッチな成績に向けられるクラスの視線は嫌になるほど昔向けられていた「蔑み」の目だった.担任に煽られるわ,教科担任には怒鳴られるわ.どうやっても集中できなかった.工場の一員にはなれなかった.

 

この頃から,本当に人の声が聞こえてないと心配になるようになって,寝るときにニコ生を開いて寝る癖がつく.人の声が聴こえて生放送じゃないとダメらしい.典型的なインターネット依存だと思う.ちなみにこれは4年経った今でもそう,だいぶマシにはなったが.

 

そのせいで勉強してるフリだけはどんどん上手くなっていく.結果が出ていないので出来てないのは明らかなのだが.本当に手がつかなくなると半日ぐらいずっとTwiterしてた気がする.今でもそうだと思う.実際私は本当にロクに集中して勉強してません.静かなのが怖いので無理です.落ち着いて椅子に座るのも,騒ぎすぎて特別学級にぶち込まれかけた私には無理です.

 

クラスの彼らは天才とは思えなかった.でも,ものすごい集中力でやすやすとこなしていく彼らを見て自分だけできない理由が当時の私にはさっぱり分からなかった.今でもあんまり分からない.あの集中力はどこから湧いてくるの?

 

緊張と苛立ちで体がおかしくなる.腹痛ではないがまともに試験どころじゃなくなることも多くなる.結局センターはコケて筑波大を受けた.

 

おそらく裏ではボロカス言われてたに違いないが,もう知る由もない.本当にあの頃と一緒だった.別に変な意図は含んでないが,「ここまでやったのにここまでしか行けなかった」なのか,「むしろこれでまだ助かった方」と取るべきなのかは今でも謎が残る.極度に効率を求められていく受験という中で,自分が一切納得ができない締め付け型の進学実績工場勤務.自分にはこんな環境でさえなければもっと納得が行く結果が得られたのかも知れない.今でこそ高認で上手いことやってる人間を発見できるので踏みきれたかも知れないが,当時の私には,というか親もだが,絶対許されなかっただろう.

 

進路もまあ博打みたいなものだった.ちゃんとした高校なら数学科ではこういうことをしていて,お試しでテキストを開いてみてかじってみたりとかをする余裕もあって,TLの天才だと高校の間に消化しきる人間もいる.自分は何も出来なかった.

 

 大学編はまた今度にするが,やっぱり高校時代を自称進学校にいたという事実は大きかった.それ高校の頃に本で読んだわ,先生に聞いたわ,....そうですか.

最初に困ったのが人との遊び方が分からないので,人々がどこで何をして遊ぶのかまったく見当がつかなかった.週末に友人と遊ぶのが小学校中学年以来だったので常識が一切通用しない.すごい困ったし今でも困ってる.

 

結局,与えられた環境(というか一度は自分で手にした環境)は簡単には捨てられないということですね.慣れないことはやるもんじゃないよまったく.

 

午前4時に書いた文章はやばいですね.寝れなかったので. 

長いのでこれはここら辺で切っておきます...

 

 

 

 

 

 

 

 

 

辞めるのは軟弱者だけです(なんで部活やめないの?

(めちゃくちゃなので後で書き直します.たぶん)

これはある人には同情してもらえるかもしれないし,ある人にはただの甘えだと思われるけど.どうしていいか分からないっていう話.

 

 

昔から夜中から明け方にかけてものすごく眠りが浅くて,特に悪夢がひどいんですが,ここ最近1ヶ月で途中で目が覚めずに寝れた記憶がないです.つらい.

 一番きついのが,部活のころの悪夢を見るんですね,しかも中学の頃の.

今B4なので,もう7,8年ぐらい経ってません??結構嫌ですよね.

 

 中学校は普通の田舎公立.小学生のころから野球がしたかったんですが,親とかの意向で中学校に入ってから部活で始めれば?となる.でもこれ普通にうまくいかない.実際に入ってみると,自分以外の人は経験者なんですね全員.いやあ普通に考えると当たり前なんですけど,当然「お前見たことないけど誰」ってなるわけです.まあそれはまだ良かった.そんなに同級生からは悪い風には扱われませんでした.表向きの話ですけど.

そもそもやったことがないからどうやっていいか分からない.入る前に1人で出来ることって物も場所もない.実際のところどうしようもないと思ってるんだけど.別に身内に詳しい人がいたわけじゃないから,ルール以上のことはあんまりわからない.これに関してはもちろん.「見て覚えろ」と言われるわけで.

はっきり言って見て覚えろってかなり無茶な要求ではないですか?そもそも私が見たとおりに体を動かすのが苦手なのは少しはあると思うんですけど,はっきり言って全然何をどうすればいいか分かりません.「はーん,そうするんな」って思ってみててもすぐに怒られてたりして,どれが正しいのかも分からん.しかも言ってる内容ころころ変わるし.腹いせとしか思えん.ああいうのは正直,実質指導放棄だと思ってるんですが,あれを美とする世界があるですね.そもそも,他の人のプレイをじっくり見るなんて状況ありませんよね?大概走らされてるか,球拾ってませんか?経験者各位.

それでも失敗するたびに,死ぬ気でやれ(クソ便利な言葉)が飛び交うんですが,死ぬ気でやるような人間が公立中の部活なんかでやらないでほしいしやってないと思うんですが.

まずどうするのが正しいやり方か分からない&&そもそも間違ってることに気づけない&&わかったところで直せるほどの練習を与えられない(失敗したときの罰は走らされるだけなのでうまくはならない)の三重苦で正直なにもうまくなる気がしませんでした.うまくいくかは運みたいな. 出来もしないのにやらされて解決策は与えられないって,もうまぐれで成功させる以外に道がないね.

 

さらに顧問が何言ってるか分からない.部活の時間中に違う部活に遊びに行って戻ってこなくなるような状況だもん.何も良いことが起きない.バカみたいに説教が長いんですが,練習試合が終わってから2,3時間説教とかもザラだし,部活以外で廊下であったら説教されるとかもザラでした.2,3時間も説教してるくせに中身がちっともないので,5回ぐらい同じ話をループするんですよね.もう数えてられん.これ話し出すと1世紀ぐらい使いそうなので別にしたいと思います.

ちなみに,暴力はありませんでした.椅子蹴り飛ばして脅すとかぐらいです.

 

地獄はまだ終わらなくて,こんだけヘッタクソだから一生球拾って終わるんかと言われるとどういうわけか分からず,試合に出されるわけです.結果はお察し.後輩erは当然自分よりうまいので,最終的に何を言われるかと言われると「何のためにお前出してると思ってんだ」というありがたい言葉をうけます.それを言うために出してるとしか思えませんでした.後輩に馬鹿にされるキャラはこのへんでついたと思います.みんないらないことを言うと自分のみが怪しいので「あいつを出すな」っていう人間はいませんでした.みんな思ってたと思うんですけど.

 

そして3年夏の最終戦で戦犯になりました.詳細は書きはしませんけど,正直あんまり記憶がありません.なぜだろう.あとから後輩erから「あいつみたいになるな」とボロクソ言ってたらしいです.ウケる.あんまり覚えてないのはたぶん開放感のほうがでかかったんじゃないでしょうか.なお引退してからも呼び出されてテストの成績が悪いと説教を受ける模様.学年トップなんですけど.

 

今となってはステレオタイプなものだと思えるようになったけど,あの空間はやっぱり合理的な概念が一切ないなぁと.最近Twitterで「小中高でも指導じゃなくて子供らを走らせて遅い速いでわーわー言ってるだけ(意訳)」という主張を見ましたがあの延長線だと思います.大学に入って体育の「指導」というか初めて正しい方法というのを教わって感動した記憶があります.あの空間では合理的な方法なんて関係ないし,意思の疎通なんてでかい方出し方が勝ち(は?).正直二度と関わりたくない人種です.

 

何が悪かったの?

ホントは温度差がね~,「死ぬほど真面目でなくてもたかが公立中の部活やぞ~っていう気でいたのが悪かったね~ごめんね~」で済まそうと思ったんですが,どう考えてもまともな指導を受けていなかったということと,腹いせのためにやられていた感がすごい残ります.なのであんまり自分が悪かったという気になれません.クズなので.

 

楽しかったこと?

紅白戦で顧問が乱入して,その結果サヨナラエラーで,校庭ぐるぐる走らされたこと.

 

こんな部活にいて,なんでやめなかったのかは本当に謎です.たぶん内申とかいろいろ脅されてたんでしたっけ.辞めたら絶対嫌がらせを受けることは明白(というか辞めた人がそうなってた)だったのもあったとは思います.

悪夢で出てきても,ずっと「辞めたい辞めたい」って思って目が覚めて,起きたあとも明日も行かないといけないっていう気分になってて,数秒後にうん年前の話だったって気づく.すごい寿命が縮まりそう.ノックの前なんかを思い出すだけで今でも吐き気が出そうになります.もう出なくはなりました.

 

――辞めるのは軟弱者だけです

辞めないのも十分に軟弱者だったわ.

最終的に7,8年後まで残ったのは当時の日常的な恐怖と緊張だけだったというわけです.あ,でかい声出すのと,一瞬で頭下げる技術と,前の人と歩調が合うってやつもあったわ.もう実質PTSDでしょ.今日こそ安眠したいです.おわり.

 

(最近はまともにプロ野球とか見れるようになったので良かったです.)

 

 

 

急性低音感音難聴になった回

1週間ほど耳鳴りが止まらないので,いや~さすがにと言って1時間半待ちの病院に行ったところこうなりました.1時間半待ちは実質アトラクションなんだよね.左耳から一生ゴーーとかいう音がするタイプのアレです.

聴力検査をしたら,左耳の低音域がきれいに中度難聴に入る辺りまで落ちてました,頭が悪いので耳鳴り以外で気づかなかった.(悪いのは耳)

Feel the beatをしてもbeatを半分しか感じられないんだよなあ

f:id:lilies_lit:20181220084107j:plain

これまだましなときのやつですね.

 

7,8年前にも同じ症状出て,あのときはビタミン剤を適当に飲んでたら治ったのですが,それが再発したってことで,突発性難聴じゃなくて上のやつでしょうということらしいです.突発性難聴って再発しないんやね.はえ~.

かなり治りにくかったり,再発したり,メニエールになったりするらしいのでめちゃめちゃ怖い.

 

液体状の薬と漢方,ビタミン剤と,なんかもう1個粒のやつ,それと1週間ほどステロイドを飲んだりしたわけですけど,その液体状の薬が,

www.rad-ar.or.jp

この薬がまじでまずいの.人間が口に入れていいものの中ではトップクラスにまずい.薬剤師と医者に「まずいけど冷やしたらいけます」とか言われたけど,うっそいうなエアプかよ死ぬほどまずいんじゃい.

まずすぎて舌がイカれてきたので,最初はコップ2杯使ってコレ飲んでたけど,今では水なしで飲めるようになった.これ一発芸にしていい?

で,35日分の薬×4種類とか始めてもらったわ.紙袋2つ,これもアトラクションですね.それでも治ったり治らなかったりしながら,1ヶ月がたっています.これはもう治らんかもわからんね.

 

その話を友人O氏にしたところ,「1週間も耳鳴り無視するやつおる?」と散々に言われたので数日治らなかったらみんなも病院へ行きましょう.

Elimination , Extension

代数閉体,ここでは特に\mathbb{C}係数とする.

 

連立方程式x^2+2y^2 - 3 = 0 \\ x^2 + x y + y^2 - 3 = 0

を考える.イデアルI = \langle x^2+2y^2 - 3 ,x^2 + x y + y^2 - 3 \rangle \in \mathbb{C}[x,y]の零点集合を考えれば良い.

多項式の並べる順序はxの次数が大きい順,同じときはyの次数が大きい順に並べる(辞書式).

これのGrobner基底Gをコンピュータくんに計算させて得る.Grobner基底は,ある多項式をその基底で割り算したときの余りが一意になるもので,

 f \in I \iff f\text{を}G\text{で割った余りが}0

が成り立つ.

 

そうすると,Grobner基底 G = \{g_1,g_2,g_3\}は,

g_1 = x^2 + y^2 - 3\\ g_2 = xy-y^2\\ g_3 = y^3 - y

 つまりI=\langle x^2+y^2-3,xy-y^2 , y^3 - y\rangle

と考えて良い.

 

こうすると,最後のy^3 - yxによらないy多項式の元,すなわち,I \cap \mathbb{C}[y ]の元になっている(Elimination of x)が,実はイデアルI \cap \mathbb{C}[y ]のGrobner基底が,\langle y^3 - y \rangleとなっている.

 

このy^3-yを解くとy = 0,1,-1になる.連立方程式を解くときはこれを他の式に代入してxを得ればよい.

すると,(x,y)=(-1,-1),(1,1),(\sqrt{3},0),(-\sqrt{3},0)が得られる.

すべてのy=0,1,-1に対して解がきちんと得られた.

 

うまくいかないやつ.

xy-1=0 \\ xz-1 = 0

Grobner基底を計算すると,

\langle xy-1,xz-1 \rangle = \langle xz-1, y-z \rangle

なので,解けているところy-zからy=zである.これをaと置く.

このaa=0のときは, az - 1 = -1になってしまってxz-1 = 0の解がなくなってしまう.a=0でなければx = 1/aで良い.

 

操作自体は人間が普通に解くように,適当に変形してy-zみたいなわかりやすい形にしてそこで関係式を得て,残りの式に代入して他の変数も得る,これと同じことを行っている.

 

Grobner基底の計算で行っているのは,出てくる変数の一部を消去しようとしている.人間が普通に連立方程式を解くときも変数を減らそうとするのが普通なので,それと対応していると考えられる.

(ただしこれはlex orderにおけるelimination idealを考えている場合に限られる,パラメータとして変数を与えていて,残りの実際の変数よりも大きくなるような順序を与えることでパラメータ消去と見ることもできる.)

 

それでは,一部の式から残りの式に代入してうまくいくかどうか,というのは次のような言葉を使って説明できる.

 

今の最後の例だと,一部の式から(y,z)を得て,それを(x,y,z)に延長(Extension)しようとした.a=0だと失敗し,それ以外だと成功した.

実は,既にわかっている(y,z)から(x,y,z)に延長するときは,イデアルの基底それぞれをg_1,\ldots,g_s(ここではy-z,xz-1)に,ここまでの暫定的な解(partial solution)y,zを代入して,xの最高次の係数(すなわち,y,z多項式)がどうなるかを見る.

どのg_iもその代入によってxの最高次係数が0になってしまったら,(x,y,z)に解が延長できない.0にならないものが1つでもあれば解が延長できる.今回の例だと,xz-1zが係数であり,ここがz=a=0だとxの最高次xが0に消えてしまうので解が延長できず,a \neq 0だと係数が消えないので解が延長できる.

 

参考文献

David.A.Cox, John Little, Donal O’Shea, Ideals, Varieties, and Algorithms, Fourth Edition”, Springer, 2015