このBlogに価値ありとお思いの読者の方は、Amazonでお買い物の際に左のバナーから商品検索してからご購入いただければ幸いです。

2018年07月11日

【IT】無料wi-fi

暗号化されてないwi-fiで通信すると、見る人が見るとダダ漏れってことで、例えば、オンラインバンクで取引しちゃうとパスワードがバレちゃうとかそういうことなんだけど、被災地で無料wi-fiが提供されてるでしょ。

そういうのを使う時に気をつけないとだめだよっていう記事。
https://blog.kaspersky.co.jp/secure-connection-on-00000japan/20742/

そして、この記事中に、これを使うと暗号化できるよっていう制限付き無料ソフトが紹介されてます。

ま、カスペルスキーが何も抜いてないっていう保証は、僕にはできませんけど。。

おわり。
[show this only]
posted by pon at 21:09| Comment(0) | PC/ネット関連 | このブログの読者になる | 更新情報をチェックする

2018年05月26日

2018年05月22日

【社会・IT】Amazon Japanが1000人採用するって

https://headlines.yahoo.co.jp/hl?a=20180522-00000066-asahi-bus_all

これなかなかのインパクトがあると思う。

アメリカではそこそこ実力があるといいお金がもらえるらしいし(思い込みかも)、当然、いい会社の実力者がお金で引き抜かれると思っていいと思う。それぐらい出すんだじゃないかな。1千万の人が1千5百万とか。

前は、各分野の専門家が情報技術を使えるようになった方が速いと思ってたんだけど、情報技術の人もそっちに歩み寄る気概が求められるだろうね。仮想通貨で話題のブロックチェーンなんて、誰かが作ったapiを利用してるだけで、理解してる人、ほぼゼロでしょ?

テーラー展開とか、波動方程式とか、不完成定理とか、それなりにわかるようにならないと、先に進めない気がしてます。

おわり。
[show this only]
posted by pon at 19:29| Comment(0) | PC/ネット関連 | このブログの読者になる | 更新情報をチェックする

2018年04月26日

【IT】さすがぐーぐる

Gmailに新たな機能が付く。
https://www.cnn.co.jp/tech/35118393.html

メールの有効期限を指定できて、相手がメールを読むためには、携帯電話に送信されるパスコードを入力しなければならなくて、受信した相手が転送したり、コピーしたり、印刷したりすることはできない。メールをいつでも取り消すことのできるオプションもある。


すごいのはこれ。
送信する相手がGメールを使っていなくても、こうした機能は利用できる。


なんで、そんなことができるの?ぐーぐる。

さて、別の話。ITじゃないよ。

移植した腎臓が受け継がれるっていう話題。腎臓を移植された人が亡くなったらまた移植しようっていう話題。
https://www.cnn.co.jp/usa/35118400.html

一方で腎移植を受けた患者の約25%は、腎臓の状態が良好なまま別の原因で死亡する。


何だか厳しい現実ってことかな。

統計って怖いよね。せっかく、腎臓移植で命を永らえてるのに、また別の理由で4人に1人は死ぬからさーってことみたい。

おわり。
posted by pon at 18:25| Comment(0) | PC/ネット関連 | このブログの読者になる | 更新情報をチェックする

2018年03月30日

【プログラミング・最終】アルゴリズム(2)

誰がよんでるかわからないこの【プログラミング】シリーズ。これで最後にしましょう。ちょっと多くなりそうですけど。。


ソートですよ。大きい順に並び替えます。それを具体的に一つ一つ進めます。


では、数字の大きい順に並び替えをしていきましょう。


最初の状態はこれです。



まずは、aを基準にします。


aに一番大きい数字が置かれるように動かして行きます。


1.aとbを比べ、大きい方を、aに移動する。bの63の方が大きいので、入れ替えます。するとこうなります(上の画像が下の結果になるという見方をしてください)。



2.aとcを比べ、大きい方を、aに移動する。この場合、aが大きいので移動はしません


3.aとdを比べ、大きい方を、aに移動する。75が。aに移動しました。



4.aとeを比べ、大きい方を、aに移動する。



これで、aに一番大きい、90が移動しました。


念のために言っておきますが、入れ替えは前回説明したように、もう一つの作業場所であるwを使って行ってください。片手でトランプを移動させていくイメージですね。


次は、こうします。


aはすでに決まりました。ですから、b〜eを並び替えて行きましょう。



1.bとcを比べて、大きい方を、bに移動します。50の方が大きいので実際は移動しません。



2.bとdを比べて、大きい方を、bに移動します。



3.bとeを比べて、大きい方を、bに移動します。これで、bも決まりました。



ここまでくると、もう同じように進めていくだけです。


a、bはすでに決まっているので、c〜eを並び替えて行きます。



省略しますが、cが決まってこうなります。



そうしたら、最後、d〜eを並び変えます。こうなりますね。



これで完了です。


そして突然ですが、C言語のソースコードです。


#include 

int main()
{
int tokuten[] = {50,63,33,75,90};
int sagyobasho, i, j;

int yososu = sizeof tokuten/sizeof(int);
printf("ソートする得点の要素数は、%d です\n", yososu);

for (j = 0; j < yososu - 1; j++) {
for (i = j+1; i < yososu; i++) {
if (tokuten[j] < tokuten[i]) {
sagyobasho = tokuten[j];
tokuten[j] = tokuten[i];
tokuten[i] = sagyobasho;
}
printf("j=%d:i=%dについて比較しました\n",j,i);
}
}

for (i=0; i < yososu; i++) {
printf("%d: tokuten=%d\n",i,tokuten[i]);
}

return 0;
}


いくつか需要な解説をします。


まず、これまでの説明では、a、b、c、d、eと書いてきましたが、プログラムでは、0、1、2、3、4と書きます。これはルールです。0から始まってしまうのが難点です。


ただ、アルファベットより数字を使うほうがやりやすいのは確かなんですよね。


aからeまで比較し、次にbからeまで比較するというのを、0から4まで比較し、1から4まで比較するという風に書けます。その時に、基準を示すために、0に1だけ足してあげれば1になるわけです。わかりにくいでしょうけど。


でも、これを見るともう少し意味がわかります。



プログラムの中で、どれとどれを比較しているのか一つ一つ出力させています。


0と1を比較し、続けて、0と2を比較し、0と3、0と4と続きます。


そして、1と2、1と3、1と4。続いて2と3、2と4。最後に3と4です。


この部分が理解できれば、ソートの考え方はわかったといっていいです。あとは、プログラミング言語の書き方を知ればいいだけです。アルゴリズムは、言語に依存しないので、こうやって考えれば結果が出せるということが示せればよいのです。


では、ソース自体を少し見ておきましょう



5行目。これは、並び替える数字を設定しています。50はtokuten[0]にあります。63はtokuten[1]です。これを配列といいます。


6行目の、sagyobashoが、wに相当する場所です。


8行目では、並び替える数字の数を求めています。


14行目から16行目が、入れ替えの部分です。


13行目が、比較している部分です。


11行目が基準となる場所を決めていて、12行目が、基準の場所の隣の位置から比較を始め、要素数より小さい間、繰り返す部分となります。


12行目の繰り返しが終わると、また、11行目に戻り、基準の場所を1つ加算して、12行目を実行します。forというのは、ある数値から1つずつ加算し(実は2つずつとか、減算してとかいろいろありますが..。)、ある条件である間、繰り返すという意味になります。


22行目から24行目で、最終的な並べ替えの結果を出力しています。


では、5行目、中括弧の中を書き換えてみましょう。例えば{80,24,39,71,51,27,90,75,43,82}として、Executeすれば、この場合もきちんと並べ替えできるはずです。



さて、ソートのアルゴリズムはこれだけではありません。


ここで示した方法では、かなり手数が多いんです。要素が100であれば99+98+97+...+2+1=4950回も比較・入れ替えを行う必要があります。


例えば、0から50、51から100までの2つのグループに分けて、要素数が50ずつにちょうど分かれるとしましょう。これであれば、50個分のソートを2回行えばいいことになります。1225回を2回で2450回です。グループ分けのために、100回の比較処理を事前にすることになりますが、それを加えても2550回ですから、かなり減りますよね。


50ずつに分かれることはないでしょうから、実用的には、単純に半分に分けて、最後にまた比較しつつくっつける方がいいんですけど。そうやって、実効性のあるアルゴリズムを考えていけばよいでしょう。


ソートのアルゴリズムにはこういったものがあって見て分かるようにしてますよ、というリンクを貼っておきます。


https://qiita.com/r-ngtm/items/f4fa55c77459f63a5228


おわり

posted by pon at 12:30| Comment(0) | PC/ネット関連 | このブログの読者になる | 更新情報をチェックする

2018年03月25日

【プログラミング】アルゴリズム(1)

誰がよんでるかわからないこの【プログラミング】シリーズ。もう少し続けます。


今回はアルゴリズムについて、ですが、導入部というか、全然アルゴリズムまでは行きませんけど、重要なところ。


ソートを取り上げます。並び替えです。そんなのExcelでやりゃいいじゃんとか、そんなんじゃ、あれっすよ。まーいいですけど。


例えば、県コード、市町村コード、人口というスプレッドシートがあったとして、並びがばらばらだとしましょう。これを、県コード、市町村名、人口の順に並び替えて、県ごとに小計出力して、県コードに県名を紐づけて、印刷してね♪と指示されたら何をどういう手順で行うか、なかなか論理的な思考ができないと難しいんですよ。


数学も、哲学も、プログラミングも、論理であって、どれも大事。ソートなんて、どんなプログラミング言語にでも、ツールにでも最初から機能が付いてますけど、その先の応用をしっかり実行するには、こういった基本の基本の基本ができないと駄目です。


だから、ソート。


だけど、まだもっとさらに基本の話をします。


テストの答案を、得点の高い順に並べるとしましょう。


5枚の答案用紙があります。これ、5枚だからさくっと並べればいいじゃん、っていうことじゃないですよ。これが、100枚でも1000枚でも、やらないといけません。それがアルゴリズムなのです。


何をどういう手順で実行すればきちんと結果が出るかを示すのがアルゴリズムです。


sort1-1.png

まずは、床をきれいにして、答案を並べる場所を確保しましょう。a、b、c、d、eです。そして、きちんと並べます。下には、得点だけ示しています。


sort1-2.png

では、aとbを入れ替えてみましょう。bの方が高得点ですから。それだけが今回のテーマです。


人がやると、何気に、両手でさくっと入れ替えてしまいます。


sort1-3.png

が、これは駄目です。同時に2つのことをしてます。コンピューターは一つ一つのことを順々にしかできないと思ってください。


一つ一つ行うには、片手で処理するように考えればいいです。


というわけで、実はもう一つ場所が必要です。wとします。


sort1-4.png

そうしたら、簡単ですね。入れ替えてください。


















はい。答え合わせをします。一例ですよ。


まず、aからwに移動します。aが空きます。


sort1-5.png

次に、空いたaにbの答案を移します。bが空きますね。


sort1-6.png

最後、wにある答案を、bに移します。


sort1-7.png

これで、aとbの答案が入れ替わりました。


簡単ですね!!


でも、まだまだです。一番大きい90が一番左に来ないといけないのですから


そもそも、人間が見ると90が一番でっかいってすぐわかりますけど、コンピューターはそうではありません。一度に一つのことしかできないのですから。


今は、5枚の答案を一度に見てますけど、コンピューターは一つづつしか見ることはできません。だから、90が一番でかいなんてすぐにはわからないんです。


さっきのaとbの入れ替えであれば、


aの得点をみる


bの得点をみる


aの得点とbの得点を比べる


aよりbの得点が大きいことがわかる


aとbを入れ替える。ここがさっきのところなので、一度で済むところではなかったですよね。

posted by pon at 11:16| Comment(0) | PC/ネット関連 | このブログの読者になる | 更新情報をチェックする