TeXあれこれ
目次にsubsubsectionまで表示させたい!
\setcounter{tocdepth}{4}
sectionの章番号は表示させたくないけど、目次には表示させたい!
\subsection*{hogehoge}
\setcounter{subsection}{1}
\addcontentsline{toc}{subsection}{hogehoge}
subsection名とaddcontentslineの第3引数に与える文字列は同じにしてください。
setcounterのsubsectionを1にするのは、しなくてもOKです。
表をその場所に表示させる!(後の文章に回り込ませない)
\begin{table}[htbp] % 浮動
では、スペースが開いている、かつ、表がそこには表示できない場合に、
後の文章が回りこんでしまいます。
そんなときに!
\usepackage{here}
\begin{table}[H]
\end{table}
ページ番号を付けない!
\pagestyle{empty}
目次などに使えます。
表の行を結合するときに偶数行の場合、真ん中に表示させたい!
奇数行で真ん中に表示させたいなら、
書きたくないマスは空文字(何も書かない)で、
\cline{n-m}
で横棒を引きたい所にひけば、できます。が、、、!
奇数行の時に真ん中に表示はこの方式ではできませんよね。そこで、、、!
\usepackage{multirow}
\multirow{2}{*}{hogehoge}
と最初の行で記述し、後は、空文字にすればOKです。
multirowの第1引数は、まとめる行数です。
第2引数はよくわかりません(教えてください
「表1」などの書式を変えたい!
これに関しては、プリアンブルに関することになりますが、
本文中にも記述できます。
\def\thesection{第1節}
javaの疑問を解消しよう part1
問題。
public class C { public static void main(String[] args) { new B(new A()); } } class B { B(C c) { } } class A extends C { }
このソースコードは正しいですか?
答え。
正しいです。(もちろんこのソースコードに意味はありません)
Cクラスでは、メインメソッドで、Bクラスのインスタンスを作成しています。
Bクラスのコンストラクタでは、第一引数にCのインスタンスを与えなくてはならないと定義しています。
それなのに、CクラスでのBクラスのインスタンス生成時に、
引数として、Aのインスタンスを渡してしまっています。
これは一見間違いだと思いがちなのですが、
Aクラスのコードを見てください。
Aクラスは、Cクラスを継承しています。
継承しているということは、Cクラスの機能を包括しているということなので、
Aクラスは、Cクラスの代用もできる、
ということになります。
したがって、引数として、Aクラスのインスタンスを渡しても、
それは正しいということになるのです。
原子力発電原子炉 38th-day
Commentary.
軽水炉の水の役割は、冷却材と減速材の2つである。出力が上がり、水の温度が上昇すると、水の密度が減少し、
中性子の減速効果も減少、それに伴い、核分裂する中性子も減少し、
核分裂は抑制される。
抑制されると、水の温度は低下する。
この自己制御性を利用している。
原子力発電には、加圧水型(Pressurized Water Reactor)と沸騰水型(Boiling Water Reactor)の
2種類がある。
加圧水型は、冷却材を沸騰させずに蒸気発生器を介してタービンへ伝達する。
このため、放射線は漏れず、保守管理は楽になるが、構成は複雑になる。
出力の調整は、ホウ素濃度や制御棒の抜き差しによっておこなう。
沸騰水型は、冷却材を沸騰させて、そのままタービンへ送る方式である。
これは、放射線が漏れてしまうため、タービン部分を遮蔽する必要がある。
このため、保守管理は難しいが、構成は単純である。
出力の調整は、再循環流量の調整か制御棒の抜き差しでおこなう。
炉心上部に汽水分離器や蒸気乾燥器があるため、出力容器は、加圧水型よりも大きくなる。
つまり、PWR, BWRの大きな相違点は、蒸気発生器があるかないかである。
制御棒での調整について、
制御棒を挿入すると、出力は低下する。
制御棒を抜くと、出力は増加する。
Consideration.
沸騰水型は、加圧水型に比べて蒸気発生器はないが、蒸気乾燥器や汽水分離器があるため、大きさは大きくなる。
制御棒は入れると低下、抜くと増加する点に注意が必要である。
これは、制御棒とは、中性子を吸収させる役割があるためである。
中性子が吸収されれば、出力も低下する。
以上の点に注意が必要だ。
原子力発電概論 36th-day
Commentary.
日本の原子力発電所は、主に軽水型である。軽水型原子力発電所の燃料には、低濃縮ウランが用いられる。
原子力発電に使われるウラン235は、天然ウランに0.7%程度しか含まれていない。
よって、これをガス拡散法や遠心分離法などによって濃縮する。
核分裂反応が起きにくいウラン238は、中性子と反応することによって、プルトニウム239に変化し、
その際に発生した、エネルギーが発電に寄与することもある。
核分裂とは、以下の化学式によるものである。
原子核に中性子を入射すると2種類の原子核に分裂し、
質量欠損分の200MeV(エレクトロンボルト)のエネルギーが発生する現象である。
原子力発電は、発電方式では、汽力発電に似ている。
原子力発電 | 火力発電 |
---|---|
原子炉 | ボイラ |
原子燃料 | 化石燃料 |
原子燃料とは、主に核分裂反応が起きやすいウラン235であるが、
天然では、99%以上が反応が起きにくいウラン238である。
Consideration.
しばらく電験ブログを更新できませんでした。。試験まで残された時間は短いので、もっとペースをあげていこうと思います!
ただ、ブログに上げるのは、少し遅れるかもしれません。
今日からは、少しの間、原子力発電のはなしです。
軽水型原子力発電は「軽」い水を使うから「低」濃縮ウランを使う。
ウラン238 + 中性子 → プルトニウム239 + エネルギー
ウラン238も、この変化の際のエネルギーを利用することがある。
ウラン235や238などややこしい。。
Socket通信アプリケーション備忘録 No.2
前回からの改善点
前回のエントリーはコチラ。meriyasu-blog.hatenablog.comまずは、単純なミス。
サーバー側でクライアントに対応するための各スレッドにSocketインスタンスを渡すのを
忘れていました。
これでは、スレッド生成しても、クライアントの判別ができないので意味がありません。
MyThreadManager thread = new MyThreadManager(socket);
thread.start();
もちろん、MyThreadManagerは、Threadをextendsします。
このほかにも、startメソッドをオーバーロードし、Socketを受けるstartメソッドを作るという手もあります。
次に通信について。
これまでの考え方では、
ローカルにおいて、座標情報などはすべてリスト(ArrayList, HashMap)に保存し、
リストをリモート側に送信する。
適宜、ファイル化する。
送信・受信形態は、Object Output/Input Streamクラスを利用し、
#writeObject, #readObjectを使用する。
しかし、重大な欠陥が判明...
ObjectOutputStream/ObjectInputStreamは、
通信するデータは直列化されていなければ、ならない。
つまり、シリアライズなどをしなくてはいけません。
ArrayListには、独自クラスのインスタンスなどを格納しており、
その独自クラスも、Serializableインターフェースを実装し、シリアライズUIDも設定していたのですが、
なぜか、うまく動作しません。
デバッグによりわかったことは、
ObjectInputStreamのインスタンス生成時にフリーズしている。
ということです。
つまり、送信するデータなど関係なかったのです。
StackOverFlowなどにもこのようなエラーについて、
OutputStreamを先に定義しろ、
などの記述がありましたが、それは関係ありませんでした。(もしわかる方がおられれば教えてください)
結局、違う通信形態をとることに。
その方法について、入力側は、BufferredInputStreamを用い、
出力側は、PrintWriterを用います。
また、BufferredInputStreamは任意のオブジェクトを扱えるわけではないので、
データは文字列型にしました。
文字列型を受け取ったのち、ローカル上解析メソッドで、要素をリスト形式で返す仕組みにしました。
いろいろ試行錯誤した結果、、、
なんとか完成しました。
あとは、オプション機能を付け加えていくだけです...