七行プログラミング part5at TECH
七行プログラミング part5 - 暇つぶし2ch446:デフォルトの名無しさん
07/07/04 02:18:22
>>438ですが、
少しでも役に立つものがあれば…と思ったのですが、
7行の題材としてはあまり面白くなかったですかね。
頑張れば5行くらいで書けるでしょうし。

いい題材が浮かびません…。


447:デフォルトの名無しさん
07/07/04 03:47:17
>>445
コメントのネストは伝統的にないことになってるはず。
>>446
5行で書く方法を思いつかない…orz

こんなコメントとか
/* printf("*/ \"\\"); */
Shift JISの2バイト目をきちんと処理できるように書くには7行じゃ足りない気がするんだけど…。



448:デフォルトの名無しさん
07/07/04 23:04:50
>>447
ヒント:7行でありさえすればいい

449:デフォルトの名無しさん
07/07/05 00:09:34
>>447
>/* printf("*/ \"\\"); */
これは、コメント削除処理した結果が
\"\\"); */
になればいいんですよね?

Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って
どんなのなのでしょうか?


450:デフォルトの名無しさん
07/07/05 08:38:24
>>449
> Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って
ソ/* */
とか?

451:デフォルトの名無しさん
07/07/05 08:43:43
ちょっと違うな。こういうのか?
printf("ソ");/* */

452:デフォルトの名無しさん
07/07/05 10:04:12
こんなかんじで。
#include <stdio.h>
int main(int, char *[]) {
  printf("表");/* ");/* */
  return 0;
}

というか、別に入力文字コードはUTF-8限定でもいいと思うんだけど。

453:デフォルトの名無しさん
07/07/05 11:18:18
(^ω^;) (*ノ *)ノ

454:デフォルトの名無しさん
07/07/05 17:15:43
n869 にこんな例があるな。

m = n//**/o
+ p;

m = n + p;


455:デフォルトの名無しさん
07/07/05 17:34:54
> \/* asdf */ みたいにエスケープされていたら、それはコメントにならない。

ダウト。\/ というシーケンスは規格では定義されていない。

456:デフォルトの名無しさん
07/07/05 18:49:59
>>455>>443=444並のあわてんぼさん。

457:デフォルトの名無しさん
07/07/06 00:18:02
>>414のランレングス解凍、3行になったぞ。
#include<stdio.h>
d(FILE*q){int r,c;if(!q)return 6;while((r=fgetc(q))+1)for(c=fgetc(q);putchar
(c),--r;);fclose(q);return 0;}main(int c,char**a){return d(fopen(a[1],"rb"));}


458:デフォルトの名無しさん
07/07/06 00:59:33
#include <stdio.h>
main(c,a)char**a;{int r;FILE*q=fopen(a[1],"rb");if(!q)return 6;while((r=getc(q)
)-EOF)for(c=getc(q);putchar(c),--r;);fclose(q);return 0;}

dをインライン展開してみた。

459:デフォルトの名無しさん
07/07/06 01:01:58
言い出しっぺの>>438です。
EUCとSHIFT_JISならそれなりに処理してくれたようなのでアップします。
第一引数のファイルのコメントを除去して、標準出力に出力します。

ただし、SHIFT_JISで半角カナがあるとダメなのですが、
どうやって判別すればいいかが分かっていないので、ちょっと悩んでおります。

#include <stdio.h> /* uncomment.c */
e,m,t;main(c,v)char**v;{FILE*f=fopen(v[1],"r");for(;(c=fgetc(f))+1;m>2?m%=5:
putchar(c))e?e--:(m=c-10?c-39?c-34?c-47?c-42?c<128?c-92?m:m>2?m:e++,m:e++,m:
m-3?m:(t=fgetc(f),t-47?ungetc(t,f),m:5):m?m:(t=fgetc(f),t-47?t-42?ungetc(t,f
),m:3:4):m&5?m:!m*2:m>1?m:!m:m%4);return fclose(f),0;}



460:デフォルトの名無しさん
07/07/06 01:16:35
>>457
乙w

461:デフォルトの名無しさん
07/07/06 01:17:21
久々にレスが多いなw

462:デフォルトの名無しさん
07/07/06 01:48:49
>>459
最初からワイド文字では駄目ですか?

463:デフォルトの名無しさん
07/07/06 02:00:33
最初からワイド文字とはどういう意味ですか?


464:デフォルトの名無しさん
07/07/06 02:18:04
入出力は全部wchar_tで行って、エンコーディングには関知しないという意味です。

465:デフォルトの名無しさん
07/07/06 09:42:29
2進数のビットの左右の反転ってどのくらい短く書ける?
unsigned int a を左右反転させて b にっ ka

466:デフォルトの名無しさん
07/07/06 10:57:35
>>465
関数だけどやってみた。b = R(a);

typedef unsigned U;U R(U a){int c=0,s,t;U n,h,l;for(n=~0;n>>=1;c++);
for(s=c;s>c>>1;s--){h=a&1<<s;l=a&1<<c-s;t=s*2-c;a^=h^h>>t^l^l<<t;}
return a;}

467:466
07/07/06 11:01:36
typedef unsigned U;U R(U a){int c=0,s,t;U n,h,l;for(n=~0;n>>=1;c++);
for(s=t=c;s>c>>1;s--,t-=2){h=a&1<<s;l=a&1<<c-s;a^=h^h>>t^l^l<<t;}
return a;}

1文字縮め('A`)

468:466
07/07/06 11:08:31
何度もすまんが色々間違っていた気がしてきた
何でわざわざ同じ変数内で入れ換えてるんだ俺…

469:デフォルトの名無しさん
07/07/06 13:08:37
typedef unsigned U;U R(U a){U b=0,n=~(U)0,i=0;for(;n>>=1;++i)b|=((a>>i)&1)<<(n-i
);return b;}

もう少し短くなりそうだが

470:デフォルトの名無しさん
07/07/06 13:14:15
typedef unsigned U;U R(U a){U b=0,n=~b,i=0;for(;n>>=1;++i)b|=(a>>i&1)<<(n-i);r\
eturn b;}

とりあえずここまで。

471:デフォルトの名無しさん
07/07/06 13:18:28
久しぶりだな
スレがあるのw

472:デフォルトの名無しさん
07/07/06 13:20:42
スレはずっとあるよ。なくならないよ。

473:デフォルトの名無しさん
07/07/06 13:21:26
>>472
すまね
誤爆したw

レス

474:デフォルトの名無しさん
07/07/06 13:28:51

  ( ゚д゚)      「誤爆」
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄
 
  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄

  ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄

  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /

475:デフォルトの名無しさん
07/07/06 13:30:18
>>474
七行でよろw

476:465
07/07/06 13:34:46
自分でもやってみた
typedef unsigned U;U R(U a){U b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;}
iが邪魔だね・・・消せないかなぁ

477:デフォルトの名無しさん
07/07/06 13:39:01
>>475
int printf(const char*format,...);char*a="  (%s゚д゚%s)%s\n_(__つ/ ̄ ̄ ̄/_\
\n  \/    /\n     ̄ ̄ ̄\n\n",*s=" ",*e="";main(){printf(a,s,e," \
   「誤爆」");printf(a,e,s,e);printf(a,s,e,e);printf(a,e,e,e);return 0;}

478:デフォルトの名無しさん
07/07/06 13:43:04
#include<stdio.h>
printf("  ( ゚д゚)      「誤爆」\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /\n     ̄ ̄ ̄ 
  ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /\n     ̄ ̄ ̄\n  ( ゚д゚)\n_(__つ/ ̄ ̄ ̄/_ 
  \/    /\n  ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /");

479:デフォルトの名無しさん
07/07/07 01:29:49
>>470
typedef unsigned u;u r(u n){u i=~0,a=0;for(;i;i/=2,a=n%2+a*2,n/=2);return a;}
一行切った。

480:デフォルトの名無しさん
07/07/07 01:31:44
>>476の方が短かった……orz

481:デフォルトの名無しさん
07/07/07 01:34:25
~0 と ~0u のビット表現って必ず等しい?

482:デフォルトの名無しさん
07/07/07 02:17:28
手元に環境がないからテストしてないんだけどこんなんじゃだめ?

typedef unsigned u;u r(u n){return u?(n&1?~0-~0/2:0)+r(n/2)/2:0;}

65字

483:476
07/07/07 02:26:17
>>481
ありがとう。これでもうまくいったみたい。
R(int a){int b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;}

アルゴリズムに致命的な問題がある気がする

484:デフォルトの名無しさん
07/07/07 03:25:52
R(a){int b=0,i=1;for(;i;i*=2)b+=b+!!(a&i);return b;}
R(a){int b=0,i=1;while(b+=b+!!(a&i),i*=2);return b;}

どっちも52文字
でも for文の方が わかりやすさを維持しててイイカナ

485:デフォルトの名無しさん
07/07/07 03:44:19
int を for の最初の項に入れると一文字減る

486:デフォルトの名無しさん
07/07/07 03:45:04
ごめん>>485は勘違い

487:デフォルトの名無しさん
07/07/07 03:52:44
brainfuckのインタプリタを作ってみた。

#include <stdio.h>
unsigned char M[30000],*m=M;char P[30000],*p=P;R(c){for(;c&&p>=P;*--p==']'?c++:
*p=='['&&c--);}main(i,v)char**v;{FILE*f;for(i=30000;i;M[--i]=0);if(f=fopen(v[1]
,"rt")){while(1+(*p++=getc(f)));p=P-1;while(1+*++p)*p=='>'?*++m:*p=='<'?*--m:*p
=='+'?++*m:*p=='-'?--*m:*p=='.'?putchar(*m):*p==','?*m=getchar():*p==']'&&*m&&R
(1);}}


488: ◆iicafiaxus
07/07/07 04:29:11
なんか34文字でできたっぽい
dmcでテストした

r(n){return n?r(n*2)*2+!!(n<0):0;}

489:デフォルトの名無しさん
07/07/07 04:57:53
!!いらなくね?

490:デフォルトの名無しさん
07/07/07 05:01:18
あーほんとだ、そりゃそうだ
32だね

491:デフォルトの名無しさん
07/07/07 05:08:40
やっぱ引数だけで済ますと格段に短くなるなぁ
どうしても思いつかなかった

492:デフォルトの名無しさん
07/07/07 05:24:11
やっぱ再帰は強いね

これで30
r(n){return n?r(n*2)*2|n<0:0;}

493:デフォルトの名無しさん
07/07/09 12:47:17
ネタ振られたら物凄い勢いで加速して、
最短解っぽいのが出たら急に失速するんだなw

494:デフォルトの名無しさん
07/07/09 16:21:29
ワロタ

495:デフォルトの名無しさん
07/07/09 23:34:47
それがこのスレのいいところさ

496:デフォルトの名無しさん
07/07/10 00:36:20
>>464
なんかそれだと上手くいったりするんでしょうね。

でも僕はやっぱりワイド文字の扱いが良く分かっていないので、
もしよければワイド文字処理版を作ってみてくださいな。


497:デフォルトの名無しさん
07/07/10 02:01:23
なんだかなぁ

498:デフォルトの名無しさん
07/07/10 17:42:56
using System;using System.Drawing;class P{static void Main(string[]a){Bitmap
m=new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.
Height;Bitmap v=new Bitmap(W,H);Color c;for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=
0;for(t=-z;t<2;t++)if((o=h+t)>0&&o<H)for(l=-z;l<2;l++)if((q=w+l)>0&&q<W){c=m.
GetPixel(q,o);r+=c.R;g+=c.G;b+=c.B;p++;}v.SetPixel(w,h,Color.FromArgb(r/p,g/p,
b/p));}v.Save(a[1]);}}

画像ぼかし。
これならマスク使える…?

499:498
07/07/10 19:23:38
using System;using System.Drawing;class P{static void Main(string[]a){Bitmap m
=new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.
Height;Bitmap v=new Bitmap(W,H);Color c;for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=
0;for(t=-z;t<z;t++)if((o=h+t)>-1&&o<H)for(l=-z;l<z;l++)if((q=w+l)>-1&&q<W){c=m
.GetPixel(q,o);r+=c.R;g+=c.G;b+=c.B;p++;}v.SetPixel(w,h,Color.FromArgb(r/p,g/p
,b/p));}v.Save(a[1]);}}

範囲が-指定値から2までになってたのを修正 orz

using System;using System.Drawing;using System.Drawing.Imaging;using System.
Runtime.InteropServices;class P{static void Main(string[]a){Bitmap m=new 
Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.Height,
y=W*H*3,e;byte[]src,dst;src=dst=new byte[y];BitmapData d=m.LockBits(new 
Rectangle(0,0,W,H),ImageLockMode.ReadWrite,PixelFormat.Format24bppRgb);e=d.
Stride;Marshal.Copy(d.Scan0,src,0,y);for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=0;
for (t=-z;t<z;t++)if((o=h+t)>-1&&o<H)for(l=-z;l<z;l++)if((q=w+l)>-1&&q<W){
r+=src[o*e+q*3];g+=src[o*e+q*3+1];b+=src[o*e+q*3+2];p++;}dst[h*e+w*3]=(byte)(
r/p);dst[h*e+w*3+1]=(byte)(g/p);dst[h*e+w*3+2]=(byte)(b/p);}Marshal.Copy(dst,
0,d.Scan0,y);m.UnlockBits(d);m.Save(a[1]);}}

高速化版。誰か短くして orz

500:デフォルトの名無しさん
07/07/11 00:07:15
総和テーブルでいいじゃんか

501:デフォルトの名無しさん
07/07/11 08:57:14
そうわ思わないな

502:デフォルトの名無しさん
07/07/12 02:21:33
CPU対戦の七行すごろくを考えてみたんだが、
動作確認テストをやっている最中に虚しくなってやめた。

ゲームって難しいなぁ。


503:デフォルトの名無しさん
07/07/13 00:56:21
>>1 を見てたんだけど、
part4って297レスしかつかなかったの?


504:デフォルトの名無しさん
07/07/13 00:58:33
>>40にあった。ごめん。


505:デフォルトの名無しさん
07/07/15 13:11:08
自動生成の迷路ゲーム…なんて無理か。

506:デフォルトの名無しさん
07/07/15 19:06:02
迷路を作るだけなら前あったかも

507:デフォルトの名無しさん
07/07/15 22:41:39
Javaの3Dな迷路があったと思ふ

508:6
07/07/16 01:29:02
交点の座標を詳しく求めてる

俺工房だから間違えてるのかもしれない

509:デフォルトの名無しさん
07/07/16 01:58:27
#include <stdio.h>
double s(double c){double x;int i,n;n = 10;x = 0;do {x += 1;} while (x * x < c);
for (i = 0;i < n;i++) {x = (x + c / x)/2;}return x;}int main(){double c;int a;
scanf("%d", &a);c = s(a);printf("√は%lfです。\n", c);return 0;}



ニュートン法を使ったあれです。
いじくってやってください。

510:デフォルトの名無しさん
07/07/16 21:05:29
1.空白はつめる
2.初期化と代入は一緒に
3.+=1は++に
でだいぶ短くなる予感。
ニュートン法とやらがあってるんかは知らんけどw

511:デフォルトの名無しさん
07/07/16 21:27:20
int printf(const char*,...);int scanf(const char*,...);main(){int c,n=10;double
x=0;scanf("%d",&c);do x++;while(x*x<c);while(--n)x=(x+c/x)/2;printf("sqrt(%d)=\
%f\n",c,x);return 0;}

512:デフォルトの名無しさん
07/07/16 23:12:42
typedef int f(const char*,...);f printf,scanf;double c,x,n=10;main(){for(scan\
f("%lf",&c);x*x<c;)++x;for(;n--;x/=2)x+=c/x;return!printf("√は%fです。\n",x);}

513:デフォルトの名無しさん
07/07/22 20:17:55
>++++++++++[>+>+++>++++++++++++[<]>-]> > >++++........<<+++.---.> >..<++..
..>...<<+++.---.> >..<....>...<..................>..<.............>...<.................>..<<+++.---.>
>.......<...>..<..>..<..>.....<..................>..<............>.....<..>..<..>..<<+++.---.> >..<..
..>..<..>....<...>..<...>..<...>..<.>..<.>....<..>......<.>..<...>..<.>..<...>..<.>..<.>..<<++
+.---.> >..<.....>..<.>..<......>......<...>..<.>...<...>..<...>..<...>..<...>..<.>..<......>...<<
+++.---.> >..<....>...<.>..<.....>..<...>..<...>..<.>..<....>..<...>..<...>..<...>..<.>..<...>..
<.>..<.>..<<+++.---.> >........<..>..<......>....<.>...<.>..<.>..<....>..<...>..<....>.....<...>.....<..>..<...>..

514:デフォルトの名無しさん
07/07/30 13:01:28
>>513
なんのプログラム?

515:デフォルトの名無しさん
07/07/30 13:02:57
標準出力にBrainfuckと読める絵を出力するプログラム。

516:デフォルトの名無しさん
07/07/30 13:03:45
>>515
言語は何なのかおせーて

517:デフォルトの名無しさん
07/07/30 13:04:23
Brainfuck

518:デフォルトの名無しさん
07/07/30 13:08:58
なにこれおもすれw

+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.

519:デフォルトの名無しさん
07/07/30 21:50:24
ローマ字をSJIS半角カタカナに変換する、そんな関数があると聞き
やってまいりました。
ヘボン式訓令式どちらもサポートすると
おそらく300バイト程度の関数になるでしょうか?

520:デフォルトの名無しさん
07/07/30 22:40:25 BE:360093863-S★(511223)
「aiueo」のローマ字半角カナ変換して表示。
●ローマ字半角カナ変換(Sの|Sを)
 A=(「shi|chi|tsu|fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|
ryo|gya|gyu|gyo|zya|zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so|
ta|ti|tu|te|to|na|ni|nu|ne|no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|
zo|da|di|du|de|do|ba|bi|bu|be|bo|pa|pi|pu|pe|po|nn|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。
 B=(「シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|
ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|
リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。

誰か短くしてくれ

521:デフォルトの名無しさん
07/07/30 22:48:23
ye/イェ とか dhu/デュ とかあるんだよ?

522:デフォルトの名無しさん
07/07/30 22:55:52 BE:980255377-S★(511223)
「ローマ字」のwiki見て書いたから忘れてたすまんorz

523:デフォルトの名無しさん
07/07/31 00:25:27
wyi,wyeって半角カタカナないんだな。

524:デフォルトの名無しさん
07/07/31 03:37:18
ローマ字変換、正攻法で攻めたらJavaScriptで18行になってしまた…
スレに貼れないし。鬱だ氏のうorz

525:デフォルトの名無しさん
07/07/31 08:02:16
>>520
それって擬似コード?それともなでしこ?

526:デフォルトの名無しさん
07/07/31 14:31:21 BE:480125838-S★(511224)
なでしこですよ
正攻法がどんなんかわからん・・・この方法じゃこれ以上削れそうにないし・・・

527:デフォルトの名無しさん
07/07/31 14:57:44
>>526
トェェイがうまく変換できません・・・

528:デフォルトの名無しさん
07/07/31 15:01:03
アッー

529:デフォルトの名無しさん
07/07/31 16:32:24 BE:120031823-S★(511224)
「kyouhasuunennburinidaigakuniittekoyoutoomoimasutoleleia-ltu」をローマ字半角カナ変換して言う。
//キョウハスウネンブリニダイガクニイッテコヨウトオモイマストェェイアーッ
●ローマ字半角カナ変換(Sの|Sを)
 A=(「-|ltu|xtu|la|li|lu|le|lo|xa|xi|xu|xe|xo|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|ye|dhu|shi|chi|tsu|
fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|ryo|gya|gyu|gyo|zya|
zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so|ta|ti|tu|te|to|na|ni|nu|ne|
no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|zo|da|di|du|de|do|ba|bi|bu|be|
bo|pa|pi|pu|pe|po|nn|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。
 B=(「ー|ッ|ッ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|イェ|デュ|シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ|
キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|
チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|
ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。


:::::::::::.: .:. . ∧_∧ . . . .: ::::::::
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : ::
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄

530:デフォルトの名無しさん
07/07/31 17:02:01
>>529
ちょw
スレタイを7回音読しろよw

531:デフォルトの名無しさん
07/07/31 17:05:29 BE:900234959-S★(511224)
>>529からがんばっても10行にしかなりませんでした 難しいわorz

532:デフォルトの名無しさん
07/07/31 19:11:57
クァ/qa
クァ/qwa


533:524
07/07/31 20:50:37
var A="xtu|ltu|kwa|ky|sw|sy|sh|tw|ty|th|ny|hy|my|ry|wh|gw|gy|zy|dw|dy|dh|by|"+
"py|qw|qy|fw|fy|jy|vy|cy|ch|xy|ly|k|s|t|n|h|m|y|r|w|g|z|d|b|p|q|f|j|v|c|x|l|"+
"a|i|u|e|o";var B="ッ|ッ|クァ|キy|スa|シy|シャ|シ|シュ|シェ|ショ|トa|チy|テy|ニy|ヒy|ミy|リy|ウァ|ウィ"+
"|ウ|ウェ|ウォ|グa|ギy|ジy|ドa|ヂy|デy|ビy|ピy|クa|キy|フa|フy|ジy|ヴy|チy|チャ|チ|チュ|チェ|"+
"チョ|y|y|カ@|サ@|タ@|ナ@|ハ@|マ@|ヤ|イ|ユ|イェ|ヨ|ラ@|ワ|ウィ|ウ|ウェ|ヲ|カ@゙|サ@゙|タ@゙|ハ@゙|ハ@゚|クァ|ク"+
"ィ|ク|クェ|クォ|ファ|フィ|フ|フェ|フォ|ジャ|ジ|ジュ|ジェ|ジョ|ヴァ|ヴィ|ヴ|ヴェ|ヴォ|カ|シ|ク|セ|コ|a|a"+
"|ア|イ|ウ|エ|オ";B=B.replace(/\|.@([゚゙]?)/g,function(e){var r="";for(var i=0;i<5;
i++)r+="|"+String.fromCharCode(e.charCodeAt(1)+i)+RegExp.$1;return r}).replace
(/([^\|]*)a\|/g,"$1ァ|$1ィ|$1ゥ|$1ェ|$1ォ|").replace(/([^\|]*)y\|/g,"$1ャ|$1ィ|$1ユ|"+
"$1ェ|$1ョ|").split("|");A=A.replace(/([^aiueo]{1,2})\|/g,"$1a|$1i|$1u|$1e|$1o|"
).split("|");var t=prompt().replace("nn","ン").replace(/([^aiueo])\1/g,"ッ$1").
replace(/n([^aiueo]|$)/g,"ン$1");for(var i=0;i<A.length;i++)t=t.replace(A[i],
B[i],"g");alert(t);
正規表現を使わないでやっていたが、なでしこのコードを参考にして13行。MS-IMEで出る字は大体出ると思うけど。
まだ冗長だなあ。

534:デフォルトの名無しさん
07/07/31 21:52:50 BE:960250368-S★(511224)
S="";X="-|ltu|xtu|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|ye|dhu|shi|chi|tsu|fu|ji|";Y=空;Z=空;
M="ky|sy|ty|ny|hy|my|ry|gy|zy|by|py|sh|ch|j|y"を"|"で 区切;N="a|u|o"を"|"で区切;Mで反復,D=対象;Nで反復,YにD&対象を一行追加;
P="l|x|w|k|s|t|n|h|m|r|g|z|d|b|p"を"|"で区切;Q="a|i|u|e|o"を"|"で区切;Pで反復,E=対象;Qで反復,ZにE&対象を一行追加;
A="{Xを"|"で区切}{\n}{Y}{Z}nn{\n}n{\n}a{\n}i{\n}u{\n}e{\n}o";B=(("ー|ッ|ッ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|イェ|デュ|シ|チ|ツ|
フ|ジ|キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ|
ジャ|ジュ|ジョ|ヤ|ユ|ヨ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ワ|ウィ|ウ|ウェ|ヲ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ラ|リ|ル|レ|ロ|ガ|ギ|グ|ゲ|ゴ|
ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ")の改行を空に置換)を"|"で区切;Aで反復,S=Sの対象をB[回数-1]に置換;

>>533を参考にして苦しいがスレタイ通りに・・・(゚Д゚;)

535:デフォルトの名無しさん
07/07/31 21:54:14
一行79文字が守られていません。お引取りください。

536:デフォルトの名無しさん
07/07/31 21:54:48 BE:360094436-S★(511224)
\(^o^)/ ヽ ←さじ

537:デフォルトの名無しさん
07/07/31 22:19:30
ソースコードをP2Pネットワークに置く
ソースコードのハッシュを算出する
ハッシュを元にソースコードをDLしてくる
  →事実上ソースコードはハッシュ文字数に圧縮される  ∩( ・ω・)∩ ばんざーい

538:デフォルトの名無しさん
07/07/31 22:34:10 BE:600156465-S★(511224)
∩( ・ω・)∩ ばんざーい

539:デフォルトの名無しさん
07/07/31 22:36:23
>>537
7行79桁でファイル共有ソフトを書けと。

540:デフォルトの名無しさん
07/07/31 23:04:18 BE:280073827-S★(511224)
「∩( ・ω・)∩ banza-i」をローマ字半角カナ変換して言う。
●ローマ字半角カナ変換(Sの|Sを)
 経過ダイアログはオフ。
 A=((「URLリンク(isoroku.net)」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。
 B=((「URLリンク(isoroku.net)」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。

//∩( ・ω・)∩ ばんざーい
//orz

541:デフォルトの名無しさん
07/08/01 03:10:59
>>525-526
疑似コードにしか見えんw

542:デフォルトの名無しさん
07/08/01 08:49:44
日本語でプログラミング気持ち悪い

543:デフォルトの名無しさん
07/08/01 15:08:00
>>540お前はアホか

544:デフォルトの名無しさん
07/08/01 15:26:47
日本語でプログラミングはなしがいい

545:デフォルトの名無しさん
07/09/03 14:33:17
保守

546:デフォルトの名無しさん
07/09/03 14:40:00
データ外部に置いたらダメだろ
httpでプログラム取得、実行、というプログラムを書けば
汎用七行になってしまう

547:デフォルトの名無しさん
07/09/03 14:41:49
httpでとってきて、evalか?

こええよw


548:デフォルトの名無しさん
07/09/03 16:38:26
httpでとってきてCreateProcess

549:デフォルトの名無しさん
07/09/03 18:44:35
>>547
JavaScript が怖くて常に OFF にしてるの?

サンドボックスがまともならそんなに怖くないかと

550:デフォルトの名無しさん
07/09/03 18:45:58
実はperl

551:デフォルトの名無しさん
07/09/04 02:51:01
実はzipとか

552:デフォルトの名無しさん
07/09/04 02:59:15
URLリンク(www.amazon.co.jp)
中身見たこと無いけどこの本のことは話題にはならないのね。

553:デフォルトの名無しさん
07/09/04 12:23:18
図書スレで話題になってたな

554:デフォルトの名無しさん
07/09/12 20:08:51
>>553
どんな内容かおせーて

555:デフォルトの名無しさん
07/09/22 00:10:16
トリッキースレがなくなってますね。
トリッキースレの後継スレみたいなのないのかな。

別のスレで出た話ですが、

int my_fputwc(wint_t c, FILE *fp)
{ wint_t r = fputwc(c, fp);
return (r == WEOF) ? EOF : r;
}

int wtbl[0x10000];
void dokkade_jikkou(void ) {
int i;
for (i = 0; i < 0x10000; i++)
wtbl[i] = i;
wtbl[0xffff] = EOF;
}
int my_fputwc(wint_t c, FILE *fp) return wtbl[fputwc(c, fp);]; }

みたいなこと(WEOF(wint_tの0xffff)をEOF(intの-1)に変換)
をもっとスマートに行う方法ないですかね。

556:デフォルトの名無しさん
07/09/22 00:37:10
インラインアセンブラが使え無い言語は
基本的に劣っていると考えたい・・・


557:デフォルトの名無しさん
07/09/22 01:01:47
適当に書いてみた。スマートなのかも、速いのかもよくわからん。反省はしてない。
int my_fputwc(wint_t c, FILE *fp)
{
  wint_t r = fputwc(c, fp);
  return ((!(r ^ 0xffff)) * EOF) | r;
}

558:デフォルトの名無しさん
07/09/22 01:04:03
エラー デバッグ ブラウザ ツール
URLリンク(www.mozilla-japan.org)
シンプル プログミング ツール
URLリンク(proforceone.web.fc2.com)
素因数分解サンプルプログラム
Calculation processing にコピーして[RUN]

A=2*3*5*11*13*17*19;
x=A;write(" "+x+" ⇒");
for(i=2;x>=i;i++){if(0==x%i){k=0;
 for(j=2;(i>=j)&&(1>=k);j++){
  if(0==i%j){k++;}
 } if(1==k){write(" "+i);}
}}

559:デフォルトの名無しさん
07/09/22 14:40:32
>>555
どう考えてもfputwcが重すぎで大差ない気がするが
int my_fputwc(wint_t c, FILE *fp)
{ wint_t r = fputwc(c, fp);
return (~r + 0xFFFF&0xFFFF0000)^r;
}


560:デフォルトの名無しさん
07/10/14 21:43:13
保守

561:デフォルトの名無しさん
07/11/14 22:52:05
保守


562:デフォルトの名無しさん
07/11/14 23:09:49
なんかネタないかね

563:デフォルトの名無しさん
07/11/15 04:38:01
echoサーバとか

564:デフォルトの名無しさん
07/11/15 04:41:30
10 OPEN "COM1:" FOR INPUT AS #1
20 LINE INPUT #1, A$
30 PRINT #1, A$
40 IF NOT EOF(1) THEN GOTO 20
50 CLOSE #1
60 END
70

565:デフォルトの名無しさん
07/11/17 08:34:20
[,.]

4文字v

566:デフォルトの名無しさん
07/11/17 12:01:10
>>565
これなに?

567:デフォルトの名無しさん
07/11/17 13:46:53
入力したものを出力するだけのプログラムなんじゃない?

568:デフォルトの名無しさん
07/11/17 13:57:06
何もしないで戻るような気がする

569:デフォルトの名無しさん
07/11/17 14:27:16
これTCP? ポートってデフォルトは何番になるの?

570:デフォルトの名無しさん
07/11/18 01:00:54
>>565はBFのコードだろ?

571:デフォルトの名無しさん
07/11/18 03:11:21
>>565
そりゃただのechoコマンドじゃないか。

572:デフォルトの名無しさん
07/11/19 19:24:25
>>569
TCP/UDP 7

573:デフォルトの名無しさん
07/11/19 19:31:43
RFC 3091 "Pi Digit Generation Protocol" のサーバーとかどうだろう。

574:デフォルトの名無しさん
07/11/19 23:16:44
lispで何か書こうかな。。。。


もしかして過疎?

575:デフォルトの名無しさん
07/11/19 23:27:59
187byte スロットはスレ違い?

576:デフォルトの名無しさん
07/11/19 23:30:57
>>575
とりあえず書いてけよ。

577:デフォルトの名無しさん
07/11/19 23:55:55
つ <body onload=n=[1,b=2,x=3];setInterval('for(i=3;b<i--;)if(i<x)n[2-i]+=n[2-i]-7?1:-6;b+=b?-1:2;document.body.innerHTML=x?n:n+(n[0]-n[1]|n[1]-n[2]?"\\nx":"\\no")',50) onmousedown=x+=x?-1:3>


誰かもっと削ってー

578:デフォルトの名無しさん
07/11/20 18:47:23
スルーとはお前らなかなかやってくれるなw
でもやっぱりスレチだよな。ゲ製に投下してくる

579:デフォルトの名無しさん
07/11/20 18:50:49
>>577
スルーしたわけじゃないんだ。
ちょっと分野が違った。
すまね。

580:デフォルトの名無しさん
07/11/20 20:12:05
俺は1時間くらい考えてみたけど <body id=B くらいしか思いつかなかった
あとは表示が 1,2,3,x になってもいいならn=[1,b=2,x=3,"\\n"]とするとか

581:デフォルトの名無しさん
07/11/20 21:17:33
>>579
あっちで好評だったからもう気にしないんだぜw


>>580
考えてくれてたのかサンクス
なるほど、id=B はまったく思い付かなかった。コンマも気にしないからやってみたら
n=[1,b=2,x=3,"\n"]; ってエスケープ1つで動いた

これで結局 179Byte wwwこれ以上は想像もつかんw
ああ、 onclick はなんとなくタブーねww

582:デフォルトの名無しさん
07/11/21 00:16:20
何をするスクリプト?

583:デフォルトの名無しさん
07/11/21 00:21:47
>>582
使ってみるがよろし。

584:デフォルトの名無しさん
07/11/21 00:34:49
PCが見知らぬ動きをはじめた・・・!

585:デフォルトの名無しさん
07/11/21 00:49:34
n[0]-n[1]|n[1]-n[2]
n[0]*6-n[1]*5-n[2]
n[2-i]+=n[2-i]-7?1:-6;
n[2-i]=n[2-i]%7+1;

n[0]*6-n[1]*5-n[2]はちゃんと動くか分からん

586:デフォルトの名無しさん
07/11/21 01:05:20
>>585
上のは [2,1,7] で誤作動しますね
下のは (; Д )゚ ゚

587:デフォルトの名無しさん
07/11/21 01:15:21
n[0]*7-n[1]*6-n[2]
だと大丈夫?

588:デフォルトの名無しさん
07/11/21 01:23:00
動かしたけどさっぱり
最後の桁がぐるぐる回り続けてるだけだった

589:デフォルトの名無しさん
07/11/21 01:24:21
素晴らしい。
いま 174Byte ですか。まだまだ削れそうな気がしてきました

590:デフォルトの名無しさん
07/11/21 01:30:39
>>588
<body id=B onload=n=[1,b=2,x=3,"\n"];setInterval('for(i=3;b<i--;)if(i<x)n[2-i]=n[2-i]%7+1;b+=b?-1:2;B.innerHTML=x?n:n+(n[0]*7-n[1]*6-n[2]?"x":"o")',50) onmousedown=x+=x?-1:3>
これで動かないか?

591:デフォルトの名無しさん
07/11/21 01:34:08
>>590
うごく

592:デフォルトの名無しさん
07/11/21 02:05:57
ああ、わかった
B使うとかあらゆる意味で邪道だな
クソだ

593:デフォルトの名無しさん
07/11/21 08:26:49
グローバル使わないでって火狐は怒るだろうな

594:デフォルトの名無しさん
07/11/21 08:49:45
HTMLで短くするのなんてナンセンスだよ
onload=""って括ってないとか、<title>タグが無いとか、
innerHTMLで配列を代入とか、仕様違反が多すぎる。

595:デフォルトの名無しさん
07/11/21 09:00:48
titleを指摘する前に、htmlなのにhtml要素がないことに突っ込めw

596:デフォルトの名無しさん
07/11/21 09:09:20
htmlタグはHTML4では省略可能なので別になくていい
そもそもDTD宣言がないからHTML4かどうかもわからないんだけどな

597:デフォルトの名無しさん
07/11/21 09:27:11
>>594
配列は toString メソッドが暗黙に呼び出されて文字列になる

598:デフォルトの名無しさん
07/11/21 15:55:51
>>597
そもそもinnerHTMLが仕様にないので、暗黙的にtoStringが呼ばれるとは限らない
しかしArrayのtoStringの仕様がjoinだとはしらなんだ

599:デフォルトの名無しさん
07/11/21 16:45:57
そもそもここは標準規格に適合しないといけないスレじゃないだろ。

600:デフォルトの名無しさん
07/11/21 16:53:46
むしろ仕様と戦うスレ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch