「論理和」を含む日記 RSS

はてなキーワード: 論理和とは

2017-09-18

anond:20170918001835

論理和計算では 1+1=1 だよ。

1+0=1

0+1=1

0+0=0

1+1=1

ちゃんと和になってる。

論理積計算では、

1*0=0

0*1=0

1*1=1

0*0=0

積っぽいじゃん。

論理積論理和って逆だよな

論理演算問題解くときにいつも戸惑う。

なんで論理積がANDで論理和がORなんだ、普通逆だろ?

0×1も1×0も0になるんだから掛け算で良いじゃんって言う人がいるけど、じゃあ1+110にならないのだめじゃん変じゃんおかしいじゃん。

もっと良い言い方無かったの?

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2016-12-15

複数の集合の関係を整理してみよう

プログラマ「いやぁ、論理演算パターン多すぎてマジ混乱してきた・・・

?????「困っているようだね」

プログラマ「そうなんです。論理和 , 論理和否定, 排他的論理和...。いくつもあって頭が混乱してきたんです。」

?????「それならこれを使いなさい」

プログラマ「ぎゃー!!!あんなにイミフだったif文が視覚的に図式化されてスラスラ書けるぅぅうううう!!!!!あばばばばば!!!!」

?????「ククク・・・興味を持ったようだな」

?????「そうだろう。君がこの仕事を続ける限り、各集合をひとつの閉曲線(例えば円)の内部で表し、相関関係をその閉曲線の交わり方によって表す図を知っているということは一生役に立つぞ。」

?????「もうひとつ情報を与えてやろう」

?????「ド・モルガン・・・

プログラマ「え・・?」

?????「暗黒に染まったif文をキレイに書き直す度にパワーがはるかに増す・・その更新無限にオレは残している・・その意味がわかるな?」

プログラマ「いきなり意味がわからないことを言いやがって!!こいつ、なんかやばいぞっ!!!!」

ゴゴゴゴゴ....

プログラマ「だめだ!暗黒の力が強烈過ぎて僕のスパゲッティコードの力では太刀打ち出来無い(´・_・`)...!!」

プログラマ「きさま!まさか!!(((((((( ;゚Д゚))))))))ガクガクブルブルガタガタブルブル」

ベン図 「フハハハハ!!!!!!!!!!!そのまさかだ!」

2016-10-16

プログラマ思考なんて教えられないだろ

俺が日常プログラマ思考が生きているなと感じる対象

・if else の条件分岐の考え方(条件漏れをなくすという考え方含む)

論理和論理積の考え方

デザインパターンの考え方(メソッドという概念を含む)

バグチケットの書き方

製造プロセス全体

  

こんな感じだけど、実務2年くらいやらなきゃ身につかない

学校で一体何を教えるんだ?

2016-09-19

http://anond.hatelabo.jp/20160919201052

自分の知っている言語では論理積論理和評価優先順位は同じ物ばかり

横だけど、大多数の言語論理積の方が優先順位高くて、例外的言語でのみ論理和の方が高いことがあると思ってた。

http://anond.hatelabo.jp/20160919184519

自分が知っている言語だと、「param == 0」は前提にならないと思うのですが、想定している言語を教えて頂いても構わないでしょうか?

自分の知っている言語では論理積論理和評価優先順位は同じ物ばかりで、上げられている条件分に関しては

if ((param==0 && 判定(param2)) || !param3) {~}

等価になると思われます

そのため、仮にparamが0以外だったとしても、!param3がtrue評価されるような値の場合は条件を満たすと思われるのですが。(実際node.jsのv5.11.0で試した所そのようになりました。)

http://anond.hatelabo.jp/20160919121645

追記:論理積論理和優先順位で間違いがあったため修正しました。

まず最初の条件をif分を一回終わらせて入れ子にするか、falseならreturn させるといい。

入れ子になってもとにかく自分が分かるようにするといいです。

一行で書くのはそのあとではどうだろう

if(param == 0 && test(param2)) {
   if(!param3) {
     something todo
   }
 }

また

if(!(param == 0 && test(param2))){
  return false;
}
if(test(param2) || !param3) {
  実行分
}

あと、一つの条件式で書きたいなら、括弧を使ったり、改行したりして、式の流れを細かくすると分かりやすくなる。

2:paramが0

3:かつ

4:判定関数でparam2の条件を返して、true

5:またはparam3がfalseのときtrueから

 

なのに param==0 && 判定(param2) || !param3 だと

param==0 && 判定(param2)

!param3

で別れるはず(言語によって違う可能性もありますが)

だけど、日本語言葉にすると「paramが0かつ判定関数でparam2の条件を返して、trueまたはparam3がfalseのときtrueから

となって、かかる範囲が分かりづらくなるから

から論理演算子が複数になるときは、日本語でかつ、または使うと逆に混乱するから

trueになる一つ目の条件の時は「○○」またはといったように書くと、

冗長的ですが、言葉にしても分かりやすいかと思います

それ以外には既に上げていた色んな増田の方のやり方もそうだし、

変数名で分かりやすくするというのもあるぞ。


is_children = age < 20
has_game    = check_game(param2)
if(is_children && has_game) {
  print ゲームをもったこども
}

条件式は思考ブレーキがかかるからこうやって、

変数名に置き換えること、文章として読めるからブレーキがかかりにくくなる。

と、無理にワンライナーで書かない方法を導入すると理解やすくなると思います

2015-10-05

http://anond.hatelabo.jp/20151005130243

いや、今更「ぷろぐらみんぐ」を学んだとか言って、そこで出てきた「論理和」を持ってきて論理学なんてのがあったのを知った!すごい!議論に使える!

って中二病じゃね。。。?というより、ただの馬鹿じゃね。。。?

ホント中学生ならまあ分かるけど。

http://anond.hatelabo.jp/20151005110955

是非その辺り、増田がどうしてそのような人が居ないか、

居たらどうなるのか、

居るべきなのかどうなのか、

理論理学とか論理和とかを駆使しながら論じて欲しいんだか、出来ますか?出来ないよね?馬鹿もの

2014-07-26

http://anond.hatelabo.jp/20140726071336

理論

普通に使う。

何らかの挙動モデル化して記述する際、モデル化しない(しきれない)要素はどうしても発生する。

そのような要素を考慮しないで述べる際に「理論的には○○」と言う。

例えばプログラムの実行速度をCPUクロック命令の実行サイクル数から理論的に」求めることはできるが、

実際には他のタスク割り込みメモリスワップ、温度上昇によるクロック低下などにより、実際の実行速度は理論値より低くなる。

1+1

誰が数値の加算だと言った? データ型が違えば、演算子挙動も違うんだよ。

例えばString型なら "1" + "1" は "11" になるし、

Bool型で+が論理和なら 1 + 1 は 1 だ。

2013-12-19

http://anond.hatelabo.jp/20131219204623

この試行は両方が6だった場合に限りカウントされてく(iterが増える)訳で、

まりカウントされた分はすべて両方6の場合なわけで。

これが間違い。||は論理和なので(dice1 == 6 || dice2 == 6)のどちらかが真であれば真になる。

あと実行結果はhttp://ideone.com/gIGYPsのstdoutのところを見ろ。

[1] 0.1798 0.1768 0.1912 0.1786 0.1884 0.0852

[1] 0.1712 0.1588 0.1750 0.1546 0.1656 0.1748

6個並んだ数値列が二つあるだろ。これがexperiment1とexperment2のそれぞれの実行結果。

experiment1の6番目の値だけ低いから6の目の出る確率は低い。

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん