10/01/28 13:19:41
>>441
*または#
447:デフォルトの名無しさん
10/01/28 13:28:24
>>446
おお!これだこれ
ありがとうございます!
448:デフォルトの名無しさん
10/01/28 16:10:57
>>442
にしてもなんで全角と半角ごっちゃなの?
なんか見てて気持ち悪い事この上ないんだが
449:デフォルトの名無しさん
10/01/28 17:08:09
>>448
そういう人は専ブラの置換機能を使うといいですよ
いくら啓蒙しようと実現不可能ですから
450:デフォルトの名無しさん
10/01/28 19:49:15
Cでマクロの引数に無理やりにでもブロック渡す方法ないの?
#define loop(ct, exp) for(int i=0; i<ct; i++) exp
loop(5, { if(i%2){ printf("%d\n", i); } });
みたいに。
451:デフォルトの名無しさん
10/01/28 20:30:32
>>450
それでできるじゃん。
何が不満なの?
452:デフォルトの名無しさん
10/01/28 23:05:48
ソース読んでたらこんなのあったんですが理解できません
なにをtypedefしてるんでしょうか?
アホの俺にも解るように人力コンパイルお願いします
typedef BOOL (WINAPI *phoge)(UCHAR aaa[64], UCHAR bbb[64]);
453:デフォルトの名無しさん
10/01/28 23:12:42
>>452
関数ポインタをtypedefしている。
名前はphogeで呼び出し規約はWINAPIだが、それは_stdcallだっけ??
それで、引数がUCHARの固定配列を二つ。
という関数ポインタを定義してるように見えるね。
454:デフォルトの名無しさん
10/01/28 23:14:01
抜けてた。
そのポインタの返り値はBOOL。
455:デフォルトの名無しさん
10/01/28 23:21:18
ほれ
typedef bool (_stdcall *phoge)(char aaa[64], char bbb[64]);
bool _stdcall f(char a[64],char b[64]){
cout << a << endl;
cout << b << endl;
return true;
}
int main(int argc, _TCHAR* argv[]){ phoge p=f;
char a[64]="hello";
char b[64]="world";
p(a,b);
return 0;
}
456:デフォルトの名無しさん
10/01/29 00:37:36
>>453-455
なるほど、ありがとうございます
用は関数も型宣言してしまえばポインタ操作でコール出来るってことですね
使い道は解ったのだけど何でこのtypedefで
phoge型の変数を宣言できるようになるんでしょうか?
うーん意味は解ったのにコードが読めない・・・orz
関数をtypedefしてるから関数名の型ができる?
457:デフォルトの名無しさん
10/01/29 00:42:57
phogeは「関数名」ではなく「型名」。
typedef int hoge;
のhogeと同様。
458:デフォルトの名無しさん
10/01/29 01:29:00
>>457
自分の理解が追いつかなくて申し訳ないですが
その例えだとintの部分ってどれに該当するのでしょうか?
459:デフォルトの名無しさん
10/01/29 01:47:21
typedef int MyInt;
MyInt a = 3;
MyInt b = 4;
MyInt c = a + b;
460:デフォルトの名無しさん
10/01/29 02:00:08
>>458
bool (_stdcall *)(char aaa[64], char bbb[64])
の部分
パラメータと戻り値の型が同じ関数を入れることができるようになるよ
461:デフォルトの名無しさん
10/01/29 02:11:08
BOOL 名前; // BOOL型の変数
BOOL 名前(引数リスト); // BOOLを戻す関数
BOOL (*名前)(引数リスト); // 「BOOLを戻す関数」を指すポインタ変数
typedef BOOL (*名前)(引数リスト); // 「BOOLを戻す関数」を指すポインタ型
462:デフォルトの名無しさん
10/01/29 02:46:32
>>459
申し訳ないですがそのコードの
意図するところが理解できませんでした
>>460
当然の事を聞いてしまいました
お手数おかけしました
>>461
型宣言って
typedef 宣言前の型 宣言後の型;
という書式だと認識しているのですが
宣言前の型 = 「BOOLを戻す関数」を指すポインタ型
だとして宣言後の型は「名前」の部分に当たるみたいですが
どうも自分が認識している書式と違っていて混乱しています
463:デフォルトの名無しさん
10/01/29 03:00:44
>>462
つまり
typedef BOOL (*)(引数リスト) phoge;
だったらわかりやすいのに、ってことか
ついでに言うと、
typedef int[8] int8array;
ならいいのに、と。
464:デフォルトの名無しさん
10/01/29 03:09:15
あ、そうそう、もし>>463の記述を正とする場合、関数の定義は
BOOL (引数リスト) fname // でもこうなら関数ポインタは BOOL (引数リスト)* p となって欲しい?
となるだろうし、配列は
int[8] arr;
とならなくちゃ整合性がとれないよね;p
465:デフォルトの名無しさん
10/01/29 04:04:13
とにかく、「typedef 宣言前の型 宣言後の型;」は正しくない(もしくは、ごく単純な場合にしか当てはまらない)ということ。
URLリンク(kmaebashi.com)
466:デフォルトの名無しさん
10/01/29 08:26:51
>>462
typedef int a;
aは「int」型
typedef int a[10];
aは「要素数10のintの配列」型
typedef int (*a)();
aは「intを返す(プロトタイプ宣言の無い)関数」型
typedef int (*a)(int, char *);
aは「intを返す(プロトタイプ宣言された)関数」型
467:デフォルトの名無しさん
10/01/29 08:36:56
>>466 関数へのポインタ、じゃないか?
つまり普通の変数宣言であれば、変数名になる部分が、
先頭にtypedefが付いていると、型名になる、ということ。
468:デフォルトの名無しさん
10/01/29 09:47:02
あぁ、そうだな。
関数→関数ポインタ
と変換して読んでくれ。
469:デフォルトの名無しさん
10/01/29 10:36:11
なんか、STLのアルゴリズムでデータを削除し、かつ削除した部分を他へコピーするようなやつが
あったように思うんですが、なんでしたっけ?
470:デフォルトの名無しさん
10/01/29 11:12:40
.htaccessのリダイレクトで
URLリンク(A) を
URLリンク(A) という風にBとCだけ変えるにはどう記述すればいいですか?
ABCは固定で、xyzが変動する英数字で組み合わせると膨大になるのです。
471:デフォルトの名無しさん
10/01/29 12:16:25
>>470
それがプログラム開発とどういう関係があるのだ?
472:デフォルトの名無しさん
10/01/29 12:54:45
もう一度質問します
2次元空間である4点があります。A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4)
この4点で四角形が出来ますが線分E(x5,y5)-(x6,y6)と
交わっているかどうかを計算式?か何かで求める方法を教えてください
Cプログラムで教えていただけると幸いです。(公式などでもいいです)
>>414で教えていただいた「線分 交差判定」で調べてみましたが
四角形の内側にあるときは線分は交差しない場合もあって
うまい方法がわかりません
すみませんが宜しくお願いします
473:デフォルトの名無しさん
10/01/29 13:05:30
中学数学の範囲だってわかって聞いてる?
474:デフォルトの名無しさん
10/01/29 13:10:05
ある点Eが四角形ABCDの内側か外側かを判定する方法がわからないということか?
475:472
10/01/29 13:14:36
そういうことになるのでしょうか?
しかし四角形は正方形や長方形ではなく
いびつな形もありますのです
その内側になるという判定方法はお知りでしょうか?
476:デフォルトの名無しさん
10/01/29 13:19:32
四角形と線分の交差判定は、四角形を構成する線分と線分の交差判定で出来る
以下線分の交差判定
点A,Bを(x1,y1)(x2,y2)
点C,Dを(x3,y3)(x4,y4)とする
点ABを通る直線の方程式
y=x*(y1-y2)/(x1-x2) + y1 - x1*(y1-y2)/(x1-x2)
除算を取り除いて
y*(x1-x2)=x*(y1-y2)+y1*(x1-x2)-x1*(y1-y2)
左辺に集めて
(x1-x2)*(y-y1)+(y1-y2)*(x1-x)=0
これに点C,Dを代入し、2つの符号が異なれば直線ABと線分CDは交差すると判定出来る
線分ABと線分CDの交差判定は、AB,CDを入れ替えて行い結果をあわせればOK
477:デフォルトの名無しさん
10/01/29 13:28:14
5つの線分AB, BC, CD, DA, Eを線分ではなく直線だと想定する。
直線Eと他4つの直線とで必ず最小2つ最大4つの交点がある。
あとはその交点が線分Eに乗っているかどうかを判定すればいい。
478:472
10/01/29 13:31:37
なるほど
直線と考えたらいいのですね
もう少し頭をひねってみます
みなさんありがとう
479:デフォルトの名無しさん
10/01/29 17:18:27
凹四角形で交点がEの始点、終点と一致するときに注意が必要だな。
480:デフォルトの名無しさん
10/01/29 18:55:15
3次元空間である4点があります。A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3),D(x4,y4,z4)
この4点で四角形が出来ますが線分E(x5,y5,z5)-(x6,y6,z6)と
交わっているかどうかを計算式?か何かで求める方法を教えてください
Cプログラムで教えていただけると幸いです。(公式などでもいいです)
481:デフォルトの名無しさん
10/01/29 19:14:51
三角形ABC, BCDと線分Eが交わっている問題に帰着し、
更に点X, Y, Z, T, Uからなる三角形XYZ, 線分TUに対し、
- T, Uからなる一次式を考え、
- x, y, z軸どれかを消去して投影した場合にXYZの中でXY, YZ, ZXのどれかがTUと交差しそれを線分VW
あまった一方の点をSとし、
- VWからなる一次式においてTUと交差する点Aを求め、それを3次元に再度置き換え直し、
- 線分ASがTUと交差するかを判定する
線形代数使えばもっと綺麗にいくんだろうけど知らん。
482:デフォルトの名無しさん
10/01/29 19:29:44
四角形ABCDが平面に載っているとして
その平面と線分Eの交点を求めて
四角形ABCD内にあるかどうか
483:デフォルトの名無しさん
10/01/29 20:00:38
>>472
ちょっと思いついただけだが
まず端の点が四角形の中か調べる→片方でも中にあったら交わってる
中に無かったら
その線分と四角形の四辺が交わるか調べる
コレでどうだろうか
484:デフォルトの名無しさん
10/01/29 21:55:43
>>469
<algorithm>のstd::remove_copyのこと?
485:デフォルトの名無しさん
10/01/30 00:06:38
>>483
両方の端点が中にあったら交わらないぞ?
486:デフォルトの名無しさん
10/01/30 00:12:58
>>485
一つの角が180℃以上の四角形なら
二つの端点が四角形内部でも
辺と交わる可能性はある
487:デフォルトの名無しさん
10/01/30 11:07:19
>>485
あれ?>>472を見るに四角の中に入ってる場合も交わってると判断したいお読んだんだが違ったか?
中に入ってるのを交わってるとしないなら
単に四辺と交差するか調べるだけで良いしね
488:デフォルトの名無しさん
10/01/30 11:08:45
したいお→したいと
すまん
489:デフォルトの名無しさん
10/01/30 11:37:30
大丈夫だお^^
490:デフォルトの名無しさん
10/01/30 14:15:45
Javaスレで聞くべきかPythonスレで聞くべきか迷ったのでここで聞く。
これから急にJavaをやらなきゃいけなくなった。
Pythonの文法は一通り理解してるつもりでいるんだけど、PythonとJavaのオブジェクト指向って似てるもん?だいぶ違う?
あと両者の違いでこーゆーところはハマりやすいから気をつけろってとこがあったら教えて欲しいっす
491:デフォルトの名無しさん
10/01/30 14:24:10
そういうの気にせずにJava初心者としてゴリゴリ勉強していけばいいよ。
一々これはPythonで言うところの…とか対応探しやってると逆に効率悪い。
Pythonで身に付いたOOやプログラミング一般の知識はもちろん役に立つし
ネットで質問する時にPythonのキーワード使うと答えが返ってきやすいというのはあるだろう。
492:デフォルトの名無しさん
10/01/30 14:46:24
なるほど。
んじゃ気にせず一から勉強してくわ。サンクス。
493:デフォルトの名無しさん
10/01/30 15:00:39
>>490
断れ
494:デフォルトの名無しさん
10/01/30 17:02:34
どうしてこれでn/3が計算できるのですか?
mov eax,55555556
imul dword ptr [n]
mov eax,edx
shr eax,1f
add eax,edx
//eaxに答えが入る
495:デフォルトの名無しさん
10/01/30 18:55:23
>>494
55555556h ≒ 1 / 3 * 100000000h
imulを行った時点でedx:eax ≒ n / 3 * 100000000h
edxだけ見るとedx ≒ n / 3
ただし、このままだとn / 3と微妙に値が異なる場合があるので、それを調整するのがshrの意味だと思う。
496:デフォルトの名無しさん
10/01/30 21:01:35
すんません、最近C#とかASP.NETとか勉強してるもんです。
googleの検索みたいに、文字を入力しいくと候補がでてくる仕組みは
Ajaxっていう技術を使ってるということでいんでしょうか?
そうであれば、Ajaxの勉強にいいサイトないし本の紹介をお願いします。
497:デフォルトの名無しさん
10/01/30 21:04:31
>>495
なるほど、マジックナンバーはそこから来てたんですね
55555556は6が四捨五入した値だから
この誤差はeaxの最下位ビットに伝播して本来の値よりも少なくなるわけですね
その誤差の修正がedxの最上位ビットとの可算で済むのはきっと
誤差が少なくなるように何かの考えがあるんでしょうけど
出来ればその辺も知りたいです
また、知ってる人いたら教えてください
498:デフォルトの名無しさん
10/01/30 23:44:43
単純な四捨五入(2進だから0捨1入)だと思う。
499:デフォルトの名無しさん
10/01/31 10:46:22
IPhoneっlatexをみたいので
簡易型のビューアを作ろうかと思ったのですが、latexのライセンスがいまいちわかりません。
あれはアプリの実装が自分のオリジナルでもlatexのファイルフォーマットを使えばしたがわなければいけないのでしょうか?
500:デフォルトの名無しさん
10/01/31 10:48:19
IPhonexltulatex?
501:デフォルトの名無しさん
10/01/31 11:19:20
従う必要はありません。
502:デフォルトの名無しさん
10/01/31 11:47:43
>>501
ありがとうございます。
503:デフォルトの名無しさん
10/01/31 16:34:27
【2丁拳銃】石田靖のパソコン自慢#1
URLリンク(www.youtube.com)
こんな動画を見つけたんだけど、2人とも初心者すぎて話にならん
作っているソフトとか言語の話になるのかと思いきや、タッチタイプの速さ自慢かよ
しかも、タイプの速度かなり遅いし
お前らはこの動画を見て、どう思いましたか?
504:デフォルトの名無しさん
10/01/31 16:41:29
これが公共の電波に乗ってたのかよ。スレ違いを通り越して板違いだが本当にTV終わってるな。
505:デフォルトの名無しさん
10/01/31 16:47:07
インターネットTVとかじゃないのこれ? 公共の電波に乗ったの? 知らんけど。
個人的には、この動画タイトルから「作っているソフトとか言語の話になるのかと思」う
>>503の感性のほうが意味不明だと思った。
似たようなノリで、もし自作パソコン云々という動画があったら「CPUの設計とかの話になるのかと思」うのかな。
506:503
10/01/31 16:51:01
>>505
いや~、一番最初に「俺めっちゃ詳しいよ」って言っていたから(>>505のリンクじゃな動画で)
>作っているソフトとか言語の話になるのかと思
ここは、俺が思った事を書いただけで
507:デフォルトの名無しさん
10/01/31 17:03:58
OSのことを基本ソフトって言ってしまうくらい恥ずかしい
508:デフォルトの名無しさん
10/01/31 17:05:07
それ以上に恥な行為だから安心しろ
509:デフォルトの名無しさん
10/01/31 19:53:14
>>497
丸め方向は0側、+側、-側があって、intの割り算は絶対値で見て端数切捨てだから、単純な掛け算では0方向への丸めが必要になる。
この計算方法の場合、edxを見に行った時点で2の補数形式で端数を切り捨てているわけだが、+の値の場合は0/-方向へ-の値の場合は-方向、つまり-方向へ丸める計算になっている。
-方向へ丸まった値を0方向へ丸める場合、どう丸めなおすべきかは符号で決まるから0x1f=31ビットシフトで最上位ビット=符号ビットを引っ張ってきてる。
割り切れる値がどう丸まっててどう補正されるのかはしらん。…取り敢えず実際に計算してみればいいかと思う。
数値の丸めについては書籍が出るような話だから厳密に知りたいならその手の書籍をどうぞ。
510:デフォルトの名無しさん
10/01/31 20:59:11
>>503
>お前らはこの動画を見て、どう思いましたか?
「こいつより俺の方が上手く出来るんだ」「それなのにこいつだけ目立って悔しい」という嫉妬の感情を抱いた。
そんな自分がとてつもなく小さい人間に思えた。俺は虫けら以下だ。悔しい。
でも、
「結局、いくらパソコンが上手に出来ても、俺はこいつのように上手くしゃべれない」
「だから、こいつみたいに目立つことはできないんだ」というあきらめの感情を抱いた。
自慢することがパソコンしかない俺は、俺よりパソコンの下手なこのタレントに嫉妬の感情を抱きながら、
日の当たらないところで、一生虫けらのように生きていくんだ。
くやしいのう、くやしいのう。
511:デフォルトの名無しさん
10/01/31 22:26:15
>>505
俺も同じこと思った。
なんせ「パソコン自慢」だもの。
素人さんの世間話だろうなくらいしか思えん。
512:デフォルトの名無しさん
10/02/01 01:26:09
小倉がとくダネで、IT関連のしったか解説をして間違ってたら
イラっとするけど、芸人のパソコン自慢じゃな。
513:デフォルトの名無しさん
10/02/01 01:28:05
スレタイ読まない奴にイラっとくる
514:デフォルトの名無しさん
10/02/01 01:31:09
ちょっと脱線したらでてくる自治厨にイラっとする。
515:デフォルトの名無しさん
10/02/01 01:33:39
>>512
真に受けるアホが量産されるから小ヅラよりもやばいと思う
516:デフォルトの名無しさん
10/02/01 02:04:06
じゃあ、お前らがTVに出て解説すればいいじゃんwwwwwwwww
517:デフォルトの名無しさん
10/02/01 02:31:44
何千、何万の聴衆の前で話すことを考えて欲しい。
もしかしたら、俺たちの方が小倉やその他のテレビタレントよりもIT系の知識があるかもしれない。
しかし、俺たちは、彼らより上手く説明できないし、たぶん正確にも説明できないだろう。
日本語として論理の通った話が出来るかどうかも怪しいところだ。
俺たちはその程度の人間なんだ。
518:デフォルトの名無しさん
10/02/01 02:38:49
>>517
同意できない
小倉さんのギャラの10%を専門家に廻し
Q&A方式でいいと思う
519:デフォルトの名無しさん
10/02/01 04:12:37
DevC++(mingw)、win32API、win2000でイメージビューアみたいなbmp,jpg,gif,png辺りを2~複数枚表示、目視比較させたいんだけど、なんか楽な方法ない?
GDI+考えたんだけど、使ってる開発環境が対応してないようで、reimpで追加インスコするにもなんかうまくいかないから諦めた
今はsystem()でsusie起動させてるけど不便で
ダイアログ使うのもまだ理解してないヘタレだから難しいのは勘弁な
520:デフォルトの名無しさん
10/02/01 04:13:49
opencv
521:デフォルトの名無しさん
10/02/01 05:20:34
ありがとう
少し試してみて、共存できそうならそれ使ってみます
まだ考えてなかったけど、画像処理もできるのは便利そう
522:デフォルトの名無しさん
10/02/01 10:45:37
ハロワの求人で、ASP型検索システムの調査研究って仕事があるんだが、全くわからんしパソコンの知識もあまりないのに応募してみてもいいものか…
一応経験資格不問、東京へ出張しての研修が2週間あるんだが
523:デフォルトの名無しさん
10/02/01 10:57:07
迷わず逝け
524:デフォルトの名無しさん
10/02/01 13:58:42
飛びつけ食いつけ食らい付け。 歯が折れても顎が外れても噛みつけ。
今の就職事情はそのぐらいだ。
525:デフォルトの名無しさん
10/02/01 15:39:41
while(d<200){
printf("%d",s[200-d]);
d++;}
みたいな感じで配列の値を参照したんですが、0~99番目の要素が参照できませんでした。
理由がサッパリ分かりません・・・誰か詳しい人、助けて…
526:デフォルトの名無しさん
10/02/01 15:44:22
>>522
なんか公共事業っぽい香りがするなぁ。
某市のWebサイト構築事業の入札条件に
・予定費用の半分以上は人件費に使うこと
・当方指定の講習会に参加させること(東京で開催されるものを含む。複数回あり)
なんて項目があったのを思い出したよ。
労働条件や仕事内容に納得がいくなら、あとは
ガッツ(死語)を見せてアピールしなはれ。
527:デフォルトの名無しさん
10/02/01 16:09:34
>>525
「参照できない」というのは具体的にどういうことが起きたの?
何事も無かったかのようにループが終了したのか、それともエラーが発生したのか。
あとループに入る直前のdの値と、s(配列?)の要素数をもう一度確認してみるとか。
キミの書いたコードは、回答するのに必要な最小限の情報のさらに半分くらいにしかなってないから、
それだけでは原因の特定は無理。
528:デフォルトの名無しさん
10/02/01 16:36:03
>>525
エスパーが答える。
d<200でs[200-d]では要素0番目は参照されないよというのはおいといて。
おそらく
int d=0;
int s[200];
while(d<200){
s[d]=d;
printf("s[%d]=%d\n",d,s[200-d]);
d++;
}
こう言う事をしているんだろう。
s[0]=0 な。s[200]の値は? え?
s[1]=1 な。s[199]の値は? え?
...
s[100]=100な。s[100]の値は? 100
s[101]=99な。s[101]の値は? 99
529:デフォルトの名無しさん
10/02/01 18:08:23
c入門中です。
手始めにライフゲームを作っています。
cell[15][15]という2次元配列の中にセルの状態(生=1、死=0)を入れていきたいのですが、
可読性が悪いので、できれば
0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0
0,0,0,1,0,1,0,0,1,0,1,0,1,1,1,0
:
:
のような形でデータを入れたいのですが、どのようにすればいいでしょうか?
530:デフォルトの名無しさん
10/02/01 18:21:17
初期化のときだけなら
int cell[15][15] = {
{ 0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0 },
{ 0,0,0,1,0,1,0,0,1,0,1,0,1,1,1,0 },
...............
};
531:デフォルトの名無しさん
10/02/01 18:30:57
>>530
あ、{の2重括弧で2次元配列の初期化出来るんですね。
ありがとうございました!
532:デフォルトの名無しさん
10/02/01 18:34:57
複数のスレッドで特定の変数に同時アクセスすると正常に動作しないと聞いたのですが
URLリンク(www.kumei.ne.jp)のサンプルでEnterCriticalSectionを消しても正常に動作しました
バグが発生するサンプル教えてくれませんか?
533:デフォルトの名無しさん
10/02/01 18:39:19
>>532
CPUのコアはいくつ?
どうなると異常かはわかってる?
適当にSleepとかウェイト入れてみたら
534:デフォルトの名無しさん
10/02/01 18:44:28
>>532
タイミング次第だから上手くいくこともある
簡単な例だとこんなのはどう
URLリンク(codepad.org)
535:デフォルトの名無しさん
10/02/01 19:00:46
thx、バグ確認できました
g += 2; の流れは以下の認識おk?
gの値と取得
↓ ←ここで別スレッドのg代入が行われる
2足してgに代入 ↑の別スレッドの加算分が反映されない
536:デフォルトの名無しさん
10/02/01 19:03:30
おk
537:529
10/02/01 19:06:12
度々すみません。
>>530の方法で値を代入してみたのですが、
cell[x][y]とすると、左に90度寝た状態に代入されているようです。
ややこしいので、できれば代入時の0,1の並びと実際の表示を一致させたいのですが、
なにかいい方法はありますでしょうか?
538:529
10/02/01 19:07:15
×左に90度
○右に90度
でした。訂正します。
539:デフォルトの名無しさん
10/02/01 19:09:56
cell[y][x] にすればおk
540:デフォルトの名無しさん
10/02/01 19:13:01
*CELL 及び CELLロゴは株式会社CELLの商標または登録商標です。
541:529
10/02/01 19:17:57
>>539
やはりそれが一番手っ取り早いですかね?
まぁ、ライフゲームなら方向性関係ないし、いいのか…
ありがとうございました。
>>540
鳥山明逃げてー?w
542:デフォルトの名無しさん
10/02/01 20:29:21
C/C++で二次元配列使う場合は[y][x]の並びにするのが普通じゃないかな
「方向性関係ないし」とあるが、問題になる場面が思いつかん
543:デフォルトの名無しさん
10/02/01 21:42:46
お前の普通はみんなの異常
544:デフォルトの名無しさん
10/02/01 22:36:45
連続したメモリアクセスの方が速いと言う事を知らないのかな。
素人さんなら知らなくてもOK。
545:デフォルトの名無しさん
10/02/01 22:51:22
lifeの実装なら大して変わらないだろ
いまさら効率気にするようなもんでもないし
546:デフォルトの名無しさん
10/02/01 23:24:23
ビットマップ処理辺りで思考が進化終了してるオヂさんなんだろう
547:デフォルトの名無しさん
10/02/02 00:02:42
どうせコンパイラが最適化してくれるよね
548:デフォルトの名無しさん
10/02/02 00:20:34
>>542
Fortranスレに行け
549:デフォルトの名無しさん
10/02/02 00:44:47
>>547
たまによくこんな事思いつくなっていう
最適化してるの知るとちょっと嬉しい
550:デフォルトの名無しさん
10/02/02 00:56:52
オレも[y][x]派だな
慣れるとこっちの方がイメージしやすい
551:デフォルトの名無しさん
10/02/02 01:31:35
お前らが行列計算の経験が無い事はわかった。
552:デフォルトの名無しさん
10/02/02 01:40:44
行列・・・m12って書いたら1行2列めだよな?
553:デフォルトの名無しさん
10/02/02 01:58:21
Cで行列計算は大抵[y][x]だと思うが。
554:デフォルトの名無しさん
10/02/02 04:18:19
すみません,アルゴリズムはわかっているのですが,コードに落とし込めない問題にぶちあたっています.
555:554
10/02/02 04:19:26
すみません,途中で送信されてしまいました.
アルゴリズムはわかっているのですが,コードに落とし込めない問題にぶちあたっています.
どこか,そういったものを質問できるスレはあったりしますか??
556:554
10/02/02 04:45:11
こんばんは.失礼します.
現在,次のような課題に取り組んでいます.
もしよろしければこの難問をハックしていただけないでしょうか.
(できればCで・・・)
N個の要素があり,その,すべての組み合わせ(2^N組)に対して,
それぞれに値が決まっているものとします.
そして,ある組み合わせの値は,その組み合わせの中の部分集合の
どんな和よりも大きいです.
また0個の集合では値は0とします.
こうした場合に,全ての組み合わせの値を以上のルールに則ったまま
乱数を用いて決定したいと考えています.
具体的には
要素が一つの組み合わせは乱数.たとえばAのみの集合の場合 v(A)=random
要素が2つでは,v(A,B)=v(A)+v(B) + random
3つでは,v(A,B,C) = max(v(A,B)+v(C), v(B,C)+v(A), v(C,A)+v(B)) + random
となります.
この方式で,全ての組み合わせに値を当てはめることを考えているのですが
コードに落とし込むことが出来ません..
557:554
10/02/02 04:45:54
今のところ,各組み合わせを以下のような二進数で表そうと考えています.(N=3の場合)
各行の一列目が1はAがその組み合わせにいることを意味し,
二列目はB,三列目はCを表しています.
ABC V
000 0
001 rc
010 rb
011 ?
100 ra
101 ?
110 ?
111 ?
558:デフォルトの名無しさん
10/02/02 05:10:05
日本語か数式でおk
てかおまい理解してるのか気になる
組み合わせが2^N個っていう割に例題だと8つしかないぞ
559:デフォルトの名無しさん
10/02/02 05:48:38
> N個の要素があり,その,すべての組み合わせ(2^N組)に対して,
> それぞれに値が決まっているものとします.
bool ary[N]={.,.,.....};
とかね。分かります。
>そして,ある組み合わせの値は,その組み合わせの中の部分集合の
>どんな和よりも大きいです.
うーん。
{1,1,0}の時に
{1,1,0}と{{1,1},{0}}ではどちらも和が2になる
>どんな和"より"も大きいです.
を満たすのは不可能だな
bool出なくとも負数を除けばいいだけなので同様。
> 具体的には
> 要素が一つの組み合わせは乱数.たとえばAのみの集合の場合 v(A)=random
> 要素が2つでは,v(A,B)=v(A)+v(B) + random
> 3つでは,v(A,B,C) = max(v(A,B)+v(C), v(B,C)+v(A), v(C,A)+v(B)) + random
> となります.
v()、randomの挙動。
=は左辺右辺は成り立つのか。
謎過ぎ。
アルゴリズムが分かっていれば
泥臭いものなら言語仕様など関係無しにその都度調べれば形が出来るものだし
少なくとも他人に伝わる説明は出来るはず。
分かってないんじゃないか?
560:デフォルトの名無しさん
10/02/02 12:27:42
wget を製品の一部として販売したいのです (wgetの機能を製品の一部として使う)
そこでwgetを詳しく見るとGNU GENERAL PUBLIC LICENSE
があるのですが、英語なのでわかりません
わかる方回答くださいませんか?
561:デフォルトの名無しさん
10/02/02 12:32:50
外部プログラムとして呼び出してる状態?
562:デフォルトの名無しさん
10/02/02 12:34:13
>>560
日本語訳があります
URLリンク(www.opensource.jp)
563:デフォルトの名無しさん
10/02/02 12:35:46
>>554-557
バグありそうだけど、こんな感じ?
行数制限で、出力部は省略したw
#include <stdio.h>
#include <stdlib.h>
#define max(a,b) ((a) > (b) ? (a) : (b))
int get_rand(int maxValue)
{
return rand() * maxValue / RAND_MAX + 1;
}
main( int argc, char *argv[] )
{
const int N = 3;
const int count = 1 << N;
int i,j,result[count];
result[0] = 0;
for(i = 1;i < count;i++) {
int value = 0;
for(j = 1;j <= i/2;j++) {
if((i & j) == j)
value = max(value,result[j]+result[i-j]);
}
result[i] = value + get_rand(10);
}
}
564:560
10/02/02 12:43:46
>>561
そうですね 外部プログラムとして呼び出す状態です
>>562
ありがとうございます
サーッと読ませてもらいましたが、そのソフトウェアについてだけしか
書かれておらず、今回のように、製品の一部として配布する場合が
書かれてない(読み取れてない)ので、助言をしてくれると助かります
565:デフォルトの名無しさん
10/02/02 13:00:22
>>564
そこに書いてある事がすべて。後は自分の所の法務部に相談しなよ。
566:デフォルトの名無しさん
10/02/02 13:00:58
GPLは金銭目的でプログラムの複製を販売することを許可していますか?
はい。GPLは、誰もが販売することを許可しています。複製を販売する権利 はフリーソフトウェアの定義の一部です。
と書かれてるので可能ですね
567:デフォルトの名無しさん
10/02/02 13:20:32
>>564
wikipediaのGPLのページ見るといいよ
今回の場合は多分製品自体はGPLには成らないって考えでいいと思う
568:デフォルトの名無しさん
10/02/02 13:49:37
wgetを含めて販売するのはいいとしても、wget自体はGPLなので、GPLに従った形で、
つまりwgetのソースコード (もしくはそれを提供すると約束する文書) と共に、製品に含める必要があると思われ
当然複製禁止だとか改変禁止だとかいったその製品自身のライセンスをGPLであるwgetに及ばせることはできないから、
製品に含まれるwgetを再配布する自由は認められなければならないし、wgetに対する改変も認められなければならない
まぁ実際やる奴はいないだろうけど
569:デフォルトの名無しさん
10/02/02 13:50:20
適当なことぬかすな
570:554
10/02/02 14:29:28
>>558 , >>559 , >>563
ありがとうございます!!
もすこし整理してみます..
571:デフォルトの名無しさん
10/02/02 14:54:46
522です
遅くなったけどレスくれた方々ありがとう
とりあえず書類提出しました
572:デフォルトの名無しさん
10/02/02 14:55:27
フォームに数値を入力して、その内容から計算結果を出力する
というようなのを昔学校で作った記憶があるんですが
それは開発環境のソフト内でしか起動できませんでした。
フリーソフトのようにexeにして使うようにするには
何の言語、又はアプリを使えば可能なんでしょうか?
573:デフォルトの名無しさん
10/02/02 15:00:34
パス
574:デフォルトの名無しさん
10/02/02 15:03:48
パス2
575:デフォルトの名無しさん
10/02/02 15:11:39
俺の独断と偏見によるオススメ順
Delphi
C#
Java
C
C++
VB
576:デフォルトの名無しさん
10/02/02 15:58:25
RubyだろJK
577:デフォルトの名無しさん
10/02/02 16:58:23
>>575
ありがとうございます。
C#でやることにしました。
578:デフォルトの名無しさん
10/02/02 17:16:54
なんでやねん
579:デフォルトの名無しさん
10/02/02 17:17:52
いや突っ込むような決断ではないと思うぞ。
580:デフォルトの名無しさん
10/02/02 17:41:59
>>575
Delphiだけ浮いてるような気がする・・・
Windowsアプリ作りたいんならC#、次点でVBかな。
581:デフォルトの名無しさん
10/02/02 17:48:18
D
はいらないのかJC
582:デフォルトの名無しさん
10/02/02 17:57:27
Dは全体的に残念な感じなのがアレですから・・・^^;
583:デフォルトの名無しさん
10/02/02 20:03:56
むしろその開発環境のソフトとやらが気になる
VBAか?
584:デフォルトの名無しさん
10/02/02 20:09:59
VBAなどというソフトは存在しない
585:デフォルトの名無しさん
10/02/02 23:37:31
Visual C++ 2008 Express Editionです。
Shift-JISのファイル名をUnicodeにmbstowcsで変換しようとすると、
「スタートメニュー」が「ベタートメニュー」になったり、
「デスクトップ」が「デベバトップ」になったりしてしまいます。
どうすれば正常に変換できますか?
586:デフォルトの名無しさん
10/02/02 23:38:37
>>549
MULをADDとSHLで置き換えたコードを書いたら最終的にMULに戻されたときには苦笑いだった。
コンパイラ的にはソッチの方が速いって判断なのね・・・
>>542>>543>>550>>553
コードの出所の文化次第じゃねーのかそんなん?もしくは>>544の言うように、処理に合わせて連続するように臨機応変にするか。
絶対的な正解はないと思うんだが。
>>568
バイナリ入手者がバイナリ提供者にソースを要求することができて、ソース譲渡は実費範囲のみで郵送、販売、ネット配布何でも良いってのが約束。
wgetならwgetの公式提供元のリンク叩きつけるだけでいいよ。自分で配布なんてする必要は一切ない。
>>576
572へのおすすめだから一般的な話をしても意味ない気が…
それにexe化ダルイだろJK
587:585
10/02/03 00:47:20
setlocale(LC_ALL,"");
となっていたのを、
setlocale( LC_ALL, "Japanese_Japan.932" );
にしましたが改善されませんでした。。
デベバトップやベタートメニューで検索するとか意外性ソフトで同じような文字化けが起きるものがあるそうです。
588:デフォルトの名無しさん
10/02/03 01:39:49
>>587
ユニコード変換とかロケール変換とか以前に、マルチバイト文字をマルチバイト文字として扱ってないのが問題。
デスクトップはShift-JISで83 66、83 58、83 4E、83 67、83 62、83 76となるが、この各第二バイトを一文字だけで見るとf、X、N、g、b、vになっている。
これを小文字へ変換するとf、x、n、g、b、vとなり当てはめると83 66、83 78、83 6E、83 67、83 62、83 76となり、これ即ち「デベハトップ」である。
逆に大文字にすると83 46、83 58、83 4E、83 47、83 42、83 56、これ即ち「ェスクエィシ」である。
どっかで小文字へ変換してるな貴様?
ちゃんとマルチバイトを扱いたいなら、ロケールをセットした上でisleadbyteや_ismbblead(VS系専用)でマルチバイト文字の先行バイトであるかを判定して、先行バイトに続く文字では処理を行わないなどの例外を設けましょう。
マルチバイト文字の第二バイトを単体で判定すると先行バイト判定される文字もあるので、先行バイトが来たらナニも言わず次の\0以外の文字を読み飛ばすとかの処理方法を使いましょう。
海外製でよくひっかかるのは、海外製ソフトでマルチバイトを考慮せず大文字小文字変換をカマスから。
同様に、マルチバイト文字の第二バイトで\が入るとパス区切り扱いされて泣くケースもある。
与えられた文字列の最後の\を消すとかの処理でも、ちゃんとマルチバイトか判定しましょう。
589:デフォルトの名無しさん
10/02/03 01:59:58
ディレクトリ名の末尾に\が入るケース
「c:\hoge\fuga\hage表」
とかで死ねる
海外製ソフトだと常に最上位bitを0にして7bitにしてしまうものもある
590:デフォルトの名無しさん
10/02/03 02:29:24
海外ネタだと、マルチバイト→Unicode変換を1バイトづつキャストするだけって素敵仕様の物もあるな。
とある超有名ソフトウェアにこのバグが潜んでいるのを見つけたときは心底ビビったよ。
その時からその会社のコードを信用していないんだが、案の定何度もセキュリティホールで騒ぎ起こしててなんともね…
591:デフォルトの名無しさん
10/02/03 09:20:11
マイクロソフトとかいう会社か?
592:デフォルトの名無しさん
10/02/03 09:30:44
VBを作成する際にGUIについて注意点とかまとめたサイトとかありませんか
タブインデックスの設定などもっと知りたいです。よろしくお願いします。
593:デフォルトの名無しさん
10/02/03 10:58:50
VBを作るんですか?マイクロソフトにでも入らないと無理じゃない?
594:デフォルトの名無しさん
10/02/03 11:13:53
失礼しました
「VBを作成する際に」→「VBでアプリケーションを作成する際に」
です
595:デフォルトの名無しさん
10/02/03 11:50:51
どんなソフトのGUIかは分からんが、
大衆が使いそうなら大衆が既に使っているエクセル辺りを参考にすれば良い
パクリと言えばそうだが、無駄に使い勝手が変わるのはユーザーを無視しているとも言える
ゲームならそれこそ有名ソフトをパクれば良い
作っていくうちに色々コツがつかめて来るだろう
596:デフォルトの名無しさん
10/02/03 12:00:30
同じエクセルでもバージョン変えるときに使い方まで変えてしまうMSは馬鹿ですねわかります
597:デフォルトの名無しさん
10/02/03 12:04:14
>>588
これは凄いエスパー。「デベハトップ」でピン!とくるの?
598:デフォルトの名無しさん
10/02/03 12:23:02
デベハトップでぐぐれば誰でも
599:デフォルトの名無しさん
10/02/03 12:27:34
>>597
とりあえず「デベハトップ」をバイトコードにするのは常識
それをASCIIで見るとどうなるかっていうのも
2進エディタとかで見てるひとには常識だったりする
600:デフォルトの名無しさん
10/02/03 14:41:53
「バイトコード」とか妙な用語を俺定義して使わないように
601:デフォルトの名無しさん
10/02/03 14:51:21
バイトコードって中間言語の一種。
16進ダンプとかとはまったく関係ない
602:デフォルトの名無しさん
10/02/03 14:57:08
2進エディタってテープに穴あけたりふさいだりするやつ?
603:デフォルトの名無しさん
10/02/03 15:00:04
それはキーパンチャーじゃね?
604:デフォルトの名無しさん
10/02/03 15:02:41
>>602
それはスプライサ。
605:デフォルトの名無しさん
10/02/03 17:35:46
>>600-601
すまん
うっかり手が滑った
606:デフォルトの名無しさん
10/02/03 18:50:24
>>591
Adobeだ。
極限定的な環境でUnicode変換用APIを呼ばずにそれをやらかすようになってた。
そもそも変換が必要になった理由からして終わってた。
607:デフォルトの名無しさん
10/02/03 18:53:17
確かに、バイナリ(2進)エディタと言うけど、実際のところ16進(ヘキサデシマル)エディタだよな。
608:デフォルトの名無しさん
10/02/03 18:57:40
16進はバイナリでいいだろ
609:デフォルトの名無しさん
10/02/03 20:40:06
バイナリエディタは編集対象がバイナリファイルだからであって、
2進とか16進で表示するからバイナリエディタじゃあないだろう
610:デフォルトの名無しさん
10/02/03 20:53:03
って~ことは、テキストファイルはバイナリエディタの編集対象にならない
て~こったな。
611:デフォルトの名無しさん
10/02/03 21:08:10
テキストファイルはバイナリファイルに包含される。
612:デフォルトの名無しさん
10/02/03 21:57:22
ということはテキストエディタもバイナリエディタの一種ということになる。
613:デフォルトの名無しさん
10/02/03 22:08:10
テキストファイルの対義語はバイナリファイル。
614:デフォルトの名無しさん
10/02/03 23:14:33
テキストファイルとは各行が改行コードで区切られたバイナリファイルです
615:デフォルトの名無しさん
10/02/03 23:23:57
バイナリ
バイナラズ
ワルナリ
616:デフォルトの名無しさん
10/02/03 23:49:19
>>615
おまえ生きてる意味あるの?
617:デフォルトの名無しさん
10/02/04 00:16:42
バイナリ
イタダキ
ナダコウ
リキウル
つまりバイナリファイルを頂く灘校卒業生はリキュールを飲むのだ!
618:デフォルトの名無しさん
10/02/04 00:33:18
md5ソートマンドクセ
しょうがないからupperとlowerに分けてuint64にしてソートしていいよね
619:デフォルトの名無しさん
10/02/04 00:44:54
hex文字列でソートする。
620:デフォルトの名無しさん
10/02/04 00:52:37
>>613
バイナリファイルの対義語はアスキーファイル
621:デフォルトの名無しさん
10/02/04 00:59:52
アスキーとはかぎらない
622:デフォルトの名無しさん
10/02/04 02:00:30
テキストファイルと言ってもな
CRのみで改行されてたり
LFのみで改行されてたり
CR+LFで改行されてたり
どれかに決め打ちすることは出来ないんだぜ
バイナリーでいいだろ
623:デフォルトの名無しさん
10/02/04 02:02:34
そうだね
SJIS だったり
EUC だったり
ISO-2022-JP だったり
UTF-8 だったり
BOM 付きだったり
およそアスキーファイルとは言い難いよね
624:デフォルトの名無しさん
10/02/04 07:50:41
広義のバイナリファイルにはテキストファイルを含む
狭義のバイナリファイルには含まない
バイナリエディタは広義のバイナリの方
コレで良くね?
625:デフォルトの名無しさん
10/02/04 11:18:14
そもそもアナログCPUじゃない時点でバイナリじゃないファイルってあるのか?
626:デフォルトの名無しさん
10/02/04 13:25:18
無理に引っ張らなくていいから
627:デフォルトの名無しさん
10/02/05 00:56:59
>>626
いや>>625自体が「スレ立てるまでもない質問」じゃないか?
BASE64とか、意図としては2進数以外を想定してるファイルとか。
あとLaserDisk辺りの映像信号はアナログだけどデジタルで処理してる気がする。
ファイルと呼ぶべきかは微妙。
628:デフォルトの名無しさん
10/02/05 01:00:37
無理に引っ張らなくていいから
629:デフォルトの名無しさん
10/02/05 05:47:19
>BASE64とか、意図としては2進数以外を想定してるファイルとか。
BASE64だってバイナリだろ
>あとLaserDisk辺りの映像信号はアナログだけどデジタルで処理してる気がする。
ハードディスクの磁気だってアナログだ
630:デフォルトの名無しさん
10/02/05 08:39:39
>>627
> BASE64とか、意図としては2進数以外を想定してるファイルとか。
「テキスト以外を想定してるファイル」なら正しかったのに
631:デフォルトの名無しさん
10/02/05 09:04:22
>>629
ハードディスクもMLC-SSDも、意図としてはデジタルデータじゃん。
LDの映像フォーマットはアナログNTSCとかその辺じゃなかったか?
632:デフォルトの名無しさん
10/02/05 10:06:52
三次元Y/C分離ってデジタルでやってるんじゃないの?
633:デフォルトの名無しさん
10/02/05 11:18:03
画質を向上させる手段なだけで規格的には必須じゃないんじゃ
634:デフォルトの名無しさん
10/02/05 18:12:44
無理に引っ張らなくていいから
635:デフォルトの名無しさん
10/02/05 19:27:43
ゲームつくりたいんだがどの言語学べばいいかな。2Dも3Dもつくりたい
2Dはアイワナビーザガイみたいなので、3Dは地球防衛軍シリーズみたいなの
636:デフォルトの名無しさん
10/02/05 19:28:56
HSPっていうのがいいらしいですよ
なんでも2DはGDIっていう最新のAPIが使えたり、3Dは3Dでディレクトエックスっていうのが使えるらしいですよ。
637:デフォルトの名無しさん
10/02/05 23:37:58
2Dはアクションゲームルク-ル買って来い
3DはUnrealDevelopmentKit落として来いや
638:デフォルトの名無しさん
10/02/06 00:00:16
>>632
URLリンク(ja.wikipedia.org)レーザーディスク
>映像はアナログ(ダイレクトFM)方式
ピッチ間隔がアナログ値として機能してるらしい。