トップページ⇒tech
136コメント32KB

遅いアルゴリズム

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/04/06(木) 04:02:12
高速かも良いが、たまにはおもいっきり遅いアルゴリズムでも考えてみないか。
0002デフォルトの名無しさん2006/04/06(木) 04:04:44
バブルソート
0003デフォルトの名無しさん2006/04/06(木) 04:08:41
1処理毎に1万回ループのクッション
0004デフォルトの名無しさん2006/04/06(木) 04:14:07
100万の方が遅いと思う。>>3
0005デフォルトの名無しさん2006/04/06(木) 04:18:30
与えられたリストに対して全ての順列組み合わせを試してみるソート
0006デフォルトの名無しさん2006/04/06(木) 04:19:29
>>4
100万1回の方が遅いと思う
0007デフォルトの名無しさん2006/04/06(木) 06:24:29
変数を使わずに全てファイルに書き出し
0008デフォルトの名無しさん2006/04/06(木) 08:09:55
>>2
そこはbogosortだろ
0009デフォルトの名無しさん2006/04/06(木) 12:42:29
無限ループ
これ最強。
0010デフォルトの名無しさん2006/04/06(木) 16:06:39
それは遅いんじゃなくて進んでない
0011GiantLeaves ◆6fN.Sojv5w 2006/04/06(木) 16:09:06
プログラム作りの演習でも始めるつもりか?
0012デフォルトの名無しさん2006/04/06(木) 16:09:59
kingは無限ループ
0013デフォルトの名無しさん2006/04/06(木) 18:51:16
kingなんでム版にいるの?
0014デフォルトの名無しさん2006/04/06(木) 18:52:11
数学板の方ですか?
0015デフォルトの名無しさん2006/04/06(木) 19:58:20
16ビット時代のDOSのプログラムをcygwinでコンパイルしたら3倍遅くなった。
ソースを見たら、1バイトずつgetc()で読んでいる所為だった。
#スレ違いになるが、fread()で読み込むように修正したら無茶苦茶速くなった。
0016デフォルトの名無しさん2006/04/07(金) 05:44:04
age
0017デフォルトの名無しさん2006/04/07(金) 08:18:20
Haskellなら無限ループのプロシジャを呼び出しても必要な答えを得るのに最低限必要な量しか実行しないので
無限ロックはかからない遅延評価マンセー
0018デフォルトの名無しさん2006/04/07(金) 08:34:22
>>15
stdio はバッファリングしてるから getc を呼びまくってもそれほど遅くはならないような気がするんだけどな
0019デフォルトの名無しさん2006/04/07(金) 11:33:31
無限ループのプロシジャ(笑)
0020152006/04/07(金) 11:54:16
>>18
いや、漏れもそう思っていたんだが実際遅かったんだよ。
単にファイルのCRCを計算するだけのロジックだったんだが、18秒が3秒ほどになったからね。
これはそのファイルを単にcatするのに1秒ほど掛かるのに較べればそれほど悪くない。
それと較べると、同じファイルをodすると(整形が伴うとは言え)53秒も掛かる方がどうかと思う。
0021GiantLeaves ◆6fN.Sojv5w 2006/04/07(金) 13:23:54
talk:>>12 なんでこんなに早いんだよ?
talk:>>13 私を呼んだか?
0022デフォルトの名無しさん2006/04/07(金) 14:50:15
まあ cygwin はあまり真っ当な環境じゃないから仕方ないかな
0023デフォルトの名無しさん2006/04/07(金) 15:43:57
kngwin
0024GiantLeaves ◆6fN.Sojv5w 2006/04/07(金) 17:21:10
talk:>>23 私を呼んでないか?
0025デフォルトの名無しさん2006/04/07(金) 19:27:20
kingtama
0026GiantLeaves ◆6fN.Sojv5w 2006/04/07(金) 22:19:07
talk:>>25 私を呼んだか?
0027デフォルトの名無しさん2006/04/08(土) 00:54:55
king 前、C/C++ で RPG を作るスレにいたよな。
king もゲームやるの?
0028GiantLeaves ◆6fN.Sojv5w 2006/04/08(土) 09:05:42
talk:>>27 うん。
0029デフォルトの名無しさん2006/04/08(土) 09:34:10
どうでもいいが
どうしてDOSプログラムのコンパイルに
DOSの後継OSで親和性も高いWindowsを使わずに
おかしなOSエミュレータ使うんだ?
0030デフォルトの名無しさん2006/04/08(土) 16:48:00
十件の検索結果表示のためにDBから全件引っこ抜いてくる
0031デフォルトの名無しさん2006/04/08(土) 22:15:07
最悪ケースと分かっているなら、クイックソートでも遅い。
0032デフォルトの名無しさん2006/04/09(日) 09:01:37
>>29
遅いアルゴリズムは一般的には最楽を願う所からスタートするからだよ。

ほんとに一番楽かどうかじゃなくて、自分にとって楽に思えるという意味ね。
実際は一番バカな選択だと判っていても
0033デフォルトの名無しさん2006/04/09(日) 15:21:51
富豪的?
0034デフォルトの名無しさん2006/04/09(日) 17:43:05
>>32
そのためにCPUやメモリやHDDなどが
進化しているといっても差し支えない。

ただ、計算オーダーの変化が激しいものは
いくら時代が経過しても受け入れられないから×
0035デフォルトの名無しさん2006/04/09(日) 18:21:11
NP完全問題(の1つ)をなんとか線型時間で解くアルゴリズムを見つけてください。
0036デフォルトの名無しさん2006/04/09(日) 18:44:28
多項式時間じゃなくて線形かよ
0037デフォルトの名無しさん2006/04/09(日) 21:23:03
インラインASMでPUSHとPOPをしまくる。
0038デフォルトの名無しさん2006/04/09(日) 21:24:36
ようするに安価な低速メモリにアクセスしまくると。
何回ループするの?
0039デフォルトの名無しさん2006/04/09(日) 21:57:55
>>36
よく見ろ線形じゃなく線「型」だ
0040デフォルトの名無しさん2006/04/09(日) 22:04:53
読みはせんけいが正しいらしいけどどうしてもせんがたと読んでしまう。
0041デフォルトの名無しさん2006/04/10(月) 18:36:32
形→けい
型→かた

と分けて読む業界の人?
0042デフォルトの名無しさん2006/04/11(火) 23:26:01
人間に"これどうすればいいの?"っていちいち聞いてきて入力されるまで計算しないアルゴリズム
0043デフォルトの名無しさん2006/04/11(火) 23:33:22
>>42
あるある。業務アプリってやつだね(違
0044デフォルトの名無しさん2006/04/12(水) 14:55:58
>>1

for(;;)

を入れれば遅くなるよ。いつまでたっても終了しない。
0045GiantLeaves ◆6fN.Sojv5w 2006/04/12(水) 16:12:58
課題:
適当なサイズのウィンドウを作り、
キャラクターを一つ置いてアローキー一つ、または反対どうしにならない二つが押されている間
ウィンドウの端に到達しない限り一定の速さでキャラクターがアローの方向に従って動き、
キャラクターがウィンドウからキャラクターがはみ出したり消えたりしそうになったら、
キャラクターが端の方向に関しては止まるプログラムを作成せよ。
0046デフォルトの名無しさん2006/04/12(水) 18:16:20
あらゆるステップで時刻を確認し、矛盾 (逆行) が起きていないか検証



……する時刻も確認すると?
0047デフォルトの名無しさん2006/04/15(土) 00:12:18
昔見た、0〜9999までの数字のシャッフルアルゴリズム。

int i;
int NewValue;
int NumberFlag[9999];

for (i = 0; i <= 9999; i++) {
    NumberFlag[i] = 0;
}

for (i = 0; i <= 9999; i++) {
    do {
        NewValue = rand() % 10000
    } While (NumberFlag[NewValue] == -1);
    printf("%d ", NewValue);
    NumberFlag[NewValue] = -1;
}
0048デフォルトの名無しさん2006/04/15(土) 00:48:31
関数Whileの内容によるな。
0049デフォルトの名無しさん2006/04/15(土) 02:24:11
つーか、doがあるんだからどう見てもwhileのtypoだろうよ。

とあるbasicで書かれていたマージャンソフト。
プレイヤの手番の度に持ち牌を最大値ソートしていた。
ツモった牌だけを挿入ソートの要領で場所決めするようにしたら目に見えて速くなった。

今だとその手の駄目アルゴリズムでも見た目に影響ないからなぁ……
0050デフォルトの名無しさん2006/04/15(土) 10:06:52
for(char i = 0; i < 100; i--);
0051デフォルトの名無しさん2006/04/15(土) 12:41:57
止まらないのは遅いとは言わないな。


0052デフォルトの名無しさん2006/04/15(土) 16:16:01
void sort(int *data, int num)
{
    if (num == 2) {
        if (data[0] > data[1]) {
            int temp = data[0];
            data[0] = data[1];
            data[1] = temp;
        }
    }
    if (num > 2) {
        sort(data + 1, num - 1);
        sort(data, 2);
        sort(data + 1, num - 1);
    }
}
0053デフォルトの名無しさん2006/04/18(火) 12:58:14
>>52
この時期の入社したての連中に書かせたら、普通に見かけそうでヤな関数だね。
0054GiantLeaves ◆6fN.Sojv5w 2006/04/18(火) 15:22:31
talk:>>52-53 再起処理をそんなことに使うのなら、普通にバブルソートした方がましだ。
0055GiantLeaves ◆6fN.Sojv5w 2006/04/18(火) 15:23:45
遅いアルゴリズムというタイトルでも、
自分なりに良いプログラムを書くのが務めではないのか?
0056デフォルトの名無しさん2006/04/18(火) 15:27:40
その通り。
「遅い」という極めて漠然とした要求仕様を十分に満たすべく、
思いつく限りの手を尽くして極限まで遅くしなければならない。
0057デフォルトの名無しさん2006/04/18(火) 16:48:45
たとえばソートで言えばバブルソートよりおそいアルゴリズムを考えればいいわけだな
0058GiantLeaves ◆6fN.Sojv5w 2006/04/18(火) 17:49:27
talk:>>56 既存のトランザクションに対して自分で新しいアルゴリズムを考えるスレッドだという解釈もある。
0059デフォルトの名無しさん2006/04/18(火) 19:37:43
意味の無いループや無駄なジャンプを繰り返すのは無しの方向じゃなきゃ面白くないな
0060デフォルトの名無しさん2006/04/18(火) 19:54:38
>>57
簡単だよ。元の列を順列並べ変えしながら、整列できたかどうか
調べるgenerate and test。これはのろいぞ。

もっとのろいのは、元の列をシャッフルしながら同様に調べる。
ただし確率的アルゴリズムになってしまうが。
0061デフォルトの名無しさん2006/04/18(火) 21:13:05
ソートだとそれくらいしか思いつかんな
0062デフォルトの名無しさん2006/04/18(火) 21:41:32
要素N個を素直に順列並び替えするんじゃなくて、
N進N桁の多倍長整数を0から順に調べて
重複せずなおかつソートされているモノを返すようにすればいいんじゃないか?
0063デフォルトの名無しさん2006/04/18(火) 22:18:38
>>60
後者にあたるのが >>8 のbogosortだな
0064デフォルトの名無しさん2006/04/18(火) 22:49:29
そーっとやれば遅くなるんじゃね?
0065デフォルトの名無しさん2006/04/19(水) 02:35:02
ゆとり教育はとても遅いアルゴリズムです。
0066デフォルトの名無しさん2006/04/19(水) 09:05:44
>>64
そーとー遅いな
0067デフォルトの名無しさん2006/04/19(水) 09:28:53
そうともいえないよ
0068デフォルトの名無しさん2006/04/19(水) 18:47:13
バブルソート相当
0069 2006/04/19(水) 18:49:50
#include <stdio.h>
#define n 13

int main(void) {
int c;

while( (c = getchar()) != '\n' ) {
if((c>64 && c<78) || (c>96 && c<110))
c = c + n;
else if((c>77 && c<91) || (c>109 && c<123))
c = c - n;
putchar(c);
}
printf("\n");
}
0070 2006/04/19(水) 18:50:50
#include <stdio.h>

int hour, minute, second;

struct time {
int hour;
int minute;
int second;
};

void elapse(struct time t, int s) {
hour = s / 3600;
minute = (s % 3600) / 60;
second = s % 60;

printf("%d:%d:%d\n", t.hour + hour, t.minute + minute, t.second + second);
}

int main(void) {
struct time t;
int s;
char buf[80];

fgets(buf, 80, stdin);
sscanf(buf, "%d:%d:%d %d", &t.hour, &t.minute, &t.second, &s);

elapse(t, s);
}
0071 2006/04/19(水) 18:51:49
#include <stdio.h>

int main(void) {
int a[5][5], i, j, answer = 0;
char buf[80];

for(i=0; i<5; ++i) {
fgets(buf, 80, stdin);
sscanf(buf, "%d %d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3], &a[i][4]);
}

if( a[0][0] > (double)( a[0][1] + a[1][0] + a[1][1] ) / 3 ) answer++;
else if( a[0][0] < (double)( a[0][1] + a[1][0] + a[1][1] ) / 3 ) answer--;

if( a[0][4] > (double)( a[0][3] + a[1][3] + a[1][4] ) / 3 ) answer++;
else if( a[0][4] < (double)( a[0][3] + a[1][3] + a[1][4] ) / 3 ) answer--;

if( a[4][0] > (double)( a[3][0] + a[3][1] + a[4][1] ) / 3 ) answer++;
else if( a[4][0] < (double)( a[3][0] + a[3][1] + a[4][1] ) / 3 ) answer--;

if( a[4][4] > (double)( a[3][3] + a[3][4] + a[4][3] ) / 3 ) answer++;
else if( a[4][4] < (double)( a[3][3] + a[3][4] + a[4][3] ) / 3 ) answer--;
0072 2006/04/19(水) 18:53:32
for(i=0, j=1; j<4; j++)
if( a[i][j] > (double)( a[i][j-1] + a[i][j+1] + a[i+1][j-1] + a[i+1][j] + a[i+1][j+1] ) / 5 ) answer++;
else if( a[i][j] < (double)( a[i][j-1] + a[i][j+1] + a[i+1][j-1] + a[i+1][j] + a[i+1][j+1] ) / 5 ) answer--;

for(i=4, j=1; j<4; j++)
if( a[i][j] > (double)( a[i][j-1] + a[i][j+1] + a[i-1][j-1] + a[i-1][j] + a[i-1][j+1] ) / 5 ) answer++;
else if( a[i][j] < (double)( a[i][j-1] + a[i][j+1] + a[i-1][j-1] + a[i-1][j] + a[i-1][j+1] ) / 5 ) answer--;

for(i=1, j=0; i<4; i++)
if( a[i][j] > (double)( a[i-1][j] + a[i-1][j+1] + a[i][j+1] + a[i+1][j] + a[i+1][j+1] ) / 5 ) answer++;
else if( a[i][j] < (double)( a[i-1][j] + a[i-1][j+1] + a[i][j+1] + a[i+1][j] + a[i+1][j+1] ) / 5 ) answer--;

for(i=1, j=4; i<4; i++)
if( a[i][j] > (double)( a[i-1][j-1] + a[i-1][j] + a[i-1][j] + a[i+1][j-1] + a[i+1][j] ) / 5 ) answer++;
else if( a[i][j] < (double)( a[i-1][j-1] + a[i-1][j] + a[i-1][j] + a[i+1][j-1] + a[i+1][j] ) / 5 ) answer--;

for(i=1; i<4; i++)
for(j=1; j<4; j++)
if( a[i][j] > (double)( a[i-1][j-1] + a[i-1][j] + a[i-1][j+1] + a[i][j-1] + a[i][j+1] + a[i+1][j-1] + a[i+1][j] + a[i+1][j+1] ) / 8 ) answer++;
else if( a[i][j] < (double)( a[i-1][j-1] + a[i-1][j] + a[i-1][j+1] + a[i][j-1] + a[i][j+1] + a[i+1][j-1] + a[i+1][j] + a[i+1][j+1] ) / 8 ) answer--;
printf("%d\n", answer);
}
0073デフォルトの名無しさん2006/04/19(水) 18:59:40
お前は何がしたいんだ
0074デフォルトの名無しさん2006/04/20(木) 16:54:18
遅いアルゴリズムかどうかを判定するアルゴリズム
これは早そうだ
0075GiantLeaves ◆6fN.Sojv5w 2006/04/20(木) 18:05:30
#include<stdio.h>
int myadd(int i,int j);
/* Calculating 16+16 */
int main(){
printf("%d\n",myadd(16,16));return 0;
}
int myadd(int i,int j){
int k;
if(i==0){
if(j==0){k=0;}
else{k=myadd(0,k-1);}
}
else{k=myadd(i-1,k);}
return k;
}
/* 大して遅くない。 */
0076デフォルトの名無しさん2006/04/21(金) 01:50:29
うはwwww if(i==0) なんて書くなよwwwwwww
0077デフォルトの名無しさん2006/04/21(金) 01:56:13
>>75
どうでもいいけどコンパイルくらいしてみたら?
kが未代入参照していそうだ。
0078GiantLeaves ◆6fN.Sojv5w 2006/04/21(金) 13:28:02
talk:>>76 比較を行う分だけ遅くなっている。
talk:>>77 myadd(0,j-1), myadd(i-1,j) でいいのか?
0079デフォルトの名無しさん2006/04/21(金) 13:59:40
>>78
いや、根本的におかしい。
0080デフォルトの名無しさん2006/04/21(金) 14:03:16
int myadd(int i,int j){
 int k;
 if(i==0){
  if(j==0){k=0;}
  else{k=myadd(0,k-1);}
 }
 else{k=myadd(i-1,k);}
 return k;
}

これってi,jどちらも0でなかった場合、kの値はどうなるのさ
0081デフォルトの名無しさん2006/04/21(金) 14:14:31
これで巧く動くんだけど、最適化しないと6桁足す6桁でも計算できない。
処が最適化すると9桁足す9桁でも計算できる。でも所要時間は0.5秒ほど。
static inline int myadd(int i, int j, int k)
{
if (i == 0) {
if (j == 0) {
return k;
}
return myadd(0, j - 1, k + 1);
}
return myadd(i - 1, j, k + 1);
}
#この情報だけで、最適化の有無で計算できる桁数が変わる理由が判る香具師はどれだけいるだろうかw
0082812006/04/21(金) 14:16:00
テスト用メインもつけとこ。
int main(int argc, char ** argv)
{
switch (argc) {
case 2:
printf("%d\n", myadd(atoi(argv[1]), 0, 0));
break;
case 3:
printf("%d\n", myadd(atoi(argv[1]), atoi(argv[2]), 0));
break;
default:
break;
}
return 0;
}
0083デフォルトの名無しさん2006/04/21(金) 14:28:50
>>75は醜態を晒しただけだったか
0084GiantLeaves ◆6fN.Sojv5w 2006/04/21(金) 14:58:21
talk:>>83 何やってんだよ?
0085デフォルトの名無しさん2006/04/21(金) 15:53:11
どうせなら 加算をさせないで論理演算とシフトだけで四則演算を書くとか
0086デフォルトの名無しさん2006/04/21(金) 16:03:24
>>85
多分その方が>81のループよりもよっぽど速いと思うよ。
0087デフォルトの名無しさん2006/04/21(金) 16:13:30
>>81
末尾再帰をループへ置換するかしないかだろ
i,j,kのポインタを表示させるとずっと変わらないのが分かるから
0088デフォルトの名無しさん2006/04/21(金) 17:03:24
これでいいのかな

int myadd( int a, int b)
{
int c= (a & b)<<1;
a ^= b;
if(c) return myadd(a,c);
return a;
}
0089GiantLeaves ◆6fN.Sojv5w 2006/04/21(金) 17:41:54
talk:>>88 毎回思うのだが、どんな修行を積めばこういうプログラムを書けるようになるの?
0090≠882006/04/21(金) 17:48:22
謙虚と自己研鑽。
少なくともちゃんと動く自信がないソースをノーチェックで貼らないことかな。
0091デフォルトの名無しさん2006/04/21(金) 17:48:48
まずは高校卒業だな
0092デフォルトの名無しさん2006/04/21(金) 19:53:33
遅いといえば鳥キャリアによる通信ってどれぐらいスループット出るの?
0093デフォルトの名無しさん2006/04/21(金) 20:59:28
Script started on Sat Apr 28 11:24:09 2001
vegard@gyversalen:~$ /sbin/ifconfig tun0
tun0 Link encap:Point-to-Point Protocol
inet addr:10.0.3.2 P-t-P:10.0.3.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:150 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
RX bytes:88 (88.0 b) TX bytes:168 (168.0 b)
vegard@gyversalen:~$ ping -i 900 10.0.3.1
PING 10.0.3.1 (10.0.3.1): 56 data bytes
64 bytes from 10.0.3.1: icmp_seq=0 ttl=255 time=6165731.1 ms
64 bytes from 10.0.3.1: icmp_seq=4 ttl=255 time=3211900.8 ms
64 bytes from 10.0.3.1: icmp_seq=2 ttl=255 time=5124922.8 ms
64 bytes from 10.0.3.1: icmp_seq=1 ttl=255 time=6388671.9 ms
10.0.3.1 ping statistics ---
9 packets transmitted, 4 packets received, 55% packet loss
round-trip min/avg/max = 3211900.8/5222806.6/6388671.9 ms
vegard@gyversalen:~$ exit
Script done on Sat Apr 28 14:14:28 2001
0094デフォルトの名無しさん2006/04/21(金) 21:56:34
>>93
鳥を増やせばスループットは素直にあがってゆくだろうけど、
RTTがかなり大きいから TCP じゃない何かを使ったほうが良さげですね。
0095デフォルトの名無しさん2006/04/21(金) 22:40:07
鳥の足にくっつけるものを紙テープじゃなくてフラッシュメモリにでもすればよい。
0096デフォルトの名無しさん2006/04/21(金) 22:45:06
>>95
天才ハケーン!!!
0097デフォルトの名無しさん2006/04/21(金) 23:43:28
>95
それだとバンド幅の向上が見込めないな。
0098デフォルトの名無しさん2006/04/22(土) 00:31:49
いっそのことダチョウでやれば一気に大量に運べるんじゃない?
0099デフォルトの名無しさん2006/04/22(土) 00:33:04
でもダチョウって遅くね?
0100デフォルトの名無しさん2006/04/22(土) 01:16:25
>>93
すまん、俺が5羽食った。
0101デフォルトの名無しさん2006/04/22(土) 01:42:38
1日がかりで10Tぐらいのテープを運べば16MByte/secくらい
0102デフォルトの名無しさん2006/04/22(土) 03:20:39
そんなハト見たくねえwwww
0103デフォルトの名無しさん2006/04/22(土) 17:12:01
このRFCを実装したシステムって存在するのかな。
0104デフォルトの名無しさん2006/04/23(日) 11:12:42
>>103
>>93
0105デフォルトの名無しさん2006/05/01(月) 22:01:05
たらいまわし関数

特に用途はないが。
0106デフォルトの名無しさん2006/05/01(月) 22:21:14
>>101
文句なしに光並のブロードバンドだが、恐ろしく遅延があるなww
0107デフォルトの名無しさん2006/05/07(日) 20:39:43
犬並って読んじゃったよw
0108デフォルトの名無しさん2006/05/09(火) 18:35:19
全数検索より遅くするのって無理じゃね?
0109デフォルトの名無しさん2006/05/09(火) 22:39:11
二度読みとか
0110デフォルトの名無しさん2006/05/10(水) 23:03:08
DOMで実装したSAX
0111デフォルトの名無しさん2006/05/10(水) 23:11:15
>>108
擬似コードだけどこういうのはどうだろう?

hogemap hoge = foo();
foreach key in hoge.keys {
 if ( hoge[key] == bar ) {
  // 見つかった
 }
}
0112デフォルトの名無しさん2006/05/13(土) 07:14:25
乱数でソートするのはどう?
ランダムで並び替えて、うまく並んだかチェックする。
確立の問題になるが。
0113デフォルトの名無しさん2006/05/13(土) 08:23:12
>>60
0114デフォルトの名無しさん2006/05/13(土) 13:58:30
>>112
int型だけだったら配列を適当に作成して一致するかどうかを
チェックするソートも有りかな。
0115デフォルトの名無しさん2006/05/13(土) 16:44:46
int型に限らずバイナリのbitを適当に埋めていって
一致するかどうかをチェックするソートも有りかな。
0116デフォルトの名無しさん2006/06/03(土) 03:02:52
デブるソート。再帰しまくり。

void dsort_(int a[], int* n, int m) {
 if(m < *n) {
  int hold = a[m];
  do {
   if(hold > a[m+1]) {
    a[m] = a[m+1];
   } else {
    dsort_(a, n, m + 1);
    m--;
   }
   m++;
  } while(m < *n);
  a[m] = hold;
 }
 (*n)--;
}

void dsort(int a[], int n) {
 int m = n - 1;
 while(m > 0) {
  dsort_(a, &m, 0);
 }
}
0117デフラグさん ◆mRgSYalFkQ 2006/06/03(土) 09:09:51

  [゚д゚] トイウワケデ(ry
 /[_]ヽ
  | |
&((((((((()))))))))****+++++,,,,,,,-----001111;;;;;;;;;;<<====>>[[[[[[[]]]]]]]___aaaaaaaaaddddddddddeeeeffhhhhhiiiiiiiiiiiiilllll
lmmmmmmmmmmmmmmnnnnnnnnnnnnnnoooooooooorrrrssssstttttttttttvvww{{{{{{{}}}}}}}。。ーくしまりるソデトブ帰
再
0118デフォルトの名無しさん2006/06/13(火) 15:36:13
>>109
クソワラタ
0119デフォルトの名無しさん2006/06/14(水) 01:54:33
アポロで3台のコンピューターを同時に動かして一致した結果のみ使う多数決演算があったけど
それを超える「議員内閣制素子」
0120デフォルトの名無しさん2006/06/14(水) 01:56:33
人力検索「はやぶさ」
今100年待ちだっけ
0121デフォルトの名無しさん2006/06/14(水) 22:58:41
人使うのアリなら・・・カタツムリ検索とか。
0122デフォルトの名無しさん2006/06/14(水) 23:10:27
ここはモダンに遺伝的アルゴリズムを使おう。
アミノ酸を試験官にぶち込んで、
問題を解く遺伝子が出来上がるまで待つ。
何億年かかるかは知らんがw
0123デフォルトの名無しさん2006/06/15(木) 01:12:28
>>122
ワロスw
0124デフォルトの名無しさん2006/06/15(木) 01:13:35
http://alumni.media.mit.edu/~paulo/courses/howmake/mlfabfinalproject.htm
↑水コンピュータがなんか遅そうだから、
これをシミュレートしてやればいいんじゃね?
0125デフォルトの名無しさん2006/06/15(木) 03:47:43
たしかに力学的な手法でXORが実現可能だがwwww
0126デフォルトの名無しさん2006/06/15(木) 12:23:56
伝書鳩をつかったパケット送信
0127デフォルトの名無しさん2006/06/15(木) 12:25:47
>>126
吹いたw
0128デフォルトの名無しさん2006/06/15(木) 13:14:18
>>92-107で思いっきりガイシュツ
0129デフォルトの名無しさん2006/06/15(木) 16:39:42
そもそもRFCに決まってるぞ>鳥キャリアによる伝送
0130デフォルトの名無しさん2006/06/15(木) 21:05:24
既出
0131デフォルトの名無しさん2006/06/15(木) 22:58:03
流体力学を駆使してビット演算か
クールだな
0132デフォルトの名無しさん2006/06/15(木) 23:53:46
ハードウェアの冷却も同時に行えるなんて素晴らしいな。
0133デフォルトの名無しさん2006/06/16(金) 15:16:12
GJ
アルゴリズムが遅い訳ではないが
こんな書き込みなら大歓迎
0134デフォルトの名無しさん2006/06/18(日) 00:40:35
遅いアーキテクチャ だな。
0135デフォルトの名無しさん2006/06/18(日) 01:27:20
足し算を>>124で作った全加算器を流体シミュレーター上でシミュレーション。
0136デフォルトの名無しさん2006/06/18(日) 14:10:21
階差機関がギア式じゃなくてこういう水式だったら
今日の世界も変わっていたんだろうか……
■ このスレッドは過去ログ倉庫に格納されています