日誌

情報技術科ここだけトピックス

虫眼鏡 疑似乱数

サイコロをふってでる目のように、不規則な動きをさせてみたい。

C言語にはランダムな値を得るしくみとして、rand( )と初期化のためのsrand( )関数があります。rand( )だけではいつも同じ順番に数が得られてしまうのでsrand( )に現時刻を与えることで不規則な値を得るように見せかけることができます。

基本的にC言語など多くのプログラミング言語で準備されている乱数の仕組みは疑似的なものなので、疑似乱数と呼びます。

記念日 うるう年

2月は28日までだったり、うるう年は29日までだったり・・・
でも、うるう年ごとにスマホやパソコンの日付を設定せずに自動で表示されています。

うるう年は「4の倍数年にあり、でも100の倍数年には無く、でも400の倍数年にはある」というものです。
法則性があれば、プログラムで解決しやすいことになります。
たとえばC言語などで丁寧に組み立てるとしたら、次のように

  if(year % 4 == 0){
   if(year % 100 == 0){
    if(year % 400 == 0){
     days = 29;
    }else{
     days = 28;
    }
   }else{
    days = 29;
   }
  }else{
   days = 28;
  }


考え方次第では、もっと少ない処理で同じことができます。(%は余りを求める演算)

10の乗数を表すSI接頭辞(2)

小さな数を表す接頭辞(接頭語)としては、
m(ミリ)=10-3=0.001 ※千分の1
μ(マイクロ)=10-6=0.000001 ※百万分の1
n(ナノ)=10-9=0.000000001 ※十憶分の1
p(ピコ)=10-12=0.000000000001 ※一兆分の1
f(フェムト)=10-15=0.000000000000001 ※千兆分の1
・・・と続きます。
たとえば通信時間1ms(ミリ秒)なら 0.001s(秒)という換算になります。

あるCPUが2GHz動作で足し算に4クロックかかる場合
 4÷(2×109) = 2×10‐9 
なので処理時間は 2ns(十億分の2秒)と考えられます。

世界一小さいカメレオン

朝 可逆圧縮と非可逆圧縮

「かぎゃくあっしゅくとひかぎゃくあっしゅく」早口言葉ではありません。

様々な手法でデータ量を小さくすることを圧縮といいます。その中で、圧縮後に元と同じデータが再生できる手法は可逆(Lossless)、圧縮後の再生データは元と異なる手法が非可逆(Lossy)に分けられ、非可逆は多くの場合圧縮率が高くなります。

元に戻せないと困る文書等には可逆圧縮を用いて、画像や音声は人間の感覚で気づかない部分もあるため非可逆圧縮でデータ量を大幅に削減して活用されています。

 むぎゅー

 

 

ノート・レポート 0.01が0.01ではない??

数値を2の倍数(…21,20,2-1,2-2…)の組み合わせで扱う場合、10進数の 0.01 は切りよく表せません。

例えばプログラムのつくり方によっては、0.01を1万回足すと100.00のはずが100.002953、100万回足すと10000.00のはずが9865.223633が出ます。(同じ値を足しているのに増えたり減ったりします。なぜか考えてみましょう)

銀行の利息や商品の税額計算で、あるべき値が出ていなかったら大きなトラブルになってしまいますね。

   

 ※プログラミング言語によっても幾つかの内部表現方法があります。今回の値の変化は「https://paiza.io/ja」のC言語で出力したものです。

鉛筆 DNS

インターネット上の端末はIPアドレスで識別されます。

しかし、ブラウザでWebページを閲覧するときなど「 https://nsg-h.spec.ed.jp/ 」のように、文字列で指定できるようにするしくみがDNS(Domain Name System)です。

DNSサーバがいくつもあり、インターネット上の「名前」と「IPアドレス」の対応を管理しています。

 

理科・実験 OR(オペレーションリサーチ)

「OR」は、論理演算の論理和(オア)だけでなく、オペレーションリサーチ(オーアール)という分野としても表記として出てきます。

あることがらを よりよいものにするために、「なんとなく」ではなく「定量的」に分析,管理,評価することになります。

 

たとえば、100個のシュウマイ弁当を製造するために必要な豚肉の量は何グラムか。ある地点Xから〇地点を経由して地点Yに行く最短経路は? などに対して、勘ではなく数学的に分析し最善策を導くこともORの一つです。

ORのように定量的に考えることで、様々なことをプログラムで実現(自動化)することにもつながります。

電車 インフラ

インフラ(インフラストラクチャー:infrastructure)というと、道路や電気,ガス,水道,自治会といった、社会や生活の基盤を指します。

情報技術としてスマホのインフラを考えた場合、通信の機器や通信路、機器の電源となる電柱電線発電設備、様々な規格や法整備に関する団体も考えられます。

多くの人が現在スマホを使っていますが、いつでもどこでも使えていることは決して当たり前のことではなく、いくつものインフラ要素が稼働して実現しています。

視聴覚 DVD

映像などの記録媒体としてDVDを見かけますが、DVDは Digital Versatile Disc の略です。

VideoのVでは無く、多目的に使える円盤媒体という意味です。

     

情報処理・パソコン フリップフロップ

電気的に記憶する仕組みの一つとして、フリップフロップがあります。

        

通電している間は、状態を保持したり変更できたりするので

コンピュータが動作するための重要な要素でもあります。

右 入れ子

プログラミングにおいて、ループ内でさらにループを使用する構造などを入れ子と呼びます。
たとえば画像は縦と横(さらに色)で構成されるので、画像データなどを扱うには何重もの繰返し処理が必要になります。

                    

昼 HyperText Markup Langage

インターネット検索など、ブラウザでWebページを表示するときにHTMLが必要ななります。
Webページは文字だけでなく、画像や音声、動画やリンクを合わせて表示できます。
HTMLは様々な「タグ」でコードを構成してWebページがつくられます。

  
  ※このページのHTMLの一部

嵐 配線の色

電圧が直流 数[V] の電子回路を扱う場合でも、配線に用いる色にも気を払いましょう。
+5[V]などのプラス側は赤、対して0[V](電池でいうマイナス側)は黒、それ以外の箇所は赤黒を使わない・・・など
電源ラインを明確にしたり、信号の意味を分けて把握しやすくするためにも色分けは重要です。
   
(100[V]以上では明確な色分けがあり、配色も異なるので注意。)

お知らせ 予約語

プログラミングをする上で、変数名などある程度自由に決められる部分でも、
そのプログラミング言語で、すでに処理命令などで使われている語句と同じ名前は使えません。
(同名がつけられる言語でも、同名は望ましくありません)
     

出張・旅行 「おもしろさをつくる」とは?

もし好きなゲームがあれば・・・
そのゲームのどのようなところが楽しいですか?

「おもしろさ」をプログラムで実現するには、どうすればよいでしょう。
さらに楽しくするためには、どのような要素などがあればよいでしょうか、
そしてどのように実装できるか・・・

おもしろさは発想力だけで突発的にできるのではなく、ニーズの分析や
様々な要素を綿密に組み上げて、本当のおもしろさがつくられると言えます。

  

嵐 電力[W]ワット,電圧[V]ボルト,電流[A]アンペア

コンセントに、よく「最大1500Wまで」など表記されています。

    

電圧、電流との関係は  電力[W] = 電圧[V] × 電流[A]  になります。
家庭用コンセントは交流100[V]なので、電流としては合計15[A]の範囲で使ってくださいということです。
たとえば部屋全体で、30[A]の許容量があっても一箇所からタコ足配線すると危険になります。熱を持ったり、動作しなくなってしまうので、電力にも気を払いましょう。

? パリティ

データの正当性をチェックする手法(誤り検出)の一つとして、パリティビットの付加があります。


 7ビットのデータに奇数パリティを付加した例   
 0
1
 0
 0
 0
 1
 1
 0
 ※右端がパリティビット。奇数パリティの場合は全体で「1」の数が奇数になるようにビットを付加する。

 もし、何らかの異常でビットが反転してしまった場合・・・
 
 0
1
 0
 0
 1
 1
 1
 0
 奇数パリティのはずなのに、全体のビット「1」の数が偶数なので、このデータは誤りがあると気づくことができます。

遠足 代入

計算問題では、「1+2= 」 や 「3x2 - x =  」など、イコール記号の左側に式があって、右側に結果があることがありますが・・・

プログラミング言語の処理では基本的に、イコール記号の右側に式や処理をおいて、左側に結果を得るかたちで記述します。

     

ひと休み エスケープシーケンス

プログラム実行中に表示するメッセージで改行をしたい場合、
プログラムコード内でEnterキーを打ってもコードが改行されるだけで、実行中の表示は変化しません。

動作を示す記号や、特殊な文字を表示する記号をエスケープシーケンスと呼びます。
たとえば改行であれば、「\n」を使用します。(※環境により、半角の「¥」または「\」と表示されます。)

C言語の例
        

グループ 1+1は?

算数で、1+1 「いち たす いち」 は2 ですが、ブール代数では1+1は1になります。

この場合は、1が「いち」ではなく、成立している状態「真(True)」をあらわし、「真もしくは真であることは真」ということになります。
他にも算数とは異なる公式がいくつかあります。

構成する電子回路から、プログラム上の条件式や、データベースの操作にいたるまで、
2値が扱いやすいコンピュータには、このブール代数は応用しやすい考え方となります。