トップページ⇒tech
47コメント12KB

ダイナッミック配列

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
CとかJAVAでできるの?

例えば
n=2のとき
new array[2][2]
n=4のとき
new array[4][4][4][4]
こんなかんじ
0002デフォルトの名無しさんNGNG
あほ
0003デフォルトの名無しさんNGNG
Cって new使えたっけ?
0004デフォルトの名無しさんNGNG
>>2
同意!
0005デフォルトの名無しさんNGNG
>new array[2][2]
>new array[4][4][4][4]

サイズを定数で指定したら、ダイナミックじゃないじゃん。
00061NGNG
>>5
ダイナミックにしたいんだけど表記のしかたがわからなくて。
array[n][n][n]・・・・・
n次元配列を作る
0007デフォルトの名無しさんNGNG
できる。
00081NGNG
>>7
どうやればいいの?
00097じゃないけどNGNG
Javaだったら
Array.newInstance(Class componentType, int[] dimensions)
使えば出来るんじゃ?
各要素にアクセスするの凄く面倒くさそうだけど。

C だったら mallocしといてキャスト
で、できたかなぁ?
0010 NGNG
[2][2]確保

int **aho = new int*[2]
for(i=0; i<2; i++)
aho[i] = new int[2]
0011デフォルトの名無しさんNGNG
面倒だからやめとけ
0012デフォルトの名無しさんNGNG
>>1
ところで、これって宿題?宿題?
0013デフォルトの名無しさんNGNG
Cならポインタ使ってリスト作ればいいだけジャン。
つうか単発質問スレやめろ。
0014デフォルトの名無しさんNGNG
単発質問でスレを立てるとメモリリークの呪いがかかります。
以後お気をつけください

***すれ立てるまでもない質問はここで 第8刷***
http://pc.2ch.net/test/read.cgi/tech/1008908052/
00151NGNG
2ch初心者なもので、以後気をつけます。
9は神
00161NGNG
>>12
宿題じゃなくて卒論研究。
シミュレーションで必要だったもので。
専門は経済学。CもJAVAもほとんど
できないに等しいからつらい。
0017デフォルトの名無しさんNGNG
宿題とかわらんだろ。
0018デフォルトの名無しさんNGNG
Cなら、とりあえずエキスパートCプログラミングの9,10章を読む、かなぁ。
最初の添え字以外固定サイズの配列なら、
/* aho[2][3][4]を確保 */
int (*aho)[3][4];
aho = (int(*)[3][4])malloc(sizeof(int) * 2 * 3 * 4);
こんな感じで簡単に確保できるけど、
全部動的なら10のように次元数-1重のループで順にmallocしていくか、
aho[i * (3 * 4) + j * 4 + k]のような感じで一次元配列+添え字計算でごまかすしか
なさそう。
Javaでもほとんど事情は同じ。でもポインタがないから...
0019デフォルトの名無しさんNGNG
Perl か Lisp でも使えばいいのに。
0020デフォルトの名無しさんNGNG
Lisp使え、Lispを!
00211NGNG
PerlやLispだと簡単に定義できますか?
0022デフォルトの名無しさんNGNG
Lisp は知らんが、Perl や Ruby の配列は、C/C++ や Java のそれとは
まったく別物、追加、連結、切り出し、削除、ソート……と機能豊富だ。
Java で言えば Vector とか List に近いものだYO!。
0023デフォルトの名無しさんNGNG
ふと思ったんだけどさ、>>1 の書き方だと、
配列のサイズを動的にするんじゃなくて、
配列の次元を動的にしたいんじゃないの?
00241NGNG
>>23
そうです。
Javaでやってみたけど、結局やり方がわからなかった。
int array[] = (int[])Array.newInstance(int.class, n);
どうやってアクセスするかわからない。そもそも配列が作成
されたかどうかも不明。
0025デフォルトの名無しさんNGNG
やめとけって、動的に配列作るのはまあできるが
今度は動的にアクセスするのが大変だ。
00261NGNG
>>22
Vectorではできないです。
そもそも数理系の研究室を選んだのが間違いだった。
シミュレーションせず調査だけでいいところもあるのに。
むしろ経済学部だと調査でおわりのところがほとんどだと思うけど。
0027デフォルトの名無しさんNGNG
>>26
なんで Vectorだと出来ない?
使ってるコンピュータがヘボくて
Vector使うとメモリ足りなくなるとか?
00281NGNG
>>25
そう思う。
代わりに何かいい方法はないかな?
00291NGNG
>>27
配列のサイズは動的にできるけど、
次元はどうやってやるんでしょう。
0030デフォルトの名無しさんNGNG
C#だと、
Array class の static メソッドの↓
public static Array CreateInstance(Type, int[]);
だな。

でもさ、次元を動的にしないと実現できんようなシミュレーションっていったい何よ?
とりあえず、どういうものが作りたいのかを詳しく書け。
0031デフォルトの名無しさんNGNG
>>29
Vector.add( new Vector() )
で、やりたいほーだい。

Vectorでやるなら アクセスは
get( int[] indexs ){
 Object obj = Vector;
 for( int i = 0 ; i < indexs.length ; i++ )
  obj = ((Vector)obj).get( indexs[i] );

 return obj;
}
みたいにやるしかないような…
0032デフォルトの名無しさんNGNG
1次元の配列作って、
それを多次元配列に見せかけるようなクラス作るってのはだめかぃ?
0033デフォルトの名無しさんNGNG
>>32
もし作れても 1に使いこなせるかどうかは別問題と思われ。
00341NGNG
あまり詳しくは書けないけど。
例えば3人(a,b,c)のコミュニティーがあるとすると
aはbとcの評価を持っていてbはaとcの評価をもっていてcは・・・
ただaのb,cに対する評価はbのcとaに対する評価、
cの・・・とに依存しています。
これが4人になるとaはbとcとdの評価をもっていて・・・という感じ。
書いている自分ですら混乱する。
00351NGNG
>>32
そうしようと思う。
0036デフォルトの名無しさんNGNG
>>34
なぜそれで配列の次元がかわるの??
2次元配列で総当たり戦の表作ればいいんでないの???
0037デフォルトの名無しさんNGNG
>>34
経済の人間には理解できんかもしれんが、
そういうのって普通は動的次元配列とか使うんじゃなくて、
行列使ってやると思われ。

いい人からいい評価を受けてる人は、自分の中でも評価があがるって感じだろうから、
要するにさ、Googleのサイト評価法と一緒だろ?
(↑良質なサイトからリンクされているページはまた良質であるって方針)

↓ここを見てみれ
http://www.kusastro.kyoto-u.ac.jp/~baba/wais/pagerank.html

要するにさ、Googleがすでにやってることをいまさら研究にしてるわけよ。
シミュレーション以前にさ、研究価値自体ないじゃん。
003837NGNG
もうちょっとちゃんと書くと、

まず、最初に他人の意見は考慮に入れない自分だけの評価ってので、
各人の他人に対する評価を行列として表現する。

次に、他人の評価に基づいて自分の評価を変化させるような遷移写像と定義する。

で、最初に作った行列に対して繰り返し遷移写像を適用すると、
遷移写像が安定なものなら繰り返してるうちに行列の値が一定値に収束するはず。

その収束した行列の値が最終的な各人の他人への評価になるわけよ。

プログラミングの話聞く前に数学勉強しろ。
00391NGNG
>>37
それは道具として使うだけだから研究内容はそれとは違う。
でも、実際の研究も価値はないです。
社会科学で新しいことを見つけるのは相当レベルが高くないと
無理だと思う。
自分はレベルが低いから卒業できればそれでいい。
0040デフォルトの名無しさんNGNG
こんなやる気のねえ奴に何が出来るというのだ!!
00411NGNG
>>38
数学はそれなりにはできるのでそこら辺はわかってます。
ただアルゴリズムがわかってもプログラミングができない。
00421NGNG
>>40
何もできない。
0043デフォルトの名無しさんNGNG
>>41
数学もアルゴリズムもあやしいものだ。
0044デフォルトの名無しさんNGNG
>>39
こんな弱気なヤツに教えるんじゃなかった・・・・・・
0045デフォルトの名無しさんNGNG
いまさらだが、
なんだよ「ダイナッミック」って
0046デフォルトの名無しさんNGNG
つーか、ダイナミックな処理をするのにCってことはないわなー。
Schemeあたりにしとけ。
004737NGNG
>>39
社会科学に限らず、学部の卒論に研究価値なんてもんはあるほうが珍しいんだけどな。
弱気そうだったからいじめてみただけ。

でも、行列計算すればいいってアルゴリズムが分かってるのに
次元が可変の配列の作り方とか聞いてくるってのはかなりやばいぞ。
そんなこといってるようじゃ卒業は出来んな。
■ このスレッドは過去ログ倉庫に格納されています