トップページ⇒tech
1001コメント294KB

七行プログラミング part5

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/03/16(木) 09:02:39
7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>2-20あたりに。

前スレ
http://pc8.2ch.net/test/read.cgi/tech/1051703369/
part 3
http://pc2.2ch.net/tech/kako/1033/10331/1033143528.html
part 2
http://pc3.2ch.net/tech/kako/1018/10188/1018840143.html
part 1
http://pc.2ch.net/tech/kako/984/984182993.html
0159デフォルトの名無しさん2006/12/02(土) 22:01:46
よーし じゃあ父さんもなでしこで七行プログラミングしちゃうぞー
0160デフォルトの名無しさん2006/12/02(土) 22:52:59
>>158
きたいあげ
01611382006/12/04(月) 12:06:28
今14行 あと7行……
0162デフォルトの名無しさん2006/12/04(月) 13:22:05
COMとの対戦オセロなら、パート1でトリッキーの1さんが6行で作ってますね
0163デフォルトの名無しさん2006/12/04(月) 14:07:25
>>162
だから?
0164デフォルトの名無しさん2006/12/04(月) 14:13:19
>>163
せっかくオブラートに包んであげたのに…
既に素晴らしい作品があるから、二番煎じな上に14行なんて面白くもなんともない経過報告いらないですよ
0165デフォルトの名無しさん2006/12/04(月) 14:49:11
>>164
(^ω^;)
最近7行のプログラム出てこないから書いてるだけなんだけど
面白くないと思うなら面白いものを提示してくれ
0166デフォルトの名無しさん2006/12/04(月) 17:44:52
>>165
相殺法と呼ばれる詭弁術の典型例
やっていることがつまらないという評価に対してなんら反論できてない
0167デフォルトの名無しさん2006/12/04(月) 18:02:36
ああ 他人が見ても面白くないのはわかるよ。

#include <stdio.h>
typedef int n;n t[64]={0};n a(n i,n&g){n s=g%8;g+=("1987"[i%4]-48)*(i>3?-1:1);
return !((!s||s==7)&&s+g%8==7);}n h(n x,n m){n i=0,r=1,g;if(t[x])return 1;for(
;i<8&&a(i,g);i++,g=x){for(;t[g]==3-m&&a(i,g)&&g>=0&&g<64;){if(t[g]==m){while(g
!=x)t[a((i+4)%8,g)]=m;r=0;}}}if(!r)printf("%s:%d %d\n",m==1?"黒":"白",x%8+1,x/
8+1);return r;}n d(){n s=0,d,i=0;for(;i<64;i++){printf("□\0○\0●"+(d=t[i])*3
);if(i%8==7)puts("");s=s?d&&s!=d?3:s:d;}return s!=3;}void main(){n x=1,y,p,m=0
,c=0,k=0,r=-1;t[35]=t[28]=1;t[27]=t[36]=2;while(!d()||x&&k!=r){puts("x y");
scanf("%d %d",&x,&y);m=m?m:x?1:2;if(x||--x>7||--y>7||h(x+y*8,m))continue;if(d(
))break;k=r=(c++/2+x*8+y)%64;while(++k!=r&&h(k,3-m))if(k>64)k=0;}x=y=c=0;for(;
c<64;c++)if(p=t[c])p==1?x++:y++;printf("黒:%d 白:%d %s",x,y,x>y?"黒の勝ち":x<y
?"白の勝ち":"引き分け");}

12行までいけたけどもうやめるわ。すまんかったな
0168デフォルトの名無しさん2006/12/04(月) 18:13:07
>>167
関数使いすぎ。
グローバル変数は仕様上自動的にゼロに初期化される。
セミコロン多すぎ、結果if文増えすぎ。
for文やwhile文多すぎ。これらは工夫で1つか2つまで減らせるはず。
breakやcontinue使うとかありえない。最初から構造をもっと考えて設計するといいと思う
番兵使おう。

別のお題で再挑戦頑張れ
0169デフォルトの名無しさん2006/12/04(月) 18:13:49
自分からネタも出せない批評家気取りのクズは死ねばいいのに
0170デフォルトの名無しさん2006/12/04(月) 18:16:14
より完成度の高い対戦オセロがでてくる『可能性』の芽をつぶしたバカ晒し上げ

>162 >164 >166
0171デフォルトの名無しさん2006/12/04(月) 18:22:01
>>168
じゃーお題出してくれ
0172デフォルトの名無しさん2006/12/04(月) 18:24:04
実際過疎気味だしオセロとか低レベルなのでもいいと思うけどね
新しい7erが現れるかもしれんし

>>138=>>163=>>165=>>167
なら少しくらい煽り耐性つけろよと言いたいがな
0173デフォルトの名無しさん2006/12/04(月) 18:40:07
よくわからないけれど ここは荒んでいますね よくわかります
0174デフォルトの名無しさん2006/12/04(月) 18:45:31
うお バグりまくり
0175デフォルトの名無しさん2006/12/04(月) 18:58:10
#include <stdio.h>
typedef int n;n t[64]={0};n a(n i,n&g){n s=g%8;g+=("1987"[i%4]-48)*(i>3?-1:1);
return !((!s||s==7)&&s+g%8==7);}n h(n x,n m){n i=0,r=1,g=x;if(t[x])return 1;
for(;i<8&&a(i,g);i++,g=x){for(;t[g]==3-m&&a(i,g)&&g>=0&&g<64;){if(t[g]==m){
while(g!=x)a((i+4)%8,g),t[g]=m;r=0;}}}if(!r)printf("%s:%d %d\n",m==1?"黒":"白"
,x%8+1,x/8+1);return r;}n d(){n s=0,d,i=0;for(;i<64;i++){printf("□\0○\0●"+(
d=t[i])*3);if(i%8==7)puts("");s=s?d&&s!=d?3:s:d;}return s!=3;}void main(){n x=
1,y,p,m=0,c=0,k=0,r=-1;t[35]=t[28]=1;t[27]=t[36]=2;while(!d()||x&&k!=r){puts(
"x y");scanf("%d %d",&x,&y);m=m?m:x?1:2;if(x&&(--x>7||--y>7||h(x+y*8,m)))
continue;if(d())break;k=r=(c++/2+x*8+y)%64;while(++k!=r&&h(k,3-m))if(k>64)k=0;
}x=y=c=0;for(;c<64;c++)if(p=t[c])p==1?x++:y++;printf("黒:%d 白:%d %s",x,y,x>y?
"黒の勝ち":x<y?"白の勝ち":"引き分け");}
0176デフォルトの名無しさん2006/12/04(月) 19:12:59
低レベルなのを上げられるくらいならいなくなったほうが・・・
0177デフォルトの名無しさん2006/12/04(月) 20:06:25
低レベルなのも上げられないやつがいなくなったほうが
0178デフォルトの名無しさん2006/12/04(月) 20:18:21
低レベルから高レベルに育っていく過程を見てみたいので期待age
0179デフォルトの名無しさん2006/12/04(月) 21:04:04
七行(C)の心得

・ローカル変数は敵だ
・セミコロンも敵だ
・っていうか括弧も敵だ
・参考演算子は神

もっとある?
0180デフォルトの名無しさん2006/12/04(月) 21:04:45
まちがえた。
○三項演算子
×参考演算子
0181デフォルトの名無しさん2006/12/04(月) 21:05:20
なでしこは敵だ
0182デフォルトの名無しさん2006/12/04(月) 21:19:59
再帰は敗北
番兵は勝利
7行プログラムは作る前から7行(構想と構造が大事)
0183デフォルトの名無しさん2006/12/04(月) 22:58:03
> 7行プログラムは作る前から7行
なんか良く分かんないけど感銘を受けた
0184デフォルトの名無しさん2006/12/04(月) 23:04:01
>>183
俺もだ
なんかこう…  深いよな
0185デフォルトの名無しさん2006/12/04(月) 23:08:11
!「nakonet.nako」を取り込む。サーバーとはTCPサーバー。そのポートは80。サーバーを開始。
サーバーの受信した時は〜
  サーバーの受信データを「 」で区切る。ファイル名はそれ[1]の「/」を「」に置換したもの。
  もし、ファイル名が空ならば、ファイル名は「index.html」。
  もし、ファイル名が存在するならば、ファイル名を開く。違えば、それは「なし」。
  内容は「HTTP/1.0 200 OK{改行}Content-Type: text/html{改行}{改行}{それ}」。(サーバーの相手IP)へ(内容)をサーバーで送信。
サーバーの送信完了した時は〜サーバーの相手IPをサーバーが切断。


(^o^)ノ<HTTPサーバーできたぞー
0186デフォルトの名無しさん2006/12/04(月) 23:14:16
>>185
7行なのはいいとして桁数オーバーしてないか?
0187デフォルトの名無しさん2006/12/04(月) 23:17:53
>>186
(^o^)ノ<こっちだったぞー

!「nakonet.nako」を取り込む。
サーバーとはTCPサーバー。そのポートは80。サーバーを開始。
サーバーの受信した時は〜サーバーの受信データを「 」で区切る。ファイル名はそれ[1]の「/」を「」に置換したもの。
  もし、ファイル名が空ならば、ファイル名は「index.html」。
  もし、ファイル名が存在するならば、ファイル名を開く。違えば、それは「なし」。
  内容は「HTTP/1.0 200 OK{改行}Content-Type: text/html{改行}{改行}{それ}」。(サーバーの相手IP)へ(内容)をサーバーで送信。
サーバーの送信完了した時は〜サーバーの相手IPをサーバーが切断。
0188デフォルトの名無しさん2006/12/04(月) 23:24:39
しかも、HTTPサーバって過去スレにあったよな
0189デフォルトの名無しさん2006/12/04(月) 23:28:45
>>187
これがなでしこってやつなの?

>>188
だから(ry
0190デフォルトの名無しさん2006/12/04(月) 23:37:33
既に誰かが解いたことのあるパズルってだけでやる気無くすのか?
そんなこたぁ無いだろー。

しかし、なでしこは初見だが、結構日本語風なんだな。びっくりした。
0191デフォルトの名無しさん2006/12/04(月) 23:41:13
「メールホストを入力してください」と尋ねて、メールホストに代入。「メール差出人を入力してください」と尋ねて、メール差出人に代入。
「メール宛先を入力してください」と尋ねて、メール宛先に代入。「メール件名を入力してください」と尋ねて、メール件名に代入。
「メール本文を入力してください」で、メモ記入して、メール本文に代入。「いままでの内容が気に入らなければ、{改行}取消ボタンを押してください」を、「続行{改行}取消」のボタン選択。
もし、それが「続行」ならば、「メールホスト:{A}{改行}メール差出人:{B}{改行}メール宛先:{C}
メール件名:{D}{改行}メール本文:{E}{改行}{改行}送信します。」と言う。違えば、終了。
メール送信。「送信が終わりました」と言う。終了。


(^o^)ノ<最低限機能メール送信ソフトだぞー
0192デフォルトの名無しさん2006/12/04(月) 23:42:04
^^;
0193デフォルトの名無しさん2006/12/04(月) 23:51:40
利用リストとはリスト。その幅は400。退避ボタンとはボタン。退避リストとはリスト。その幅は400。利用ボタンとはボタン。更新処理。
●更新処理({=""}Fを{=""}Aから{=""}Bへ)
  もし、F≠空ならば、「{A}{F}」から「{B}{F}」へファイル移動。
  利用リストのアイテムは「{SENDTOパス}*」をファイル列挙。退避リストのアイテムは「{SENDTOパス}退避\*」をファイル列挙。
退避ボタンをクリックした時は〜
  「{SENDTOパス}退避\」へフォルダ作成。利用リストをSENDTOパスから「{SENDTOパス}退避\」へ更新処理。
利用ボタンをクリックした時は〜退避リストを「{SENDTOパス}退避\」からSENDTOパスへ更新処理。


(^o^)ノ<Windows送るメニューカスタマイズソフトだぞー
0194デフォルトの名無しさん2006/12/04(月) 23:55:47
とても読みやすいんだけど、書きにくくないか?
0195デフォルトの名無しさん2006/12/04(月) 23:59:24
なでしこは案外作り易そうだな

標準で使えるライブラリのサポートが多いせいもありそうだけど
1文字(2Byte)辺りの表現力が高いお陰なのかな
0196デフォルトの名無しさん2006/12/04(月) 23:59:39
俺はCとか英語で書くの本格的にやったこと無いから、そっちの方が異次元だ
なでしこなら

「Hello,World!」を表示。

の一行だぜ
0197デフォルトの名無しさん2006/12/05(火) 00:00:19
なでしこなんか貼るな、空気嫁
0198デフォルトの名無しさん2006/12/05(火) 00:01:33
なでしこの中の人すげーな

>>197
おまえが空気読め
0199デフォルトの名無しさん2006/12/05(火) 00:03:38
というか、連投されると有り難みが薄れるぜ
でもせっかくだから、作り易いなら正規表現辺りにチャレンジして欲しい
0200デフォルトの名無しさん2006/12/05(火) 00:04:43
どうかんがえてもなでしこの方が空気読めてません。
0201デフォルトの名無しさん2006/12/05(火) 00:06:06
なでしこの欠点は速度とか云々よりも”日本語”だから駄目だと言われた。
日本語らしさを追求するばかり、機械的な書き方が出来なくなる、と

しかし二重インタプリタという感じで、メモリも速度も重いんだぜ
0202デフォルトの名無しさん2006/12/05(火) 00:11:12
C/C++得意な人に聞きたいんだけど
&&の代わりに&を使うテクニックがあったよね
どういうときに使えるか覚えている人いる?
ぐぐり辛い…
0203デフォルトの名無しさん2006/12/05(火) 00:12:28
>>201
なでしこってインタプリタなの?( ゚д゚)
0204デフォルトの名無しさん2006/12/05(火) 00:15:28
はいそうです
0205デフォルトの名無しさん2006/12/05(火) 00:17:12
>>202
&&は前の式がtrueなら後ろの式が評価されないけど&は評価される
ただ&は演算結果がboolean値ではないので思わぬ結果を巻き起こしやすいので
&&から&に変える場合には最新の注意が必要
0206デフォルトの名無しさん2006/12/05(火) 00:18:12
>>202 ビット積演算子
0207デフォルトの名無しさん2006/12/05(火) 00:19:23
>>202
なんか作成中なのか?
0208デフォルトの名無しさん2006/12/05(火) 00:29:40
>>205-206
さんくす
結構限定的っぽいですねえ

>>207
いや…自分はまだそんなレベルじゃないです
過去の作品とか見ながら文字数の減らし方とか考えていてふと思ったので…
でも何か出来たら持ってきます
0209デフォルトの名無しさん2006/12/05(火) 00:45:21
||の代わりに|なら比較的ありがちなテクニック。
あと&&の代わりに*もありがち。ただこっちはオーバフローの危険あり
0210デフォルトの名無しさん2006/12/05(火) 02:06:55
なでしこかよww ぱっと見て「なに構想語ってんの?」とか思ってしまった
0211デフォルトの名無しさん2006/12/05(火) 06:36:36
まあまあ
7行なら良いじゃない

なでしこはその前身のひまわりより
書きにくいとも聞くがどうなんだろ
0212デフォルトの名無しさん2006/12/05(火) 07:08:06
特に変わらないと思う
なでしこの処理速度はひまわりの十倍です
0213デフォルトの名無しさん2006/12/05(火) 07:37:08
なでしこ面白いね
ただ七行にするためのテクニックを駆使するものではなさそうだけど
0214デフォルトの名無しさん2006/12/05(火) 09:38:44
なでしこいいけど、1行80文字くらいは守ってもらおう
0215デフォルトの名無しさん2006/12/05(火) 10:12:36
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
0216デフォルトの名無しさん2006/12/05(火) 10:34:18
>>215
一見ただの荒らしに見えるが、「なでしこ」という文字の中にひとつだけ
違うものが混じっている。探してみよう!















m9(^Д^)
0217デフォルトの名無しさん2006/12/05(火) 12:01:37
随分ノリノリだな
0218デフォルトの名無しさん2006/12/05(火) 17:45:46
TTSneoのことも思い出してあげて下さい
0219デフォルトの名無しさん2006/12/05(火) 21:33:18
なにそれ?
0220デフォルトの名無しさん2006/12/05(火) 21:41:03
なでしこのようなものです
0221デフォルトの名出しこさん2006/12/05(火) 23:46:00
なでしこでインデント禁止だと辛いです。この間、テトリス作って15行でした。
>>191の真似してメール送信フォームです。

S="メールホストvメール差出人vメール宛先vメール件名vメール本文";C=~もし回数=5ならメール送信;終
S=(Sをvで区切)を全角変換;文字サイズ=16;反復,対象を9,回数*36-24へ文字表示;
ダイアログ数値変換=0;155,10へ移動;4回,E\回数をエディタとして作成;E[回数]→W=400
E\5をメモとして作成;E\5→W=400;E\5→H=230;母艦のタイトル="メール送信";送信とはボタン
その位置="560,365";そのクリック時=~Sで反復,EVAL(対象&「=E[{回数}]→テキスト」),C
0222デフォルトの名無しさん2006/12/06(水) 03:47:10
>221
暗号臭くなって来て良い感じw
0223デフォルトの名無しさん2006/12/06(水) 09:46:20
>>221
イイヨイイヨー
0224デフォルトの名無しさん2006/12/06(水) 15:44:47
1行目の「終」はなでしこならではだね
ホントは「終わり」だったと思うけど
なでしこは漢字+送り仮名の命令に対して
助詞以外の送り仮名は飛ばす
Mindとかでもそうなってるハズ
0225デフォルトの名無しさん2006/12/13(水) 08:49:50
>>221
ちょっとなでしこに興味湧いた
0226デフォルトの名無しさん2006/12/19(火) 00:19:30
com2textを半角カナバージョンで、
ファイル指定は8.3形式で、
ゴミがつくのは仕様で、
実行は自己責任で。

H72タPQSVWP[Pクツツ0G=0GAs2A0GN1GP0GY0G[0Gg0Gl0Gv1Gy3ノア0T_)マ)マWセSテ、Iu>%
@3ロKCuフXセ}テ_="@3タャ,&|9uナ_^[Y3タテHP[アトャ<。xタ,0,0ムロムミェ<ノu,)ラ#
Oコ1ス60ニX@ス50ニ@Xスp01?Q1テ30シp0Jソp0ク@ル5キWuヒシ06Nニ@uフi[mコ4スウ06ニ@セ50コ*Oシ30スD51ニ@rタj
(UソD1[[2_Iノシ300Iタカネフネ+ヘNSl12WH2HオTj(ラネヘネヘpYチCコ1ニ@I_シ30カu_ネコ1ニ@T4jロVjシコ[1ス60ニ@
_ス50ニ@セ450ユウスC?0コ1ニ@コ-Oニ@コ1ス460ニ@ス550ニ@ニ@TXKIタXXY1[[X]Xシ?チチHSNH>SPiIPH4SWHSXH
BS\HS]H2ScHSfHdSkHSlIZトクHZ_DVヌDヌ[ソYTチイTjOB`65PIヘUJQjニ\ソnNチ_NAPIGタカFCnL^jツ__]\
LIタチTX]8クツカNーlGタFHFHネJヘネネオNトdjFDヒA6'5B0000'000000&
0227デフォルトの名無しさん2006/12/19(火) 01:57:17
バイナリは誰かがためしてからじゃないと怖くて実行出来ないです><
0228デフォルトの名無しさん2006/12/19(火) 02:20:51
誰かが試しても実行できないけど、自分自身をcom2textしているのはわかった。
行末の改行そのままでいいの?
0229デフォルトの名無しさん2006/12/19(火) 12:45:39
>>228
やってみた。
・行末の改行はCRLFを残す
・>>226の行末についてしまっている空白は取り除く
・JIS X0201
で。

コード表眺めて気がついたけどNOP使えないから小賢しい技はちょっと使いづらいね。
02302262006/12/20(水) 00:14:09
行末の空白をひとつだけ無視できるように。
ファイルにリダイレクトした時そのまま使えるように。
変な事してるっぽいけど気にしない。

H72タPQSVWP[Pクツツ0G;0G?s1KA0GP1GR0G[0G]0Gi0Gn0Gz3ノア0T_)マ)マWセTテ、Iu>5
4@3ロCAKuフXセ}テ_="54@ャ,&|9uナ_^[Y3タテHP[アトャ<。xタ,0,0ムロムミェIu-tル######Xスp01?Q1テ30シp0
Jソp0ク@ル5キWuヒシ06Nニ@uフi[gコ4スァ0.ニ@セ10コ*Oシ30ス951ニ@rタj(Uソ91[[2_Iノシ300Iタカネフネ+ヘNSl12
WH2HオTj(ラネヘネヘpYチCコ1ニ@I_シ30カu_ネコ1ニ@T4jロVjシコ[1ス60ニ@_ス50ニ@セ450ユウスC?0コ1ニ@コ5Oニ@ニ@T
XKIタXXY1[[X]Xシ?チチHSMHfSOiHUPAHSXHSY]HS]HS^=HSdHSgaHSmIトクcHZ_DヌD:ヌ[ソZチイBTjOJ65
cJPIヘQPJUjニ\ソn>チ_NAJJGPカFCnL^jツ__]\LIタチTX]8クツカNーlGタFHFHネZヘネネオTjdFjフAAA.AAAB00&
0231デフォルトの名無しさん2006/12/20(水) 00:55:25
>>230
カタカナ無しは無理かな?int 21hのどこかが必ずカタカナに抵触しそうかな。
確かCD 21だったよね
0232デフォルトの名無しさん2006/12/20(水) 22:17:27
変換効率が3/2とかなら簡単だろうけど、4/3だと難しそう。
intよりもmovやシフトが使えないのが痛い
0233デフォルトの名無しさん2007/01/02(火) 01:21:25
07年age
0234デフォルトの名無しさん2007/01/18(木) 18:49:08
保守がてら

参考リンク
http://www.4dm.org/PKU/

7行ネタが思い付かない人は、PKUに挑戦してみるのだ
0235デフォルトの名無しさん2007/01/19(金) 00:32:26
>>234
面白いものつくってなーw
0236デフォルトの名無しさん2007/01/19(金) 05:22:24
アセンブラ用に使えるニモニックの一覧表ってどこにあるんだっけ
0237デフォルトの名無しさん2007/01/19(金) 10:43:21
>>236
石は……?
0238デフォルトの名無しさん2007/01/19(金) 11:34:14
適当なバイナリ作って逆汗
0239デフォルトの名無しさん2007/01/19(金) 16:33:39
>>236
アセンブラのソースコードでも読めば。
0240デフォルトの名無しさん2007/01/22(月) 21:26:35
>>234
A+B Problemからわからんorz
0241デフォルトの名無しさん2007/01/23(火) 19:04:29
>>240
問題のヒントに答えが書いてありますがな
02422402007/01/23(火) 19:43:36
>>241
さすがに答えはわかるwそうじゃなくて、どうやって短く書いてんのかがさっぱりわからんってこと。
0243デフォルトの名無しさん2007/01/23(火) 19:52:47
>>242
参考程度に昔自分が書いてたコード
main(n){gets(&n);putchar(n%85+5);}
これはAとBの合計が10未満で、
入力の1Byte目がA,2byte目が空白,3byte目がB,4byte目が改行|EOFのときだけ動く。
今はテストケースが改善されて10以上もあるから通らないけどな。
0244デフォルトの名無しさん2007/01/24(水) 19:14:12
C#でブロックソート書いてみた。

using System;using System.Collections.Generic;namespace BWT{public static
class BlockSort{public static int Sort(ref byte[]data){int l=data.Length,i=1,j
;byte[][]t=new byte[l][];t[0]=data;for(;i<l;i++){t[i]=new byte[l];for(j=1;j<l;
j++){t[i][j]=t[i-1][j-1];}t[i][0]=t[i-1][l-1];}Array.Sort<byte[]>(t,new Comp()
);i=Array.IndexOf<byte[]>(t,data);for(j=0;j<l;j++){data[j]=t[j][l-1];}return i
;}}class Comp:IComparer<byte[]>{public int Compare(byte[]x,byte[]y){int r=0,l=
x.Length,i=0;for(;i<l;i++){r=(int)(x[i]-y[i]);if(r!=0)i+=l;}return r;}}}

ジャグ配列のソートを自前で実装するのは行数的に厳しいです orz
修行が足りません。
02452442007/01/24(水) 19:41:10
同じくソート解除

using System;using System.Collections.Generic;namespace DBWT{struct DE{public
DE(int i,byte d){Ind=i;Data = d;}public int Ind;public byte Data;}public
static class DeBlockSort{public static void Restoration(int ind,ref byte[]data
){int i,l=data.Length;DE[] de=new DE[l];for(i=0;i<l;i++){de[i]=new DE(i,data[i
]);}Array.Sort<DE>(de,new Comp());for(i=0;i<l;i++){data[i]=de[ind].Data;ind=
de[ind].Ind;}}}class Comp:IComparer<DE>{public int Compare(DE x,DE y){if(x
.Data != y.Data){return(int)(x.Data-y.Data);}else{return x.Ind-y.Ind;}}}}


やっぱりまだまだです orz
0246デフォルトの名無しさん2007/01/24(水) 20:24:34
perl -e "for(;;){print eval<STDIN>}"

インタラクティブパールできたよー
0247デフォルトの名無しさん2007/01/24(水) 20:31:50
引数何も無しでおkだから、さ
0248デフォルトの名無しさん2007/01/24(水) 21:10:17
perl -pe '$_=eval$_'
これで十分だろと
0249デフォルトの名無しさん2007/01/24(水) 21:12:09
それは長すぎ。
perl -pe "$_=eval($_)"
で十分。
02502492007/01/24(水) 21:13:27
被った上に()の分負けてるー
orz
0251デフォルトの名無しさん2007/01/25(木) 02:49:12
perl -pe 'eval$_'

でいいんじゃない?
0252デフォルトの名無しさん2007/01/25(木) 11:45:00
これって標準入力を評価して標準出力に出力するってこと?
具体的にどういう使い方があるの?
0253デフォルトの名無しさん2007/01/25(木) 13:43:07
irb のように使う?
0254デフォルトの名無しさん2007/01/25(木) 23:44:26
電卓がわりとかじゃね?
0255デフォルトの名無しさん2007/01/26(金) 00:44:33
あなたの実家に腐ったイカを送りましたよ
0256デフォルトの名無しさん2007/01/26(金) 19:59:39
ある変数が マイナスだったら-1、プラスだったら1 に変換するCの式
if( a<0 ){
 a=-1;
}else if( a>0 ){
 a=1;
}else{
 a=0;
}
を、なんか格好よく書くには どんな本を読んで勉強するべきでしょうか?
0257デフォルトの名無しさん2007/01/26(金) 20:12:38
>>256
(a>0)-(a<0)
(a>=0)-(a<=0)
(a>>31)|((unsigned)-x>>31) (算術シフト前提)
0258デフォルトの名無しさん2007/01/26(金) 20:19:16
まず中1の数学の教科書だと思う。
a = a ? -1 * ( a / a ) : a;
■ このスレッドは過去ログ倉庫に格納されています