プログラムってすげえ if使わなくても連想配列で解決出来るなんて目から鱗

公開日: : 最終更新日:2015/06/10 PHP, プログラミング , , , ,

1: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:46:57.663 ID:BSmpn3JRd.net
http://d.hatena.ne.jp/ryodake/touch/20110323/1300877421この記事にも書いてるがまさに目から鱗が落ちたわ

2: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:47:58.662 ID:V5w0f22H0.net
しかも動きが速いよ

 

3: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:48:21.642 ID:BSmpn3JRd.net
よくプログラムスレでアルゴリズムへの理解が大切とか言われるけどこういうことだったんだな

 

4: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:50:12.207 ID:BSmpn3JRd.net
これで俺はプログラマーとしてひとつ高みに行けた気がする

 

5: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:50:17.530 ID:09ppl6Zf0.net
なんか笑った、おもしれえ
アルゴリズムとかみんな言うけど、どんな本とかサイトで勉強すりゃいいの?

 

10: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:51:58.539 ID:BSmpn3JRd.net
>>5
俺も知りたいわ
学生の頃にはじめてのアルゴリズムって本買って読んだけどソートの早い順とかそういうのしか乗ってなかったしちゃんと選んで買うべきなのは確か

 

13: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:53:39.300 ID:V5w0f22H0.net
>>10
いっぱい書いて動かして失敗したり遅かったり
それをいっぱい改造するのが早道だ

スポンサーリンク

7: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:50:55.345 ID:GyNKIaFbd.net
単なる連想配列でどや顔先輩(笑)

 

14: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:53:58.017 ID:BSmpn3JRd.net
>>7
連想配列はプログラムが読みやすくなるし多用してたけどこんな使い方があるなんて知らなかったわ

 

11: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:52:46.406 ID:lZxyGQLgp.net
これは実装方式問題でアルゴリズムの話ではないような…

 

12: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:53:01.192 ID:SULreKrEM.net
まじかよswitch文使うわ

 

20: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:59:49.639 ID:V5w0f22H0.net
>>12
switchもオススメしない

$a=1;
swith $a{
case 0:$x=”日曜日”;break;
case 1:$x=”月曜日”;break;
case 2:$x=”火曜日”;break;
}
echo “今日は”.$x”.”です”;

と書くのと

$x=array(“月曜日”,”火曜日”,”水曜日”);
echo “今日は”.$x[$a].”です”;

どっちがラクテンチだと思う?

 

25: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:02:54.053 ID:5PE0f9n60.net
>>20
switchのほうが見やすいし読み返してわかりやすいからswitch使うわ

 

28: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:06:01.690 ID:V5w0f22H0.net
>>25
まあ、それは好みの問題だから好きな方を使うと良いよ
俺はプログラムが短い方が良いから配列を使うことが多い

 

17: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:56:40.272 ID:lZxyGQLgp.net
まあif文多用するとクリティカルパスが長くなるしテストめんどい

 

22: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:01:08.587 ID:nXNqpKMe0.net
ifより連想配列の方が速いの?

 

24: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:02:33.213 ID:V5w0f22H0.net
>>22
phpだとインタプリタだから微妙かもな
しかしあとで見直すときには判りやすいよ

 

32: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:06:56.582 ID:QkXqnJXD0.net
if文が3つ重なるときはコード見直せとはよく言われたけど
知識が足りてないことがよくわかったわ

 

33: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:07:24.106 ID:Pnpn4y1hp.net
そもそもif文のほうのサンプルをわざとか知らないけど醜く書きすぎ

 

34: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:07:39.827 ID:lNf1ReUu0.net
テストっつかデバッグならどうせ全パターンやるしifのほうがやり易いような
連想配列は全枝の通過チャックできる?

 

36: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:10:14.181 ID:V5w0f22H0.net
>>34
phpならforeachで何層にもくるくる回すしか

 

37: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:11:31.688 ID:m9sfvCkV0.net
便利だけどこういうの使うべきじゃないところで使おうとして読みにくいオナニーコード書く人いるよね

 

41: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:13:24.634 ID:bztA1QIVa.net
コードなんて人間の視認性をよくするためのものだから、
理解しづらいコード書くくらいならifやswitch使ったほうがいい。
こんなことやるくらいならアセンブラで書け。

 

42: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:13:46.131 ID:LTl+5Tc3r.net
競技プログラミングで回答にこんなのあったのは覚えてる
dx={0,1,0,-1}
dy={1,0,-1,0}

 

43: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:14:06.314 ID:nXNqpKMe0.net
じゃんけんは三つ巴だと思うからmod使いたい
一般的な拡張考えたら全パターン網羅ってことになるのかな

 

48: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:19:08.148 ID:Pnpn4y1hp.net
>>43
mod使うようなのがいわゆるアルゴリズムだな
こいつのは全然違う話にならない

 

49: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:21:21.975 ID:BSmpn3JRd.net
今日は有意義な通勤時間だったわ

 

50: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:22:03.575 ID:m9sfvCkV0.net
>>49
お前以外には結構不評だけどね

 

54: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:26:47.962 ID:BSmpn3JRd.net
>>50
今回筆者はじゃんけんを例題にあげてたからより良い選択肢を知ってるみんなには微妙に見えたみたいだが
使うかどうかはおいといてこういう書き方もあるって知ってるだけで十分プラスじゃね?

 

65: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:38:50.365 ID:V5w0f22H0.net
>>54
phpはいろいろ書けるので今回はこんな書き方もあるよ、ということで。

 

51: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:24:14.729 ID:puF30Pqj0.net
ifの一つや二つで遅くなるなんてどんなスペックのマシン使ってんのよ

 

59: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:31:54.320 ID:bztA1QIVa.net
>>51
エンベデッドなめんな
8bit MPUに256kのメモリとかそれなりにあるぞ。

 

62: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:35:06.774 ID:puF30Pqj0.net
>>59
何が?

 

63: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:37:11.443 ID:oKOBmOAA0.net
>>62
組み込みの世界にはわずかでも計算量を落としたい場面があるってことだろう

 

67: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:40:15.762 ID:puF30Pqj0.net
>>63
組み込みの世界か
そんな低速なの?
ifを20個書いたらヤクザにドスで刺されるようなレベルなの?

 

70: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:42:28.637 ID:oKOBmOAA0.net
>>67
しらんがな

 

72: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:43:46.203 ID:puF30Pqj0.net
>>70
わかった

 

80: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:49:33.818 ID:bztA1QIVa.net
>>67
ifはともかく、規定時間で動作を完了できなきゃドスで刺されるな。
ifとかの使い過ぎで遅くなってエマージェンシーブレーキが作動せずに前の車にぶつかったとかな。
だったらアセンブラで書けよって言うところではあるが。

 

82: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:51:52.458 ID:puF30Pqj0.net
>>80
物騒だな!
なんて世界だ!
そんな世界は滅んじまえ!

 

90: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:56:56.983 ID:Nq2SpNt2a.net
>>82
自動で止まりますって言ってるのに止まらずに事故って家族が死んだりとか
医療機器の動作が遅れて家族が死ぬとか
さすがにドスで刺されるかもしれないじゃないか?

まあ携帯電話関係は昔は切った貼ったはあったみたいだが。

 

72: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:43:46.203 ID:puF30Pqj0.net
>>70
わかった

 

55: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:28:35.616 ID:d1rjX2nYa.net
連想配列じゃなくても
グー:0
チョキ:1
パー:2
とかにすれば多重配列で一発だわ
ただしこれ==の時のみかね
不等式なんかには効かなさそう

 

56: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:28:59.016 ID:BVMzqLOta.net
コメントの人も言ってる通りなんか観点がおかしい感じ
if不要の話から連想配列ってのは飛びすぎだと思う

 

57: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:30:09.235 ID:d1rjX2nYa.net
>>56
でもさコメントみたいにオブジェクト指向ならってのと多重配列と両方面白いかなと

 

69: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:41:57.515 ID:d1rjX2nYa.net
これな
Kekka = hantei[player1_no_te][player2_no_te]
で最初に多重配列に結果入れとけば一発だからな

 

73: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:44:12.594 ID:FDaCEB5jd.net
不思議なダンジョンとかのダンジョンのランダム作成のアルゴリズム教えてくれ
書籍にのっているとも聞いたが名前がわからん

 

75: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:46:02.984 ID:d1rjX2nYa.net
>>73
不思議のダンジョンは実は手書きのステージ
完全ランダムは棒倒し法みたいなのがすぐ検索で出てくる

 

74: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:45:22.450 ID:lZxyGQLgp.net
8bit64kbyteのマイコンでも普通にifくらい使うよ

 

77: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:47:55.066 ID:puF30Pqj0.net
>>74
ドスで刺されることはないのか…
安心した

 

79: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:49:30.518 ID:Lh831TXn0.net
これからIT業界に飛び込む俺としては末恐ろしい話だ

 

84: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 08:52:41.144 ID:oKOBmOAA0.net
ミッションクリティカルな組み込みこええな
実行に何クロックかかるか計測したりしながら組むん?

 

99: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 09:13:33.775 ID:Nq2SpNt2a.net
>>84
実際のところ、規定時間内に完了すればいいだけだから、
あまりそのあたり計算せず、WDTに引っかかったらパフォチューする感じだね。
自分の経験談だけど。

 

100: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 09:14:54.130 ID:x7Fe/uuhr.net
アセンブラやったけどあれで大きいプログラム書いたりするの?
すげぇな

 

101: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 09:16:50.495 ID:Nq2SpNt2a.net
>>100
さすがに大きいのはCとかで組む。
ハードウェアを直接叩いたりするドライバとかはアセンブラ使うとか。

 

102: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 09:28:15.089 ID:lZxyGQLgp.net
アセンブラなんかブートくらいにしぁ使わんな
たまに割り込み周りでレジスタ触るのにアセンブラ使ったりもするが
普通のレジスタはアドレス叩けば触れるし

 

104: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 09:40:56.203 ID:PiZzP623D.net
こういうのって組み込み系Cプログラマにありがちな可読性保守性皆無なオナニープログラムだよな
リソースに限りのある組み込みならわかるけど、外に持ち出してドヤ顔すんなって思うわ

 

105: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 09:51:29.294 ID:lZxyGQLgp.net
組込はどっちかっつーと保守性信頼性重視じゃないの
あんまネスト深いとテスト性下がって信頼性下がるのもあるし
最近は組込でもリソースあるし、重要なのは出来るだけ高速な処理じゃなくて
常に処理が規定時間以内であることなので

組込屋からすると情報系の人は信頼性に対する考えが雑だから嫌

 

107: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 09:55:44.997 ID:U6AKEXKbK.net
>>105
口では保守性信頼性と言いつつ
ソースはif文でグチョグチョなんだろう?

 

108: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 09:56:21.069 ID:wbdnnIl+p.net
速度をほんの少し改善するのにメモリ消費しすぎじゃね?
俺はifの方が好き

 

117: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 11:32:40.197 ID:/KUhGaFwp.net
プログラムがすごいんじゃなくて計算機がすごいんだろ

引用元URL:http://viper.2ch.sc/test/read.cgi/news4vip/1433458017/

関連記事

macro1

C言語でマクロ推奨してる奴って何なの?

1: 以下、\(^o^)/でVIPがお送りします 2015/10/08(木) 09:03:23.7

記事を読む

7f933f8837671ddb04b082c1aedabc05

Googleトレンドで「ゲーム製作」をググった結果wwwwwwwwwwww

1: 以下、\(^o^)/でVIPがお送りします 2015/11/08(日) 22:52:20.3

記事を読む

3da7facde7dc6575d0801be2effeb96d_s

結局プログラムって何から何の言語から勉強すればいいんだよ

1: 以下、\(^o^)/でVIPがお送りします 2015/04/28(火) 17:24:35.0

記事を読む

https---www.pakutaso.com-assets_c-2013-06-PAK15_saikindeaiganaina-500-thumb-1000xauto-3055

JavaとかC言語とかを勉強する理由がわからないんだが

1: 以下、\(^o^)/でVIPがお送りします 2015/05/08(金) 00:40:24.9

記事を読む

bsAL202syazai220140830165542

JavascriptもPHPも挫折したんだけど、もっと簡単なプログラミング言語は無いの?

1: 番組の途中ですがアフィサイトへの\(^o^)/です (ワッチョイ c576-2/7G) 20

記事を読む

150130-php7

PHP7に初のアルファ版登場

1: 番組の途中ですがアフィサイトへの\(^o^)/です 2015/07/02(木) 20:10:

記事を読む

wpid-news4vip-1395399165-28.png

プログラミングやったこと無い奴はJavaScriptから始めろ

1: 以下、転載禁止でVIPがお送りします 2014/03/09(日) 16:42:04.45 I

記事を読む

https---www.pakutaso.com-assets_c-2015-06-PAK88_tetuyaakenosyain20141123141151-thumb-1000xauto-18076 (1)

C言語PHPマスターしたけどプログラマーになりたくないでござる

1: 以下、\(^o^)/でVIPがお送りします 2015/07/06(月) 03:26:56.3

記事を読む

https---www.pakutaso.com-assets_c-2015-06-PAK86_codeing20140517-thumb-1000xauto-17052 (1)

プログラミング習うなら、専門学校と大学どっちがいいの?

1: 以下、\(^o^)/でVIPがお送りします 2015/09/13(日) 19:21:28.3

記事を読む

https---www.pakutaso.com-assets_c-2015-05-N811_notepcwosawarubiz-thumb-1000xauto-14749

趣味でプログラミングやるならVBAとC言語どっちやるべき?

1: 以下、\(^o^)/でVIPがお送りします 2015/05/25(月) 22:16:09.0

記事を読む

Huawei-Mate-8-benchmark-post-launch_1
Androidのベンチマーク、10万点を突破 インフレが止まらない

1: 番組の途中ですがアフィサイトへの\(^o^)/です (ニククエ

hGJvbfh
せっかくの休みだ。原付で>>5に行く。

1: 名無しさん@おーぷん 2015/11/29(日)06:13:2

9xHNnte
XperiaZ5からdocomoのロゴだけ消せるシートが発売開始

1: 番組の途中ですがアフィサイトへの\(^o^)/です (アウアウ

bsLISA78_MBAsawaru20141018102912
子供にプログラミング教えることになりそうなんだが、どうやって教えたら良いんだ?

1: 以下、\(^o^)/でVIPがお送りします 2015/11/2

top
国内で最大容量の8THDDが2万円台に値下がり

1: 海江田三郎 ★ 2015/11/29(日) 14:43:35.

→もっと見る

PAGE TOP ↑