X



アルゴリズム考えるのムズすぎワロタwwww
■ このスレッドは過去ログ倉庫に格納されています
0002デフォルトの名無しさん
垢版 |
2013/12/06(金) 18:14:19.55
アルゴリズムを考えるのは難しいけど、人の考えたアルゴリズムを理解するのは簡単だろ?
0003デフォルトの名無しさん
垢版 |
2013/12/06(金) 18:21:01.46
アルゴリズム体操
0013デフォルトの名無しさん
垢版 |
2013/12/06(金) 23:59:51.50
ゼロからアルゴリズムを作るなんてクヌース先生レベルの天才じゃないと無理
0014デフォルトの名無しさん
垢版 |
2013/12/07(土) 00:26:45.01
ほとんどの場合知ってるか知っていないかってだけだとさっき思った
教えるは一時の優越感、 教えないは一生の優越感
そんなことを思うニート
0015デフォルトの名無しさん
垢版 |
2013/12/07(土) 00:44:39.77
必要になった時に名前だけでも思い出せばいいわけだから
とりあえず本を流し読みしまくっとくか
0016デフォルトの名無しさん
垢版 |
2013/12/07(土) 03:55:34.14
>>7
初心者向けではないけど、
プログラミング・コンテスト・チャレンジブック、という有名な本があって、
たいていのアルゴリズムなら、この本に載っている

TopCoder
ttp://toro.2ch.net/test/read.cgi/tech/1333159918/l50
0017デフォルトの名無しさん
垢版 |
2013/12/07(土) 04:48:15.83
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0018デフォルトの名無しさん
垢版 |
2013/12/07(土) 06:49:05.98
俺は、[C言語によるアルゴリズム辞典]って言うの
持ってるけど、高等数学(高校の数学じゃなくて)の
知識不足で、かつtypedefしまくってるコード
が、多すぎて、たまにしか見ない
0019デフォルトの名無しさん
垢版 |
2013/12/07(土) 09:46:34.96
アルゴリズムじゃなくてビジネスロジックのことじゃ・・・。
ロジック考えるのが楽しくないなら向いてないかも。
車輪の再発明でもいいから俺って天才って気分になるバカさが必要。
なれないやつは向いてない。
0021デフォルトの名無しさん
垢版 |
2013/12/07(土) 11:02:33.91
計算手順のこと
0024デフォルトの名無しさん
垢版 |
2013/12/07(土) 11:55:53.51
公式や手順なら、それがなぜ成立するのかじっくり考えることは必要だと思う
じっくり考えておかないと応用がきかない
0025デフォルトの名無しさん
垢版 |
2013/12/12(木) 19:21:33.14
アルゴリズムに関して知りたいなら
公開されてるAPIのコードを読み込むことだな
0028デフォルトの名無しさん
垢版 |
2013/12/13(金) 01:23:14.37
俺も初心者だからアルゴリズムは難しいけど、元々パズルとか好きだから、パズル感覚で楽しんでるな
0029デフォルトの名無しさん
垢版 |
2013/12/13(金) 01:36:04.95
パズルや数学が好きな人はアルゴリズムに向いてると思う
0030デフォルトの名無しさん
垢版 |
2013/12/13(金) 05:34:07.15
そう言えば、東大の入試問題は、
パズル本から取った問題が多いね
古代ギリシアのパズルとか

問題を考えるのが面倒なんだろうね
0032デフォルトの名無しさん
垢版 |
2013/12/14(土) 01:38:45.32
円周率が、3.05以上であることを、図形で証明せよ

重ならない3つの円のすべてに、接する円はいくつあるか?

入試問題を作る人は、作問能力が無さそう
パズル本と同じ問題を出すと、
その本を読んでいる人が、すぐに解ける一方、
読んでいない人にとっては、トリッキーで難しい
だから、パズルになって、本に載るわけ

パズルやっている人は、試験中に考えずに、すぐ解けてしまう
つまり合格が思考力ではなく、
知っているかどうか(知識の量)で決まってしまう
これじゃ、偏差値50の人と、変わらない
0033デフォルトの名無しさん
垢版 |
2013/12/14(土) 12:37:39.64
>>32
自力で解ける思考能力か自力で解けなくともそれをカバー出来るくらいの知識力を求めてるんじゃないの
0035デフォルトの名無しさん
垢版 |
2013/12/15(日) 20:46:13.25
>>34
論理パズルとかだと思う
0037デフォルトの名無しさん
垢版 |
2013/12/15(日) 21:38:15.47
うむ。
思いついた。
お勧めの本やHPを尋ねられたら、東大がお勧めと答えるのをテンプレにする。
0040デフォルトの名無しさん
垢版 |
2013/12/17(火) 01:51:52.17
プログラマのための論理パズル 難題を突破する論理思考トレーニング
http://www.amazon.co.jp/dp/4274067556/

こういうのどう?
0042デフォルトの名無しさん
垢版 |
2013/12/20(金) 00:13:53.19
偉いか馬鹿かというより、面白いと思えるかどうかが重要な気がする
0043デフォルトの名無しさん
垢版 |
2013/12/20(金) 01:09:17.76
俺の場合、面白いとは思えるけど難しい、面倒くさいという気持ちが上回って嫌になる
0044デフォルトの名無しさん
垢版 |
2013/12/20(金) 09:01:58.71
物事の仕組みをよく理解した上で
それを数値化したり式化したりする作業だしな
深く物事を考えられないと難しい
0045デフォルトの名無しさん
垢版 |
2013/12/20(金) 14:29:00.99
論理パズルの小さい本が、色々出てるでしょ
迷路、魔方陣、虫食い算、古代ギリシアのパズルとか

こういうパズル
7個の同じ重さの分銅と、
それらより少し軽い、1個の分銅Xがある

これら8個は見た目では、区別が付かないので、
秤を2回使って、Xを見分けてほしい
0046デフォルトの名無しさん
垢版 |
2013/12/20(金) 17:34:23.10
まず3個ずつ秤の左右の皿に載せる。
釣り合った場合残りの2つを比べて軽い方がX。
軽い方の皿から一つ分銅を取りYとし、軽い方の皿の残りの2つを比べる。
釣り合った場合YがXelse軽い方がX
0047デフォルトの名無しさん
垢版 |
2013/12/20(金) 17:38:44.68
まず3個ずつ秤の左右の皿に載せる
if 釣り合った
 残りの2個を比べて軽い方がX
else
 軽い方の皿から1個分銅を取りYとし軽い方の皿の残りの2個を比べる
 if 釣り合った
  X = Y
 else
  軽い方がX
0048デフォルトの名無しさん
垢版 |
2013/12/21(土) 16:23:43.78
サイクロイドからの出題です
実際にやらずに、お答えください

2個の十円玉A,Bがあって、Aの周りを、
Bがくっつきながら回転する

Bは最初、Aの真上にあって、
そこから回転しながら、Aの真下にきて止まった

Bは何回転したか?
0050デフォルトの名無しさん
垢版 |
2013/12/25(水) 19:18:11.38
設計ができないやつの特徴は?
例えば分数が苦手とか、そういうタイプ

何ができないか?それは抽象思考や観念的概念の理解だ、
無能な奴は具体性を求め絶対的な結果のみを暗記することでテンプレートだけの
思考を行い、ものづくりにおいてはキリハリなパッチワークしか作れない。
つまり巧妙な「パ、ク、リ」なのです。
0052デフォルトの名無しさん
垢版 |
2013/12/25(水) 22:23:13.73
物事を順序立てて考えられる人間は
アルゴリズムを組み上げる才能がある

後は数学やプログラミングに関する知識と柔軟な思考と
美味しいお菓子があれば言うことはない
0054デフォルトの名無しさん
垢版 |
2013/12/27(金) 07:52:09.52
>>48
半回転
005548
垢版 |
2013/12/27(金) 13:07:06.53
>>48
>Bは最初、Aの真上にあって、
>そこから回転しながら、Aの真下にきて止まった

>Bは何回転したか?

この問題の変形で、
1. Aの半径が2r、Bの半径がrのとき、
2. また逆に、Aの半径がr、Bの半径が2rのとき、
どうなる?

サイクロイドは難しいな
軌跡をイメージできない
0058デフォルトの名無しさん
垢版 |
2013/12/28(土) 02:46:05.59
クォータニオンの理論はさっぱり分からないけどなんかうまくいく
俺にとっては魔法だ
0060デフォルトの名無しさん
垢版 |
2013/12/29(日) 00:33:59.79
複素数の共役同士の和と積は、実数になる
a+bi, a-biの和は、2a
積は、a^2-(b^2)(i^2)=a^2+b^2

それと、電気回路に出てくる複素平面
z=x+yjを、座標(x,y)で表す
x軸は実数で、y軸は虚数
y軸は単位がjで、そのjを取って、yのみで表示する

電気分野では、電流にiを使うため、虚数はjで表示する
つまり、クォータニオンとは、これらを利用しているだけ
0061デフォルトの名無しさん
垢版 |
2013/12/29(日) 00:41:33.84
>>60
たかが計算の実装くらい出来るに決まってるだろwww
その程度で分かってるというならめちゃくちゃ深く理解してる
0063デフォルトの名無しさん
垢版 |
2013/12/29(日) 02:56:10.50
>>61
ならココでやってみ
0066デフォルトの名無しさん
垢版 |
2013/12/29(日) 03:23:47.53
なんかマジレスしてる人がいるなぁ
006760
垢版 |
2013/12/29(日) 03:44:14.83
複素平面で、複素数同士の掛け算をしてみる
a=1+j√3, b=√3+j
複素数x+yjを、座標(x,y)で表すと、

a点は座標(1, √3)にあり、
O(0, 0)から距離2、偏角(x軸から)60°
b点は座標(√3, 1)にあり、
Oから距離2、偏角30°

ab=(1+j√3)(√3+j)=√3+4j+(j^2)√3=4j
これは、座標(0, 4)で、Oから距離4、偏角90°

つまり、Oからの距離は掛け算、2*2=4
偏角は足し算、60°+30°=90°
となり、複素数同士の掛け算で、
ベクトルの拡大と回転が、同時にできる

同様に、複素数同士の割り算で、
ベクトルの縮小と逆回転が、同時にできる
複素平面は交流回路で習う
0070デフォルトの名無しさん
垢版 |
2013/12/31(火) 07:32:27.03
一定以上の間隔をあけながらランダムに点を分布させるにはどうしたらよいですか?
0072デフォルトの名無しさん
垢版 |
2013/12/31(火) 09:28:15.26
二次元配列上にランダムに点をばらけさせるんですが
どの点を見ても一番近い点が必ず一定以上の距離があるようにするのにいいアルゴリズムはありますでしょうか
0074デフォルトの名無しさん
垢版 |
2013/12/31(火) 09:54:31.15
>>73
二次元配列の形のことですか?
なんでもいいです
できれば端が反対側へ繋がってる四角がいいです
0076デフォルトの名無しさん
垢版 |
2013/12/31(火) 10:04:53.22
そうです円形の距離です
ある点から一定の半径以内に別の点がないようにしたいです
0077デフォルトの名無しさん
垢版 |
2013/12/31(火) 11:27:24.31
あんまりいいアルゴリズムじゃないけど一応投下

配列の数値の意味
1:点の場所
-1:ある点の半径n以内の位置
0:何もないところ

まず配列を0で初期化

第一ステップ
まず最初に配列にランダムに1を格納(距離を気にせず)
その際、どの配列に1を格納したかそのインデックスをリストに保存する

第二ステップ
第一ステップで作成したリストをシャッフルする
そのリストの先頭の要素を取り出して
半径nの配列全てに-1を格納
リストの次の要素を取り出す
半径nの配列が全て0かどうか確認
0でない配列があれば円と円がぶつかっているということなので
格納をやめて、その点の位置も0で初期化する
・・・・
それを作りたい点の個数だけ続ける
0078デフォルトの名無しさん
垢版 |
2013/12/31(火) 14:19:33.34
すまんリストのシャッフルは必要なかった
c言語で作成してみた
クソコードだけど許してhttp://ideone.com/POIGJ7
これが俺の限界
もっといいアルゴリズムが知りたかったら
入力の量とか求めている計算時間とか詳細に説明したら
誰かアドバイスくれるかも
0079デフォルトの名無しさん
垢版 |
2013/12/31(火) 22:02:09.13
ごめん
円と円がぶつかってはいけないと勘違いしていたから修正
乱数の生成をするときに範囲の指定(一定の距離をとるような点)はできないと思うから
最初に生成した乱数をいくつか選ぶだけの総当り
http://ideone.com/3BeVLs
0080デフォルトの名無しさん
垢版 |
2013/12/31(火) 22:09:45.83
printしてるのは
一番上:最初に生成した乱数そのままの点の位置
二番目:3が点のある位置 2が点の周囲 0が何もないところ(アルゴリズムでは周囲の情報は必要なし
三番目:距離を考えた上での点の位置
四番目:最初の乱数の内、いくつの点がぶつからなかったか ぶつかったところはoutの表示
0081デフォルトの名無しさん
垢版 |
2013/12/31(火) 22:14:53.13
手順
1.点を置きうる座標のリストAを作る
2.リストAからランダムで一つの点B選ぶ
3.点Bの近傍座標をリストAから削除する
4.2に戻る
0083デフォルトの名無しさん
垢版 |
2014/01/01(水) 07:47:10.33
高尚な観念が理解できないと作られたそれは歪みまくった俺解釈(具体性)になる。
割り切れるならいいんだけどね、因数分解で因数以下に分割しちゃう大マヌケとか
とんでもないトンチンカンがいるんだよ。
原理を原理より分解して再構築したら原理が分散したそれは働きを得ない
ぐらい分からないのかな?
0085デフォルトの名無しさん
垢版 |
2014/01/01(水) 14:00:27.14
‪同じ目的を達成するのに、ド下手が書いたソースは無駄が多い。
回り道してグネグネして余計なこといっぱいして変数散らかして、
行数いっぱいつかって、おのずと同時に見通しも悪くなる。

糞コーダーにとっては途中で落ちるなんて恥、どんなにズタボロだろうとプログラムは天寿を全うしてこそのものだからな。
平気で全文tryで囲みやがるし。
0086デフォルトの名無しさん
垢版 |
2014/01/01(水) 14:27:34.62
設計ができないやつの特徴は?
例えば分数が苦手とか、そういうタイプ

何ができないか?それは抽象思考や観念的概念の理解だ、
無能な奴は具体性を求め絶対的な結果のみを暗記することでテンプレートだけの
思考を行い、ものづくりにおいてはキリハリなパッチワークしか作れない。
つまり巧妙な「パ、ク、リ」なのです。
0091デフォルトの名無しさん
垢版 |
2014/01/02(木) 03:06:45.71
バケット法は、データをバケット単位に、
分けて管理する
平方分割は例えば、25個のデータを、
5*5に分けて管理する

隣同士の最小距離をrとすると、
長さrの正方形のセルで、平面を区切る

そしてランダムな点を置くときに、
そのセルの周囲のセルに、
すでに存在する点だけを調べる
そして半径r以内に、すでに点があれば、
置けないのでやり直す
0093デフォルトの名無しさん
垢版 |
2014/01/02(木) 15:57:07.89
具体性を求める奴が「設計」が得意な奴はいない。

設計は具体性ではなく観念や抽象的思考が必要で情報を統合する能力が
もっとも重要なのです、コーディング能力の高さで自分を「俺スゲー」
している人には恐ろしく不快なのでお詫びしておきます。
本質を言ってもうしわけないです。
0095デフォルトの名無しさん
垢版 |
2014/01/03(金) 20:45:57.79
日本語でおkとしか発言ができない奴って、だいたい統合思考能力が欠如している。

× てにおは
○ てにをは

ちゃんと正しく覚えないと恥ずかしいよ。
0098デフォルトの名無しさん
垢版 |
2014/01/05(日) 05:22:52.13
数学を知らずに数学を知ったかのように語るやつっているけど、
たんなる感情論だよね、観念の類を定義して方程式で証明する構図は
まったく具体性のない幻想とまで皮肉をいったり悪口を言う輩がいるが
それは間違いない、幻想でいいんだよ。
方程式そのものは美しさとその完璧なる秩序の明確性を説明するもので
現実を表す物理のような実証ではない、証明と実証の区別ができないのが
実証(具体性)ばかりこのみ難しい数学の領域の記号だけの記述になると
3行しか読めないコピーペーの能力ではどうにもならない。
暗記してできるものでもない。
■ このスレッドは過去ログ倉庫に格納されています