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

出されたお題をコーディングして罵られるスレ

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2012/12/02(日) 05:24:18.74
例:
お題が「バブルソート」だったら、とりあえずコーディングしてドヤ顔します。
すると「番兵置けやボケ」云々と罵ってもらえます。

このスレは出題者様、回答者、そして教官様を必要としています。よろしくお願いします。
0002デフォルトの名無しさん2012/12/02(日) 06:20:03.83
お題:摂氏温度入力で華氏温度表示。
0003デフォルトの名無しさん2012/12/02(日) 06:22:37.77
>>2

double C, F;
char buf[64];

printf("摂氏:");
fgets(buf, 60, stdin);
C = atof(buf);

F = (9.0/5.0) * C + 32.0;

printf("摂氏%.2f度C => 華氏%.2f度F", C, F);
0004デフォルトの名無しさん2012/12/02(日) 06:37:47.83
お題:雪の結晶を生成、表示するプラグラム。
0005デフォルトの名無しさん2012/12/02(日) 09:05:18.29
>>4
ボケェ!
0006デフォルトの名無しさん2012/12/02(日) 09:42:28.17
64確保して60読み込んでいるところが、
仕様をきちんと確認せずに保険を敷いている間抜けさと姑息さが滲み出ている。
0007デフォルトの名無しさん2012/12/02(日) 12:59:59.33
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0008デフォルトの名無しさん2012/12/02(日) 15:44:24.01
>>7
おせえよボケ
やる気ねえならもうやめなゴミが
0009デフォルトの名無しさん2012/12/02(日) 22:01:38.03
>>2
#include <string>
#include <iostream>
int main()
{
  while (true) {
    std::cout << "摂氏温度 と入力して下さい: ";
    std::string input;
    if (getline(std::cin, input)) {
      if (input == "摂氏温度") {
        std::cout << "華氏温度" << std::endl;
      }
    } else {
      break;
    }
  }
  return 0;
}
0010デフォルトの名無しさん2012/12/02(日) 22:44:20.13
番兵置けやボケ
0011デフォルトの名無しさん2012/12/02(日) 22:44:56.37
オレがこのスレの
番兵だ!
0012デフォルトの名無しさん2012/12/03(月) 08:06:46.83
(´・ω・`)通りすがりの実数xのn乗根を求めよ
0013デフォルトの名無しさん2012/12/03(月) 14:32:37.88
>>6
「保険を敷く」ってなんだよ。きちんと確認せずに書いている間抜けさが……

>>12
「通りすがりの実数」ってなんだよ。
0014デフォルトの名無しさん2012/12/03(月) 19:44:40.87
> (´・ω・`)通りすがりの実数xのn乗根を求めよ
真の値を返さないとダメ?
それとも数式でOK?
0015片山博文MZボット ◆0lBZNi.Q7evd 2012/12/03(月) 19:51:42.06
>>12
#include <math.h>
pow(x,1.0/n)
0016デフォルトの名無しさん2012/12/03(月) 22:19:19.59
>>15
断りがない場合定義域は実数全体だバカ
0017,,・´∀`・,,)っ-○○○2012/12/03(月) 22:20:46.94
突っ込みどころが多過ぎて逆にどう突っ込んでいいか・・・
0018デフォルトの名無しさん2012/12/03(月) 23:37:10.58
実数 x の n 乗根を求めよ。
ただし、
・math.hを使わない
・double x > 1.0 の任意
・int n > 1 の任意
0019,,・´∀`・,,)っ-○○○2012/12/04(火) 00:42:50.34
N乗根の求め方だけで論文書けるレベルなんだな
http://ci.nii.ac.jp/naid/110001883672
0020デフォルトの名無しさん2012/12/04(火) 02:36:11.25
ttp://ideone.com/hzVwDU
中間値の定理ならばどんな複雑なものでも解けるだろう
0021,,・´∀`・,,)っ-○○○2012/12/04(火) 12:46:59.57
解りやすくて好きだけど罵倒しないといけないんだよね。

たとえばN = 1,000,000なら収束するまで本当に100万回ずつ乗算をするってのは筋が良くない。
専門学校や大学1〜2年生の宿題レベルならそれでいいかもしれないが実用レベルには遥かに達しない。
整数乗ならこっちのほうが演算回数少ない。

double pow_n( double a, uint_t n )
{
double r = 1.0;
while (n > 0) {
if (n & 1) { r *= a; }
n = n >> 1;
a *= a;
}
return r;
}
0022デフォルトの名無しさん2012/12/05(水) 01:38:02.21
>>21に敬意を込めて
double pow_n(double a, uint_t n)
{
double r = a;
for (--n; n > 0; n >>= 1) {
if (n & 1)
r *= a;
a *= a;
}
return r;
}

doubleの乗算が少し減るかも。
ただしn>1になるが
0023デフォルトの名無しさん2012/12/05(水) 23:17:10.97
朝8時になるとサイト(勤怠管理)が開いて、そこにIDとパスワードを入れて「出勤ボタン」を押してくれるプログラム求む
0024片山博文MZボット ◆0lBZNi.Q7evd 2012/12/06(木) 19:05:00.26
>>23 サイトのURLとHTMLソース希望
0025デフォルトの名無しさん2012/12/07(金) 17:49:01.18
>>22
番兵おけやボケェ
0026,,・´∀`・,,)っ-○○○2012/12/08(土) 23:16:53.11
番兵なんていらねえよ、'12冬
0027デフォルトの名無しさん2012/12/09(日) 21:58:31.97
お題:整数nが与えられたとき、その平方根の式を平方因子を括り出しで表示せよ。
例 
sqrt(4)=2
sqrt(8)=2*sqrt(2)
0028デフォルトの名無しさん2012/12/10(月) 00:07:57.66
>>27
#include<stdio.h>
#include<math.h>
int main()
{
int n, hei, inshi;
printf("整数 n(>0) を入力せよ :"); scanf("%d", &n);
if (n < 0) { printf("負は受け付けぬ\n"); return 1; }
if (n == 0) { hei = inshi = 0; }
else {
for (inshi = (int) sqrt((double) n); inshi >= 1; inshi--)
if ((n % inshi) == 0 && (n % (inshi * inshi)) == 0)
break;
hei = n / inshi / inshi;
}
printf("%d = %d * sqrt(%d)\n", n, inshi, hei);
return 0;
}
0029デフォルトの名無しさん2012/12/10(月) 00:22:57.17
>>27
<!-- 2以上を入力しないといけない -->
main(i,n){for(scanf("%d",&n),i=n;n%(--i*i););printf("%d*sqrt(%d)\n",i,n/i/i);}
0030デフォルトの名無しさん2012/12/10(月) 09:49:51.84
おっぱい揉んで
激安で抜ける
○1000円〜
「新宿 アイアイ 」
○1500円〜
「西川口 マーガレット 」
○2000円〜
「新宿・錦糸町 あんぷり亭 」
「新宿 ダブルエロチカ 」
0031デフォルトの名無しさん2012/12/11(火) 11:28:57.75
>>29
intを省略すんな。
main()の引き数の型を変えんな。
iの開始値がnだと入力値が制限されるぞ。
つーか、なんでコメントがhtmlスタイルなんだよ。
0032デフォルトの名無しさん2012/12/11(火) 17:22:09.88
>>28
> if ((n % inshi) == 0 && (n % (inshi * inshi)) == 0)
  ↓
> if (n % (inshi * inshi) == 0)

>>29
65537以上入力出来ない
0033デフォルトの名無しさん2012/12/12(水) 03:51:20.60
>>29
for (i = n; n % i | n / i % i; --i);
0034デフォルトの名無しさん2012/12/14(金) 22:44:23.55
お題:計算結果がが n になる式を 100種類出力せよ。
文字列として比較して違っていればよい。
答えはいくらでもあります。自由にやって下さい。
0035デフォルトの名無しさん2012/12/14(金) 22:49:36.92
n-1+1,...,n-100+100でいいの?
0036デフォルトの名無しさん2012/12/15(土) 00:09:27.39
>>27
nの範囲を指定しましょう
0037デフォルトの名無しさん2012/12/15(土) 00:41:28.96
>>34
perl -e 'print "$_/$_\n" for (1..100)'

検証
> perl -e 'print "$_/$_\n" for (1..100)' | sort | uniq | wc -l
100
0038デフォルトの名無しさん2012/12/15(土) 18:17:33.71
>>34
#include <stdio.h>
int main(void) {
 int n, a, b;
 int i;

 n = 5;
 a = 0;
 b = n;

 for (i=1; i<=100; i++) {
  printf("%03d: %d + %d = %d \n", i, a, b, (a+b));
  a--;
  b++;
 }
 return 0;
}
0039デフォルトの名無しさん2012/12/16(日) 08:28:28.07
お題:3から始めて、それより大きい最小の5の倍数、それより大きい最小の3の倍数、
それより大きい最小の5の倍数、........
とつづく並びの最初の100を出力せよ。
0040デフォルトの名無しさん2012/12/16(日) 08:32:04.86
> とつづく並びの最初の100を出力せよ。

とつづく並びの最初の100個を出力せよ。

でした。訂正します。
0041デフォルトの名無しさん2012/12/16(日) 08:44:22.85
>>39
#include <stdio.h>
int main(){
int cnt = 0, w = 3, n = 1;
while (cnt < 100) {
if (n % w == 0) {
++cnt;
printf("%d ", n);
w = 8 - w;
}
++n;
}
return 0;
}
0042デフォルトの名無しさん2012/12/17(月) 07:15:22.14
お題:4桁の10進数の各桁と四角形の各辺の長さを対応させたとき、四角形にできる
4桁の10進数をすべて求めよ。
1113 などはぺしゃんこだが四角形とする。
0043デフォルトの名無しさん2012/12/17(月) 08:00:27.29
つまんね
0044デフォルトの名無しさん2012/12/17(月) 09:50:25.45
>>42
ttp://ideone.com/0e759A
0045デフォルトの名無しさん2012/12/18(火) 07:51:49.14
お題:3と5を使わずに1からnまで数えたとき、数えた回数を求めよ。
0046デフォルトの名無しさん2012/12/18(火) 11:02:49.29
>>45
ttp://ideone.com/NYodZy
0047デフォルトの名無しさん2012/12/18(火) 16:01:12.52
ttp://ideone.com/rHZgCL
0048デフォルトの名無しさん2012/12/18(火) 16:50:10.58
>>46,47
n<1漏れ
0049472012/12/18(火) 17:56:49.27
>>48
ttp://ideone.com/b1LLqF
0050デフォルトの名無しさん2012/12/18(火) 19:28:51.76
>>45
main(){
 int i=0,n,o=0;
 scanf("%d",&n);
 for(;n;n/=10)
  o+=n%10-n%10/4+n%10/8<<i++*3;
 printf("%d\n",o<0?2-o:o);
}
0051デフォルトの名無しさん2012/12/18(火) 22:01:02.82
>>50
ずれてるように見えるが?
n result
1 1
2 2
3 3
4 3
5 4
6 5
7 6
8 7
9 8
10 8
11 9
12 10
13 11
14 11
15 12
16 13
17 14
18 15
19 16
20 16
0052デフォルトの名無しさん2012/12/18(火) 22:03:41.99
>>45
f:=method(n,
n abs asString translate("01246789","01234567")fromBase(8)+if(n<1,2,0))
Io> f(40)
==> 24
Io> f(80000000)
==> 12582912
Io> f(-40)
==> 26
0053デフォルトの名無しさん2012/12/18(火) 23:17:30.24
>>39
Io> a:=b:=3;100 repeat(a println;b=8-b;a=a+b-a%b)
3
5
6
10
12
(略)
240
243
245
246
250
0054デフォルトの名無しさん2012/12/20(木) 05:44:33.97
お題:ハノイの塔の問題を解く関数を定義せよ。ただし、結果を直接表示せずに
配列、リスト、文字列などで返すようにせよ。
0055デフォルトの名無しさん2012/12/20(木) 07:25:23.26
http://codepad.org/RBOkdXOD
0056デフォルトの名無しさん2012/12/20(木) 19:34:57.38
>>54
hanoi:=method(n,a,b,c,
if(n<1,"",hanoi(n-1,a,c,b)..(a .."->".. b .."\n").. hanoi(n-1,c,b,a)))

Io> hanoi(3,"A","B","C")
==> A->B
A->C
B->C
A->B
C->A
C->B
A->B
0057デフォルトの名無しさん2012/12/22(土) 13:13:58.02
お題:a X b X c の大きさの直方体がある。直線距離が最大の2点間の直線距離と表面上を移動したときの最小距離を求めよ。
0058デフォルトの名無しさん2012/12/22(土) 15:30:55.56
>>57
ttp://ideone.com/mwrcg6
0059デフォルトの名無しさん2012/12/22(土) 18:00:50.13
>>57
f:=method(v,u:=v sort;list(v map(**2)sum sqrt,(u removeLast**2+u sum**2)sqrt))

Io> f(list(1,2,3))
==> list(3.7416573867739413, 4.2426406871192848)
Io> f(list(5,6,7))
==> list(10.488088481701515, 13.038404810405298)
Io> f(list(3,1,2))
==> list(3.7416573867739413, 4.2426406871192848)
0060デフォルトの名無しさん2012/12/27(木) 11:35:31.59
>>59
その言語が何かは知らないけれど、巧くできているね。
大体意味は掴めたと思うのだが、sortの後のセミコロンの役目はなんだい?
>56も同じ言語かな? そっちもドット二つの意味が知りたいな。
0061デフォルトの名無しさん2012/12/28(金) 23:45:53.38
>>60
プロンプトに名前がでてるのであらためて書かなくていいかなと思ってました。
>>52 >>56 >>59 はIo言語です。
セミコロンは、単に式のデリミタです。
ドットドットは、文字列連結演算子です。
0062デフォルトの名無しさん2013/01/03(木) 16:28:58.19
お題:n桁の2進数で1が連続する部分をもつ数はいくつあるか?(1<n<50)
たとえばn=3の場合、011、110、111の3個。
0063デフォルトの名無しさん2013/01/03(木) 19:16:51.62
>>62
#include <stdio.h>

int main(void)
{
long int n, a = 1, b = 1, nn = 2, t;
for ( n = 1; n <= 50; ++n)
{
printf("n=%ld, answer=%ld¥n", n, nn - a - b);
nn *= 2;
t = b; b = a; a += t;
}

return 0;
}
0064デフォルトの名無しさん2013/01/04(金) 12:56:44.03
>>62
Io言語
f:=method(n,a:=5 sqrt;2**n-(((1+a)/2)**(n+2)/a)round)

Io> f(3)
==> 3
Io> f(20)
==> 1030865
Io> f(49)
==> 5.629296e+014
Io> f(49)asString(0,0)
==> 562929588410238
0065デフォルトの名無しさん2013/01/06(日) 21:22:17.24
お題:長さが32文字以下の2進表記の文字列が与えられたとき"1"の個数を求めよ。
例
"1010101" ==> 4
0066デフォルトの名無しさん2013/01/06(日) 21:31:36.33
>>65
int main() {
char d[] = "1010101", *p = &d[0];
int total = 0, len;
for (len = strlen(d) - 1; len >= 0; len--) {
if (*p++ == '1') {
total++;
}
}
printf("\"%s\" ==> %d\n", d, total);
return 0;
}
0067デフォルトの名無しさん2013/01/07(月) 01:09:22.84
>>65
ttp://ideone.com/50rIS1
0068片山博文MZボット ◆0lBZNi.Q7evd 2013/01/07(月) 01:26:41.44
お題。TXTの拡張BNFをPEGに変換するプログラム。とりつけばWM900。MITライセンスで頼む。期限1/15。
0069デフォルトの名無しさん2013/01/07(月) 01:27:36.59
きもい
0070デフォルトの名無しさん2013/01/07(月) 12:39:39.71
>>65
Io言語
f:=method(s,(s .."1")split("1")size-1)

Io> f("1010101")
==> 4
Io> f("1101010111111111000111010000")
==> 17
0071デフォルトの名無しさん2013/01/07(月) 21:25:32.86
お題
英数字1〜32文字のパスワードに対し、総当たり試行するプログラム
0072デフォルトの名無しさん2013/01/08(火) 01:32:58.19
>>71 SWI-Prolog
s(''). s('0'). s('1'). s('2'). s('3'). s('4'). s('5'). s('6'). s('7'). s('8'). s('9'). s('A'). s('B').
s('C'). s('D'). s('E'). s('F'). s('G'). s('H'). s('I'). s('J'). s('K'). s('L'). s('M'). s('N'). s('O').
s('P'). s('Q'). s('R'). s('S'). s('T'). s('U'). s('V'). s('W'). s('X'). s('Y'). s('Z'). s('a'). s('b').
s('c'). s('d'). s('e'). s('f'). s('g'). s('h'). s('i'). s('j'). s('k'). s('l'). s('m').s('n'). s('o').
s('p'). s('q'). s('r'). s('s'). s('t'). s('u'). s('v'). s('w').s('x'). s('y'). s('z').
0073片山博文MZボット ◆0lBZNi.Q7evd 2013/01/08(火) 01:37:50.21
char set[]="0〜9A〜Za〜z";
int siz=10+26+26;
char pas[33];
memset(pas,0,sizeof(pas));
for(int l=1;l<=32;l++){
for(;;){
for(int j=0;j<siz;j++)
{pas[0]=set[j];try(pas);}
int i=0;
while(i<l&&pas[i]=='z')pas[i++]='0';
if(i==l)break;
pas[i]=(pas[i]?*(strchr(set,pas[i])+1):'0';
}}
0074デフォルトの名無しさん2013/01/08(火) 01:45:27.48
memset(pas,0,sizeof(pas));
と
for(int l=1;l<=32;l++){
を入れ換える
0075デフォルトの名無しさん2013/01/08(火) 01:46:59.33
泥臭いな
圏で語れよ
0076デフォルトの名無しさん2013/01/08(火) 02:07:13.40
>>72 のつづき
?-s(S1),s(S2),s(S3),s(S4),s(S5),s(S6),s(S7),s(S8),s(S9),s(S10),s(S11),s(S12),
s(S13),s(S14),s(S15),s(S16),s(S17),s(S18),s(S19),s(S20),s(S21),s(S22),s(S23),
s(S24),s(S25),s(S26),s(S27),s(S28),s(S29),s(S30),s(S31),s(S32),
concat_atom([S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,
S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31,S32],X),
write(X),\+nl.
0077デフォルトの名無しさん2013/01/08(火) 12:42:18.97
>>71
Io言語
f:=method(N,C,A,if(N==0,A println,C foreach(v,f(N-1,C,v .. A))))
d:=" 0 1 2 3 4 5 6 7 8 9"split
A:="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"split
a:="a b c d e f g h i j k l m n o p q r s t u v w x y z"split
c:=d appendSeq(A,a)
f(32,c,"")
0078デフォルトの名無しさん2013/01/08(火) 16:40:25.41
全部見づらい
0点
出直して来いゴミども
0079デフォルトの名無しさん2013/01/08(火) 21:13:15.58
>>71 J言語
63進数で0を含むものをスキップ
f=:dyad define
c=.'0',y
b=.#c
n=.b^x:x
i=.0
while. i<n do.
d=.b#.inv i
if. -. 0 e. d do. smoutput d{c end.
i=.i+1
end.
)
32 f '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
0080602013/01/09(水) 12:32:37.92
>>61
THX!
いやぁ、Io言語は知らなかった。
0081デフォルトの名無しさん2013/01/10(木) 12:14:05.18
お題:パソコンの画面に指定した大きさの正方形とそれに内接する円と
その円に内接する三角形(頂点は12時、4時、8時の位置)をかくプログラム。
0082デフォルトの名無しさん2013/01/10(木) 19:50:48.82
お題:ある球体で直径が2割大きくなるとき
体積は何%増加するかを求める
0083デフォルトの名無しさん2013/01/10(木) 20:46:30.16
>>82
#include<stdio.h>
int main()
{
printf("%f%%\n", 1.2 * 1.2 * 1.2 * 100.0 - 100.0);
return 0;
}
0084デフォルトの名無しさん2013/01/11(金) 01:28:36.43
>>83
真球なの?
0085デフォルトの名無しさん2013/01/11(金) 02:33:52.51
どんな形だろうとも、立体が相似比n倍になったらその体積はnの3乗倍になるだろう
0086デフォルトの名無しさん2013/01/11(金) 06:13:50.98
>>81
0087812013/01/11(金) 06:45:20.11
ネタがつまらないのは自覚していたが
完全スルーは想定外だった
0088デフォルトの名無しさん2013/01/11(金) 11:05:22.32
ギャハハハ
0089デフォルトの名無しさん2013/01/11(金) 11:56:54.28
グラフといえばエクセルだろ常考
0090片山博文MZボット ◆0lBZNi.Q7evd 2013/01/11(金) 15:02:33.57
回答が得られないようなので>>68は宿題スレに移ります。
0091デフォルトの名無しさん2013/01/11(金) 22:44:30.71
>>83
表示しろって書いてないよ
0092デフォルトの名無しさん2013/01/11(金) 22:50:38.92
>>91
double aru_kyuutai_de_chokkei_ga_2wari_ookiku_narutoki_taiseki_ha_nan_percent_zouka_suru_ka_motomeru_function(void)
{
return 1.2 * 1.2 * 1.2 * 100.0 - 100.0;
}
0093デフォルトの名無しさん2013/01/13(日) 15:51:00.53
>>91
その理屈だと、"求めました"、だけでも正解だな。
0094デフォルトの名無しさん2013/01/13(日) 23:08:49.57
>>81 R
odai81 <- function(L=50){
plot(c(0,0,0),c(0,0,0),axes=F,xlab="",ylab="",pch=c(22,1,2),cex=c(L,L*0.886,L*0.568))
}
0095デフォルトの名無しさん2013/01/14(月) 07:39:35.59
>>81 十進BASIC
LET s=2
SET WINDOW -s,s,-s,s
PLOT LINES:-1,1;1,1;1,-1;-1,-1;-1,1
DRAW circle
PLOT LINES:0,1;0.866,-0.5;-0.866,-0.5;0,1
END
0096デフォルトの名無しさん2013/01/14(月) 13:56:15.80
>>81
WebGL
http://api2ch.appspot.com/
0097デフォルトの名無しさん2013/01/14(月) 22:48:46.16
>>81 Asymptote
size(10cm);
draw((-1,1)--(1,1)--(1,-1)--(-1,-1)--(-1,1));
draw(circle(0,1));
draw((0,1)--(0.866,-0.5)--(-0.866,-0.5)--(0,1));
0098デフォルトの名無しさん2013/01/15(火) 22:04:53.33
お題:英小文字だけからなる文字列が与えられる。1回の操作で1文字だけ大文字小文字
変換ができる。この文字列の各文字の大文字、小文字の組合せをもれなく重複なく求めよ。
例 abc のとき
abc
abC
aBC
aBc
ABc
ABC
AbC
Abc
0099デフォルトの名無しさん2013/01/16(水) 00:00:41.77
>>64
>f:=method(n,a:=5 sqrt;2**n-(((1+a)/2)**(n+2)/a)round)

面白そうな言語だが、何故この式でいいのか判らんw
アルゴリズムの勉強が必要かな...
0100デフォルトの名無しさん2013/01/16(水) 06:56:24.27
>>98
ttp://ideone.com/6lTnlf
0101片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/16(水) 16:01:11.70
>>98 http://codepad.org/Sk44wFEJ
0102デフォルトの名無しさん2013/01/16(水) 20:01:29.00
>>99
やっていることは maxima でかくと
f(n):=2^n-fib(n+2);
0103デフォルトの名無しさん2013/01/16(水) 21:08:37.17
>>98 Io言語
f:=method(s,n:=s size;a:=s asMutable
for(i,0,2**n-1,g:=i^i/2
for(j,0,n-1,a atPut(j,s at(j)-g at(j)*32))
a println))

Io> f("new")
new
New
NEw
nEw
nEW
NEW
NeW
neW
0104デフォルトの名無しさん2013/01/17(木) 21:23:35.92
>>98 Maxima
f(s):=(n:slength(s),print(s),
g(x):=if x>0 then (g(x-1),s:sinvertcase(s,x,x+1),print(s),g(x-1)),
g(n));

(%i42) f("xyz");
xyz
Xyz
XYz
xYz
xYZ
XYZ
XyZ
xyZ
0105片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/17(木) 21:57:47.46
皆優秀だな。俺よりコード短い。
お題:緯度と経度のペアを二つ入力すると直線距離を返すプログラムを書け。
0106デフォルトの名無しさん2013/01/17(木) 22:04:11.77
>>105
・球面沿いの最短距離
・2店間の最短距離(地面貫通)
の2つありますね。
0107片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/17(木) 22:10:32.91
じゃあ、球面沿いでお願いします。
0108デフォルトの名無しさん2013/01/17(木) 22:55:18.87
>>105
プログラミングやってるなら知ってて当然のGrayCodeへの写像知ってるか知らないかの差
0109デフォルトの名無しさん2013/01/18(金) 01:24:06.15
>>105
ttp://ideone.com/ViPo6D

-- Google map 距離測定ツール ----
東京駅
35.681377 139.766086
アルゼンチンのブエノスアイレス
-34.603722 -58.381595
距離
18383.6 km

-- 当PG ------------------------
地点 1→2の
・球面上の最短距離 = 18321.922334km
・最短距離(地下トンネル) = 12606.789592km

-- 誤差 ------------------------
-0.3355%
0110デフォルトの名無しさん2013/01/18(金) 06:55:19.03
山は貫通しますか?
0111デフォルトの名無しさん2013/01/18(金) 07:20:11.94
>>105 Maxima
f(x1,y1,x2,y2):=(r:%pi/180,
6378.137*acos(sin(y1*r)*sin(y2*r)+cos(y1*r)*cos(y2*r)*cos(x2*r-x1*r)));

(%i60) float(f(139.766086,35.681377,-58.381595,-34.603722));
(%o60) 18383.55983532794
01121092013/01/18(金) 07:35:58.01
>>111ああ、半径6378.137kmですね。
ちゃんと調べれば良かった…。

直しました。
ttp://ideone.com/B5TaAq
0113デフォルトの名無しさん2013/01/18(金) 07:39:27.27
>>110
さだまさしさんの防人の詩の一節ですか?
教えて〜ください。
0114デフォルトの名無しさん2013/01/18(金) 18:22:58.41
誰が地球だと言ったんだ?
0115デフォルトの名無しさん2013/01/18(金) 19:10:22.15
消坊って、そういうの嬉しそうに言うよね。
誰が同じ星の上だと言ったんだ?、くらい無意味だな。
0116デフォルトの名無しさん2013/01/18(金) 23:03:03.69
直線がいつの間にか曲がってる
0117デフォルトの名無しさん2013/01/19(土) 00:07:01.24
誰か、強い重力を放ってるのが居るな。
0118デフォルトの名無しさん2013/01/19(土) 01:39:55.28
>>115 スレタイ
コーディングと見たら、ともかく罵るのが紳士。
0119デフォルトの名無しさん2013/01/19(土) 02:04:14.86
お題:1から100の自然数を順序を問わすべて出力する再現性のある方法を10通り挙げよ。
0120デフォルトの名無しさん2013/01/19(土) 02:08:57.17
>>119  訂正
お題:1から100の自然数を順序を問わずすべて出力する再現性のある方法を10通り挙げよ。
0121デフォルトの名無しさん2013/01/19(土) 06:12:37.59
お風呂に肩まで浸かって百まで数える
0122デフォルトの名無しさん2013/01/19(土) 09:47:30.29
1,2,,,100
2,3,,,100,1
0123デフォルトの名無しさん2013/01/19(土) 12:04:33.35
(1..100).each { println it }
0124片山博文MZボット ◆0lBZNi.Q7evd 2013/01/19(土) 13:03:48.55
>>120 #include <stdio.h>
int main(void) {
int i, j;
for(j = 0; j < 10; j++) {
for(i = 1; i <= 100; i++) printf("%d ", (i + j) % 100 + 1);
printf("\n");
}
return 0; }
0125デフォルトの名無しさん2013/01/19(土) 21:54:27.61
>>122-124
全部0点
0126片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/19(土) 22:40:04.08
>>125 問題文が言葉足らず。
0127デフォルトの名無しさん2013/01/19(土) 23:11:10.80
1〜100の自然数を適当に取り出す組み合わせは
100の階乗、つまり 9.33262154439e+157 通りあるワケだが、
取り出される数に再現性のある方法を 10通り挙げよ。
という意味だろう。

例えば
 int data[100] = { 1, 2, … 99, 100 };
として、

方法 1. for(i=0; i<100; i++) printf("%d ", data[i]);
方法 2. for(i=a=0; i<100; i++) { printf("%d ", data[a % 100]); a += 3; }
方法 3. for(i=a=0; i<100; i++) { printf("%d ", data[a % 100]); a += 7; }
 …
方法 10. …

みたいな
0128デフォルトの名無しさん2013/01/21(月) 22:00:08.14
お題:与えられた自然数Nの3進数表示が、これを逆に並べ替えた数字の列と一致するかどうか調べ真偽値を返す関数。(2013年センター試験より)
0129デフォルトの名無しさん2013/01/21(月) 23:22:13.66
>>128
n=10
p (w=n.to_s(3))==w.reverse
0130デフォルトの名無しさん2013/01/21(月) 23:34:56.83
#include <stdio.h>

bool func(int n)
{
char s[100];
int i, j;
for (i = 0; n; ++i)
{
s[i] = '0' + n % 3;
n /= 3;
}
for (--i, j = 0; j < i; ++j)
{
if (s[i] != s[j])return 0;
--i;
}
return 1;
}

int main()
{
printf("%d¥n", func(10));
return 0;
}
0131デフォルトの名無しさん2013/01/23(水) 06:40:37.29
お題:array[26]={0,1, ... 25} のような構造の配列が百個ある。これらの配列は、次の規則に従い回転する。

・配列0は、一回の入力で各要素内のデータがひとつずれる(例:a[0] == 0 => a[0] == 1、a[1] == 1 => a[1] == 2)。
・配列1は、配列0が一回転するとき、各要素内のデータがひとつずれる(例:a[0] == 25 => a[0] == 0 のとき、 b[0] == 0 => b[0] == 1)。
・配列2から配列99までも同様に、ひとつ前の配列が一回転するとき、各要素内のデータはひとつずれる。

入力された数値は、これらの配列要素0番目の値をキーとし、排他的論理和で変換されていく(例:value ^= a[0]、value ^= b[0] .... value ^= N[0])
変換に用いる配列の順番は配列0〜99の順とし、各配列は入力数値を変換後に回転するものとする。
また、入力される数値の範囲は0〜255までとする。

上記の関数を作成し、数値 123 を千回入力したときの変換結果を求めよ。
01321312013/01/23(水) 07:14:17.08
>>131 訂正
上記の関数を作成し、数値 123 を配列99が一回転するまで入力したときの変換結果を求めよ。
0133片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/24(木) 00:34:06.50
>>130-131 #include<stdio.h>
int i,j,n,aa[100][26];
int rot(int *a){for(int i=0;i<26;i++){a[i]=(a[i]+1)%26;}return !a[0];}
int f(int n){for(i=0;i<100&&rot(aa[i]);i++);
for(j=0;j<100;j++)n^=aa[j][0];return n;}
int main(void){
for(i=0;i<100;i++)for(j=0;j<26;j++)aa[i][j]=j;
printf("入力せよ:");scanf("%d",&n);
do{n=f(n)}while(i<100);
printf("結果:%d\n",n);
return 0;} 携帯から
0134片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/24(木) 00:49:10.84
お題:英単語を改行で区切っただけの辞書ファイルからランダムにクロスワードパズル(の解答データ)
を作成するプログラムを作れ。ただしサイズは25マス×25マス以下に制限する。
0135片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/24(木) 01:23:48.51
>>134の続き
英単語は全て大文字とし、ハイフンやアポストロフィは含まないものとする。
同じ単語は2つ以上現れないものとする。
解答データは25×25文字のテキストとする。英字が入らないマスは'#'で表すものとする。
0136デフォルトの名無しさん2013/01/25(金) 01:19:20.38
>>131
http://codepad.org/IAw1LyuD
01371362013/01/25(金) 05:14:59.44
間違ってた orz
>> 131
http://codepad.org/Ut6SVwft
0138デフォルトの名無しさん2013/01/25(金) 09:13:01.14
>>131,132
#include <stdio.h>
int main(){
int n = 123;
for (int i = 0; i < 10; ++i)n ^= i;
printf("%d¥n", n);
return 0;
}

実行結果:122
0139デフォルトの名無しさん2013/01/26(土) 01:52:02.07
>>131とか誰か分かりやすく書き換えてくれよ
何度読んでも意味がわからない
みんなよく分かるね
0140デフォルトの名無しさん2013/01/26(土) 02:25:29.69
>>139
車の距離計に置き換えたらわかりやすいんじゃないかな。
>>131を乗用車の 7桁距離計に例えて書き換えると、、、

> お題:array[10]={0,1, ... ,8,9} のような構造の配列が 7個ある。これらの配列は、次の規則に従い回転する。
> ・配列0(100m表示)は、一回の入力で各要素内のデータがひとつずれる
> ・配列1(1km表示)は、配列0が一回転するとき、各要素内のデータがひとつずれる
> ・配列2(10km表示)から配列99までも同様に、ひとつ前の配列が一回転するとき、各要素内のデータはひとつずれる。
> ある入力された数値(value)は、これら 7個の配列要素0番目の値(運転手に見えている数値)をキーとし、
> 排他的論理和で変換されていく(例:value ^= a[0]、value ^= b[0] .... value ^= f[0]、value ^= g[0])
> 変換に用いる配列の順番は配列0〜6の順とし、各配列は入力数値を変換後に回転するものとする。
> また、入力される数値(value)の範囲は0〜255までとする。
> 上記の関数を作成し、数値 123 を千回入力したときの変換結果を求めよ。

ただ、
> 変換に用いる配列の順番は配列0〜6の順とし、各配列は入力数値を変換後に回転するものとする。
が微妙。言葉通りだとすると、変換後は全ての配列が1つ回転するのかな?
それは、速度計で言うと 123456.7km の次は 234567.8kmという事を意味するけどそれで良いのか?
「配列0がひとつ回転する」の 123456.8kmではないのか?
01411402013/01/26(土) 02:27:59.50
>>140
× > それは、速度計で言うと 123456.7km の次は
○ > それは、距離計で言うと 123456.7km の次は
0142デフォルトの名無しさん2013/01/26(土) 02:32:23.65
「数取器」の方が分かりやすいか。
1度ボタンを押す=1入力
0143デフォルトの名無しさん2013/01/26(土) 08:49:05.25
何となく分かった
0144デフォルトの名無しさん2013/01/26(土) 16:21:09.40
頭悪いんだな
0145デフォルトの名無しさん2013/01/26(土) 18:05:55.94
>>45や>>119などにも言えるが、問題としての体をなしていないようなものに対して
漫然と回答してしまう方が頭が悪い
0146デフォルトの名無しさん2013/01/26(土) 18:38:05.09
クイズスレなんだからそこまで厳格でなくてもいいんだよ
0147デフォルトの名無しさん2013/01/26(土) 18:42:42.00
クイズだから厳格でなくてもいいってどういう理屈だよw
0148デフォルトの名無しさん2013/01/26(土) 19:15:02.86
(めんどくせー)
0149片山博文MZパンク ◆0lBZNi.Q7evd 2013/01/27(日) 07:15:00.13
難しすぎた? ヒント要る?
0150デフォルトの名無しさん2013/02/02(土) 11:47:47.82
お題:自然数m、nが与えられたとき、mからnの区間にある平方数の個数を求めよ。
(1<m<n<100000000)
0151デフォルトの名無しさん2013/02/02(土) 23:31:11.49
>>150
#include<stdio.h>
#include<math.h>
main(){
int m,n;
scanf("%d %d",&m,&n);
printf("%d\n",(int)sqrt(n)-(int)sqrt(m-1));
}
0152デフォルトの名無しさん2013/02/03(日) 07:46:49.19
お題:正20面体の任意の4つの頂点の座標値が与えられたとき
この多面体のすべての頂点の座標値を出力せよ。
座標値の表現方法、出力順は自由。
0153デフォルトの名無しさん2013/02/04(月) 19:09:02.47
お題:一辺の長さがLの正三角形に内接する円に内接する正三角形の面積を求めよ。
0154デフォルトの名無しさん2013/02/04(月) 20:31:17.57
>>153
#include <stdio.h>
#include <math.h>

int main(void)
{
 double L, s, t, r;

 printf ("正三角形の1辺の長さ : ");
 scanf ("%lf", &L);

 /* 内接円の半径 r */
 s = (L*3)/2;              // ヘロンの公式より
 t = sqrt( s*((s-L)*(s-L)*(s-L)) ); // 三角形の面積
 r = t/s;                // 内接円の半径 r = 内接する三角形の中心から各頂点までの長さ

 /* 半径 r の円に内接する正三角形の面積 */
 s = (3 * r * (r/2) * sqrt(3))/2;

 /* 結果 */
 printf ("一辺が %f cm の正三角形に内接する"
  "半径 %f cmの円に内接する"
  "一辺が %f cmの正三角形の面積は : %f 平方cm", L, r, r, s);

 // 間違ってたら罵ってください
 return 0;
}
0155デフォルトの名無しさん2013/02/05(火) 06:43:29.06
入力の単位分からないのに
結果の単位決まってんだな
0156デフォルトの名無しさん2013/02/05(火) 23:23:25.63
お題:英大文字(A~Z)だけで構成される文字列を、2から始める素数列に対応づけ、暗号化後、復号化せよ。
復号化後の文字がただひとつに決まる(例:23と、2,3を区別)ように、暗号化時に適宜、空白1つを挿入すること。
0157デフォルトの名無しさん2013/02/10(日) 08:57:11.24
お題:48個目のメルセンヌ素数 2^57885161-1 が見つかった。
この数の最後の10桁を求めよ。
0158デフォルトの名無しさん2013/02/10(日) 12:12:11.80
>>157
n=57885161
a=1
n.times{|x|a*=2;a=a%10000000000}
p a-1

実行結果
1724285951
10.19s user 0.02s system 99% cpu 10.310 total
0159デフォルトの名無しさん2013/02/10(日) 14:03:23.52
>>157
#include <stdio.h>

int main(){
long long int n = 1, i;
for (i = 0; i < 57885161; ++i) {
n *= 2;
n %= 10000000000;
}
printf("%lld¥n", n - 1 );
return 0;
}

// time ./a.out
// 1724285951
// ./a.out 0.50s user 0.00s system 98% cpu 0.510 total
0160デフォルトの名無しさん2013/02/10(日) 14:10:26.42
print (2 ** 57885161 - 1) % 10

% python2 hoge.py
1
0161デフォルトの名無しさん2013/02/10(日) 15:25:13.04
>>160
ボケがつまらん
0162デフォルトの名無しさん2013/02/10(日) 16:59:46.76
>>157
dc
2 57885161 10 10 ^ | 1 - p
1724285951
0163デフォルトの名無しさん2013/02/10(日) 18:00:17.75
dcは瞬く間に解が出るな
0164デフォルトの名無しさん2013/02/10(日) 18:53:40.29
dcというのは、なんという名前のプログラミング言語でしょうか?
0165デフォルトの名無しさん2013/02/10(日) 20:00:38.35
>>164
http://www.linuxcertif.com/man/1/dc/ja/
0166デフォルトの名無しさん2013/02/11(月) 07:24:09.83
>>157 Io言語
powerMod := method(a, b, m,
r := 1
for(i, 0, b log2 floor,
if(b at(i) == 1, r = r * a % m)
a = a * a % m
)
r
)

Io> powerMod(2,57885161,10**10)-1
==> 1724285951
0167デフォルトの名無しさん2013/02/11(月) 19:45:02.57
>>157
Clojure
(prn (dec (.modPow (bigint 2) (bigint 57885161) (bigint 10000000000))))
0168デフォルトの名無しさん2013/02/11(月) 23:10:36.72
お題:8桁の整数12345678に下のような操作を100回繰り返してできる整数を求めよ。
操作
左から1,2,3,4,5,6,7,8番目の数字をそれぞれ左から2,4,6,8,1,3,5,7番目に移す。
つまり、ABCDEFGHをEAFBGCHDにする.
(灘中学入試問題より)
0169デフォルトの名無しさん2013/02/11(月) 23:35:12.74
printf("87654321");
0170デフォルトの名無しさん2013/02/12(火) 18:44:34.31
>>168 J言語
a =: "."0": 12345678
b =: /:"."0": 24681357
, ":"0 b&{ ^: 100 a
48372615
0171デフォルトの名無しさん2013/02/13(水) 02:12:33.47
>>169
wwwwwwwwwwwwwwwwwwwwwww
0172デフォルトの名無しさん2013/02/15(金) 01:48:32.23
お題:将棋盤の左下隅からいちばん外側の升目を右回りに N 舛だけ移動したときの
位置 P を求めよ。左下隅、左上隅、右上隅、右下隅をそれぞれ 99、91、11、19 とする。
例 N = 15 のとき P = 21
0173デフォルトの名無しさん2013/02/15(金) 08:25:35.83
暗算出来る算数の問題ばっかり
0174デフォルトの名無しさん2013/02/15(金) 18:11:13.29
>>172 Io言語
f := method(N,
a := 20 - N % 32
g := method(p, (p abs - 3)max(1)min(9) )
g(a) * 10 + g(8 - a)
)

Io> f(15)
==> 21
Io> f(2013)
==> 69
0175デフォルトの名無しさん2013/02/16(土) 00:43:00.03
>>172 J言語
f =: monad def '(32|y){(99-a),(91-10*a),(11+a),19+10*a=.i.8'
f 15
21
0176片山博文MZパンク ◆0lBZNi.Q7evd 2013/02/20(水) 17:01:36.84
お題:Webメーラーを作れ。
0177デフォルトの名無しさん2013/02/22(金) 19:51:39.41
お題:標準入力からの入力をそのまま標準出力へ出力するプログラム。
0178デフォルトの名無しさん2013/02/22(金) 19:57:23.28
#include<stdio.h>
int main() {
int ch;
while (EOF != (ch = getchar())) putchar(ch);
return 0;
}
0179デフォルトの名無しさん2013/02/22(金) 22:01:31.45
>>177 Io言語
File standardInput contents print
0180デフォルトの名無しさん2013/02/23(土) 10:43:04.30
>>177
J

stdout stdin ''
0181デフォルトの名無しさん2013/02/23(土) 10:49:24.61
整数(1〜10程度でよい)を入力させ、中心から始まる螺旋状の数列を表示せよ。
例にあるハイフンは調整のためであり、表示は無用とする。

入力例 1:
1
出力例 1:
---5---4---3
---6---1---2
---7---8---9

入力例 2:
2
出力例 2:
--17--16--15--14--13
--18---5---4---3--12
--19---6---1---2--11
--20---7---8---9--10
--21--22--23--24--25
0182デフォルトの名無しさん2013/02/23(土) 16:32:26.69
>>181 J
spiral =: monad define
a=.1 1$1
n=.2
for. i.y do.
R=.|.n+i.{.$a
n=.n+#R
U=.|.n+i.1+#R
n=.n+#U
L=.n+i.#U
n=.n+#L
D=.n+i.1+#L
n=.n+#D
a=.D,~L,.U,a,.R
end.
a
)

spiral 1
5 4 3
6 1 2
7 8 9
0183デフォルトの名無しさん2013/02/23(土) 18:37:02.42
>>177
Lua

io.write(io.read("*a"))
0184片山博文MZパンク ◆0lBZNi.Q7evd 2013/02/25(月) 00:29:36.63
お題:英文を入力すると、それに対応する発音記号の列を出力するプログラムを書け。
0185デフォルトの名無しさん2013/02/26(火) 23:26:53.43
自己顕示欲を満たす為だけに

両片山氏
0186デフォルトの名無しさん2013/02/27(水) 13:04:06.23
>>177
lex

%%
0187デフォルトの名無しさん2013/03/02(土) 15:21:58.67
>>181
#include<stdio.h>
#define MAX(x,y)(x>y?x:y)
main(){
int n,x,y;
scanf("%d",&n);
for(y=~n++;++y<n;puts(""))
for(x=-n;++x<n;)printf("%4d",1+MAX(MAX(-MAX(-(4*x*x-x+y),-(4*x*x-3*x-y)),4*y*y+y-x),4*y*y+3*y+x));
}
0188片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/10(日) 23:49:53.56
お題:Phusion PassengerをWindowsに移植せよ
0189片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/11(月) 00:31:44.34
お題:テキストファイルwords.txtに改行区切りの正しい英単語のリストが記されている。
これを元に入力された英文のスペルチェックを行うプログラムを作れ。
スペルの間違った箇所を{{原文の単語::修正候補1||修正候補2||修正候補3}}のように出力し、その他は原文のまま出力すること。
修正候補は原文の単語のスペルに最も近い3個の単語とする。
英単語はアルファベットとハイフンとアポストロフィで構成されるものとする。
その他のピリオドや空白などの文字はそのまま出力するものとする。
0190デフォルトの名無しさん2013/03/11(月) 00:45:48.30
> 原文の単語のスペルに最も近い

こんなあいまいな仕様でお題とかバカ過ぎ
0191片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/11(月) 01:07:23.09
2単語間の距離を次のように定義する。
1)同じ単語なら距離はゼロ。
2)アルファベット1字違うなら距離は1増える。
3)アルファベット1字多いか足りないならなら距離は2増える。
4)ハイフンが1字多いか足りないなら距離は1増える。
5) 2)〜4)の組み合わせなら考えられる組み合わせの最短距離をその単語の距離とする。
???これでいい?
0192片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/11(月) 01:23:19.30
あっ、アポストロフィを忘れてた。

2単語間の距離は適当に定義すること。これでいいや
0193デフォルトの名無しさん2013/03/11(月) 01:44:42.56
>>190
もしかしてSEいないとプログラミングできないタイプ?
0194デフォルトの名無しさん2013/03/11(月) 01:48:08.20
アホ SE がいると混乱するので、どっかいってて下さいな
0195片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/11(月) 02:34:02.39
>>184
単語ごとに辞書を引いて発音記号を調べて出力するだけじゃん。出題者のばーか
0196デフォルトの名無しさん2013/03/11(月) 07:06:28.14
クソスレ乙w
0197デフォルトの名無しさん2013/03/11(月) 20:58:43.33
大喜利スレなんだから簡単なお題でもいいと思うわけ。
0198片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/16(土) 23:26:30.95
お題:与えられた文字列の先頭と終端にある空白文字の並びを取り除く関数を作れ。
0199片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/16(土) 23:46:37.41
お題:ある整数が半角数字の文字列で入力された時、それを漢数字表記に変換するプログラムを作れ。
0200片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/16(土) 23:48:36.98
お題:逆に漢数字を半角数字に変換するプログラム。
0201デフォルトの名無しさん2013/03/17(日) 11:16:52.48
お題:長辺の長さがA、短辺の長さがBの長方形の紙がある。対角の頂点を重ねて折る。
その折り目の長さを求めよ。
0202デフォルトの名無しさん2013/03/17(日) 12:38:46.20
>>201
#include<stdio.h>
#include<math.h>
main(){
double a,b;
scanf("%lf%lf",&a,&b);
printf("%f",sqrt(b*b+b*b*b*b/a/a));
}
0203デフォルトの名無しさん2013/03/17(日) 19:35:06.70
>>201 Io
f:=method(a,b,(a*a+b*b)sqrt*b/a)

Io> f(4,3)
==> 3.75
0204デフォルトの名無しさん2013/03/18(月) 06:57:14.46
>>198 J
ltrim =: monad def'((''@''=y)i.0)}.y'
rtrim =: ltrim &. |.
trim =: rtrim @ ltrim

'[',(trim '@@@a bc@@'),']'
[a bc]
'[',(ltrim '@@@a bc@@'),']'
[a bc@@]
'[',(rtrim '@@@a bc@@'),']'
[@@@a bc]
実際には空白文字のところを @ にしています。
0205デフォルトの名無しさん2013/03/18(月) 07:29:07.38
>>198 Io
trim:=method(s,
i:=0
j:=s size-1
while(s at(i)==32,i=i+1)
while(s at(j)==32,j=j-1)
s slice(i,j+1)
)

Io> writeln("[",trim("@@a bc@@"),"]")
[a bc]
0206デフォルトの名無しさん2013/03/18(月) 18:16:50.56
>>198 Lua
trim=function(s)return s:match("^%s*(.-)%s*$")end

> print("["..trim("@@@a bc@@@").."]")
[a bc]
0207デフォルトの名無しさん2013/03/19(火) 06:53:43.43
お題:緯度と経度を与えると北方向への角度を返す関数を作成せよ。(画面上方を0度とする)
0208デフォルトの名無しさん2013/03/19(火) 07:28:02.80
画面上方て
0209デフォルトの名無しさん2013/03/19(火) 07:38:01.50
PCディスプレイに、方位・傾きセンサーが必要だな。
02102072013/03/19(火) 08:03:26.96
コンパス的な関数を想定して、平面座標上での角度・方角という意味で書きたかったのですが・・・
お題になってませんね。日本語むづかしい。
0211デフォルトの名無しさん2013/03/19(火) 12:25:58.90
お題:長方形の紙がある。右の辺を左の辺にぴったり重ねて折る。折ったままの状態で
もう一度、右の辺を左の辺に重ねて折る。これを広げると左から谷折り、谷折り、山折
りの折り目がつく。N 回、紙を折ったときの折り目をめよ。山折りを A 、谷折りを V
で表す。
例
N=2 のとき VVA
N=3 のとき VVAVVAA
0212デフォルトの名無しさん2013/03/19(火) 12:38:10.25
ドラゴンカーブってやつですかね?
0213デフォルトの名無しさん2013/03/19(火) 12:55:03.26
>>212
折り目を90度にするとそうなります。
0214デフォルトの名無しさん2013/03/19(火) 21:38:11.71
>>211 J
f =: monado def ' ''VA''{~(,[:0&,-.@|.)^:(y)0'

f 4
VVAVVAAVVVAAVAAVVVAVVAAAVVAAVAA
f 5
VVAVVAAVVVAAVAAVVVAVVAAAVVAAVAAVVVAVVAAVVVAAVAAAVVAVVAAAVVAAVAA
0215デフォルトの名無しさん2013/03/19(火) 21:49:22.61
>>201 J
f =: %~*[:%:+&*:

4 f 3
3.75
0216デフォルトの名無しさん2013/03/19(火) 22:04:39.11
>>211 Io
f:=method(n,
a:=list
for(i,1,n,
a=list(a,
-1,
a clone reverse map(* -1)
)flatten
)map(v,if(v<0,"V","A"))join("")
)
0217デフォルトの名無しさん2013/03/20(水) 09:14:56.98
>>211
main(){
int i=0,n;
for(scanf("%d",&n);++i<1<<n;)
putchar("V A"[i/(i&-i)&2]);
}

n=4 VVAVVAAVVVAAVAA
n=5 VVAVVAAVVVAAVAAVVVAVVAAAVVAAVAA
n=6 VVAVVAAVVVAAVAAVVVAVVAAAVVAAVAAVVVAVVAAVVVAAVAAAVVAVVAAAVVAAVAA
0218デフォルトの名無しさん2013/03/20(水) 09:24:28.15
    _, ._
  ( ・ω・)んも〜
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)VVAVVAAVVVAAVAAVVVAVVAAAVVAAVAAVVVAVVAAVVVAAVAAAVVAVVAAAVVAAVAA
0219片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/20(水) 23:51:06.00
お題:レーヴェンシュタイン距離を求める
0220デフォルトの名無しさん2013/03/21(木) 22:25:15.88
おもしろそうなスレ発見
初心者でもいいっすか?罵ってください!
0221デフォルトの名無しさん2013/03/22(金) 01:42:43.70
>>220 どうぞどうぞ
0222デフォルトの名無しさん2013/03/22(金) 07:33:23.78
>>220
お題にしたがってコーディングしたら、罵ってやる
0223デフォルトの名無しさん2013/03/22(金) 18:41:17.42
お題:正方形のタイルをA 行 B 列に並べたときにあらわれる長方形の個数を求めよ。
例
A = 2、B = 2 のとき 9 個
A = 3、B = 4 のとき 60 個
0224デフォルトの名無しさん2013/03/22(金) 19:48:37.13
>>223
http://projecteuler.net/ ?
0225デフォルトの名無しさん2013/03/22(金) 23:25:48.19
>>219 Io
f:=method(a,b,as:=a size;bs:=b size
if(as<1,return bs)
if(bs<1,return as)
t:=List clone setSize(as)map(List clone setSize(bs)map(0))
t atPut(0,t at(0)map(i,v,i))map(i,v,v atPut(0,i))
for(i,1,as-1,
for(j,1,bs-1,
t at(i)atPut(j,
list(t at(i-1)at(j)+1,
t at(i)at(j-1)+1,
t at(i-1)at(j-1)+if(a at(i)==b at(j),0,1)
)min
)
)
)
t last last
)

Io> f("abc","xayzbc")
==> 3
0226デフォルトの名無しさん2013/03/24(日) 00:32:51.40
>>223
((a + 1) * a / 2) * ((b + 1) * b / 2)
0227デフォルトの名無しさん2013/03/24(日) 07:09:47.14
タイルの模様は
0228デフォルトの名無しさん2013/03/24(日) 07:33:08.84
>>227
無地です
0229デフォルトの名無しさん2013/03/24(日) 10:31:50.45
お題:平面座標上の点 A(x1, y1) から B(x2, y2) まで直線を引いたとき、点Aを基準とした直線ABの角度を求めよ。
*座標系の行列は行がY、列がXとする。
*角度の始まりは、点AのY軸の行数0(y == 0)を0°する。
例:
A(10, 10), B(10, 8) => 0°
A(10, 10), B(12, 8) => 45°
A(10, 10), B(12, 10) => 90°
A(10, 10), B(12, 12) => 135°
A(10, 10), B(10, 12) => 180°
...
A(10, 10), B( 8, 8) => 315°
0230デフォルトの名無しさん2013/03/24(日) 10:55:22.37
>>223 Io
f := method(a,b,(a+1)combinations(2) * (b+1)combinations(2))

Io> f(2,2)
==> 9
Io> f(20,20)
==> 44100
0231デフォルトの名無しさん2013/03/24(日) 14:11:28.35
>>229 Io
f : =method(x1,y1,x2,y2,
180-((x2-x1)atan2(y2-y1)*180/3.141592)round
)

Io> f(10,10,8,8)
==> 315
0232デフォルトの名無しさん2013/03/25(月) 20:09:01.51
お題:自然数 N が与えられたとき、各桁を一桁の数字として繰り返し足していき合計が
N になるかどうか判定する関数。
例
N=25、2+5+2+5+2+5+2+5=28 > 25 --> 偽
N=12、1+2+1+2+1+2+1+2=12 --> 真
0233片山博文MZパンク ◆0lBZNi.Q7evd 2013/03/26(火) 22:36:44.78
>>232 C++
bool f(int N) {
char s[64]; int sum, i;
sprintf(s, "%d", N);
for(sum = 0; sum < N; ) {
for(i = 0; s[i] != '\0'; i++)sum += s[i] - '0';
}return sum == N;}
0234デフォルトの名無しさん2013/03/26(火) 22:59:30.71
bool func(int a){
int b=0;
for(int i=a; i>0; i/=10) b+=i%10;
return a%b==0;
}
0235デフォルトの名無しさん2013/03/30(土) 23:49:07.35
お題:できる限り速くフーリエ変換を行う関数を作れ。
0236デフォルトの名無しさん2013/03/30(土) 23:54:32.42
つまり早くレスした人の勝ち
0237片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/01(月) 23:13:26.06
お題:平面幾何学の問題を解く人工知能を作れ

貴様らにできるかな?w
0238片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/02(火) 00:50:39.01
お題:'('と')'でできた文字列が与えられると、対応しているカッコの対の個数を返す関数。
例。"())" → 2
"(())" → 4
")(()()" → 5
0239片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/02(火) 01:14:41.42
お題:行列Aのサイズ(縦と横)と行列Aの各成分がCSV形式のテキストファイルで与えられている。Aの逆行列を掃き出し方で求めよ。
0240デフォルトの名無しさん2013/04/02(火) 04:15:37.84
>>233
ウンコード
0241デフォルトの名無しさん2013/04/02(火) 05:02:14.35
>>239
各成分はともかく、サイズのフォーマットはどうなってんの
一行目だけ2列でそこに縦横みたいな?
0242片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/02(火) 12:26:13.09
>>241
縦のサイズ,横のサイズ\n
(1,1)成分,(1,2)成分,...\n
(2,1)成分,(2,2)成分,...\n
...
みたいな感じで頼む
0243デフォルトの名無しさん2013/04/02(火) 12:37:14.56
>>242
ナニソノ微妙なフォーマット…単に列挙しただけのCSVじゃダメなのかYO
0244デフォルトの名無しさん2013/04/02(火) 17:14:31.93
>>242
正方行列ではないの?
0245デフォルトの名無しさん2013/04/02(火) 18:10:58.86
お題:二足歩行する猿が一匹いる。猿が今考えている内容を標準出力せよ。
02462322013/04/05(金) 05:10:26.49
>>234
例がまずかったでしょうか?
N=13、1+3+1+3+1+3+1=13
なども真のつもりです。
0247デフォルトの名無しさん2013/04/05(金) 18:03:31.68
お題:a * b * c の直方体がある。 a + b = c とする。この直方体の一つの頂点と
これに隣接する三つの頂点からなる四面体の表面積を求めよ。
0248デフォルトの名無しさん2013/04/05(金) 22:03:03.35
>>246
足す順序は上位桁から?
それとも入れ替えてもいいの?
0249デフォルトの名無しさん2013/04/05(金) 22:45:49.74
>>248
> 足す順序は上位桁から?
はい。

> それとも入れ替えてもいいの?
入れ替えはなしです。
0250デフォルトの名無しさん2013/04/05(金) 23:22:58.96
>>247
=(a+b)^2
っぽい
0251デフォルトの名無しさん2013/04/06(土) 22:03:31.63
>>247 Io
heron:=method(a,b,c,((a+b+c)*(b+c-a)*(a-b+c)*(a+b-c))sqrt/4)
f:=method(a,b,c,
heron((a*a+b*b)sqrt,(b*b+c*c)sqrt,(c*c+a*a)sqrt)+(a*b+b*c+c*a)/2
)

Io> f(1,2,3)
==> 9
Io> f(2,3,5)
==> 25
Io> f(3,5,8)
==> 64
Io> f(15,20,35)
==> 1225
0252デフォルトの名無しさん2013/04/08(月) 00:01:45.01
お題:0より大きく1より小さい循環小数を分数に変換せよ。
循環小数は循環する部分を丸括弧でくくった表記とする。
例
0.08(3) -> 1/12
0.(142857) -> 1/7
0.2(36) -> 13/55
0253デフォルトの名無しさん2013/04/08(月) 06:58:18.64
>>252
http://toro.2ch.net/test/read.cgi/tech/1313183984/655
丸括弧じゃなくて [ ] だけれども
0254デフォルトの名無しさん2013/04/09(火) 15:09:17.96
お題:自然数Nの倍数で10進表記で1または0からなる数の最小値を求めよ。
例
N=2 -> 10
N=21 ->10101
N=2013 -> 1101111
0255デフォルトの名無しさん2013/04/09(火) 20:07:52.30
>>252
http://codepad.org/HHzPs7yt
0256デフォルトの名無しさん2013/04/09(火) 20:43:53.43
>>252 Io
f:=method(s,
a:=s split(".","(",")")
b:=a at(1).. a at(2)
x:=c:=b asNumber-if(a at(1)=="",0,a at(1)asNumber)
y:=d:=10**(b size)-10**(a at(1)size)
while(y>0,t:=x%y;x=y;y=t)
(c/x).."/"..(d/x)
)

Io> f("0.08(3)")
==> 1/12
0257デフォルトの名無しさん2013/04/10(水) 04:08:24.64
>>254
http://toro.2ch.net/test/read.cgi/tech/1313183984/656
0258デフォルトの名無しさん2013/04/10(水) 04:31:42.75
>>255
parse() にみえる重複コードを処理したい
0259デフォルトの名無しさん2013/04/10(水) 12:46:30.18
>>254 Io
f:=method(n,
a:=b:=1
while((b=a asBinary asNumber)%n>0,a=a+1)
b
)

Io> f(777)
==> 10101
0260デフォルトの名無しさん2013/04/15(月) 11:55:15.89
お題:ある地点から1歩前へ進み右または左に向きを変え、つぎに前に2歩進み
右または左に向きを変え、というように歩数を1づつ増やしながら進む。
最初の地点へ戻るような道順をひとつ求めよ。道順は右(R)、左(L)を並べた
"LRRL..."などの文字列で表す。
0261デフォルトの名無しさん2013/04/15(月) 12:21:08.65
仮に原点(N0E0)に北(N)を向いているとして、
- 座標 向き
0 N0E0 N
L N1E0 W
LR N1E-2 N
LRR N4E-2 E
ってことなのかな。原点に戻れる気がしないぞw
0262デフォルトの名無しさん2013/04/15(月) 13:06:22.23
>>261
8n-1回か8n-2回方向転換したときに戻れる。
0263デフォルトの名無しさん2013/04/15(月) 13:24:47.00
char* returnable()
{
return("LLRLLL")
}
0264デフォルトの名無しさん2013/04/16(火) 07:17:02.10
>>260 Io
for(a,0,2**16,
x:=0
y:=1
v:=0
(b:=a asBinary)foreach(i,c,
i=i+2
v=(v+if(c==49,1,3))%4
x=x+list(0,i,0,-i)at(v)
y=y+list(i,0,-i,0)at(v)
)
if(x==0 and y==0,writeln(b translate("01","LR")))
)
実行結果
RRLRRR
RRRLRRR
RLLLLRLRRLLLLR
RLLLRLRLRLLLRL
(略)
RRRRLLLRRRRRLLL
RRRRRRRLRRRRRRR
0265デフォルトの名無しさん2013/04/16(火) 07:48:07.86
LとR逆にしたの表示すれば倍になるな
0266デフォルトの名無しさん2013/04/16(火) 15:37:40.90
スタックで楽勝とか思ったら来た道戻れないのね
0267デフォルトの名無しさん2013/04/16(火) 19:32:00.72
お題:1人から最大N人の人が集まる予定である。集まった人にみかんを均等に
配るにはみかんをいくつ用意すればよいか?
たとえば最大10人の予定でみかんを10個用意して来た人が7人だと3個あまってしまう。
0268デフォルトの名無しさん2013/04/16(火) 19:33:35.31
>>267
N!個
0269デフォルトの名無しさん2013/04/16(火) 19:38:05.55
>>268
N個ってwwww
N個じゃダメって上に書いてあるじゃん馬鹿なの?w
0270デフォルトの名無しさん2013/04/16(火) 19:43:46.92
>>269
もちつけ
そして、ジックリ見るか文字を拡大しろ
0271デフォルトの名無しさん2013/04/16(火) 19:47:03.87
2〜Nの素数の積か
0272デフォルトの名無しさん2013/04/16(火) 20:24:11.61
>>267
n#
0273デフォルトの名無しさん2013/04/16(火) 20:42:06.00
ジュースにして分ける
0274デフォルトの名無しさん2013/04/17(水) 05:36:12.41
2からNまでの最小公倍数
0275デフォルトの名無しさん2013/04/17(水) 07:40:31.74
>>267 Io
gcd:=method(a,b,if(b==0,a,gcd(b,a%b)))
lcm:=method(a,b,a*b/gcd(a,b))
f:=method(n,x:=1;for(i,2,n,x=lcm(x,i));x)

Io> for(i,1,15,write(f(i)," "))
1 2 6 12 60 60 420 840 2520 2520 27720 27720 360360 360360 360360
0276デフォルトの名無しさん2013/04/17(水) 07:46:24.11
>>267
愛媛に引っ越す
0277デフォルトの名無しさん2013/04/17(水) 17:20:23.90
   |番兵|__
  ( ・ω・)〜♪
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)12 60 60 420 840 2520 2520 27720 27720 360360 360360 360360
0278片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/17(水) 23:25:15.04
化学っぽい問題を一つ。

お題:水素原子、炭素原子、塩素原子からなる分子量100以下の分子の組合せの個数を求めよ
0279片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/17(水) 23:52:36.56
ヒント:元素の組合せにより結合の角度は決まっている。分子量の小さい順に幅優先探索する。
原子が衝突する場合を除外して枝切りを行う。

この問題が解けたら秘密結社に入会できるかも?
0280デフォルトの名無しさん2013/04/18(木) 17:05:05.37
お題:2013!と2013^1749、どっちが大きい?
0281デフォルトの名無しさん2013/04/18(木) 17:16:11.53
>>280
Ruby
def fact(n); n == 0 ? 1 : n * fact(n - 1); end
fact(2013) <=> 2013 ** 1749
0282デフォルトの名無しさん2013/04/18(木) 17:21:43.00
2013!のほうがでかい。
0283デフォルトの名無しさん2013/04/18(木) 17:23:52.02
再帰よりループのほうが安心。
(1..2013).to_a.inject(1) {|r, n| r * n}
0284デフォルトの名無しさん2013/04/18(木) 17:41:00.74
>>283
(1..2013).inject(:*)
だけでいい
0285デフォルトの名無しさん2013/04/18(木) 17:54:53.57
>>284
シンボル渡せるのって1.9から?
1.8.6じゃno block given (LocalJumpError)となる。
0286デフォルトの名無しさん2013/04/18(木) 17:56:50.55
>>285
1.8.7
0287デフォルトの名無しさん2013/04/20(土) 09:05:11.75
お題:表計算ソフトで使われる列名 A,B,C,...,Z,AA,AB,AC,...,AZ,BA,BB,BC,...
をAを1番目とした番号に変換せよ。
0288デフォルトの名無しさん2013/04/20(土) 12:11:54.59
>>287
http://toro.2ch.net/test/read.cgi/tech/1313183984/657
0289デフォルトの名無しさん2013/04/20(土) 16:26:10.56
>>287 Io
f:=method(s,a:=0;s foreach(i,v,a=a+(v-64)*26**i);a)

Io> f("AA")
==> 27
Io> f("AAA")
==> 703
Io> f("IO")
==> 399
Io> f("LUA")
==> 1234
0290デフォルトの名無しさん2013/04/20(土) 22:58:12.23
>>289
間違えました。訂正します。
f:=method(s,a:=0;s asMutable reverse foreach(i,v,a=a+(v-64)*26**i);a)

Io> f("AA")
==> 27
Io> f("AB")
==> 28
Io> f("AAA")
==> 703
Io> f("AAB")
==> 704
Io> f("IO")
==> 249
Io> f("LUA")
==> 8659
02912882013/04/20(土) 23:26:19.91
>>290
一致しました http://ideone.com/wau5hB
0292デフォルトの名無しさん2013/04/21(日) 01:22:15.45
>>290
もっと単純でよかった。
f:=method(s,a:=0;s foreach(v,a=a*26+v-64);a)
0293デフォルトの名無しさん2013/04/22(月) 15:40:01.94
>>287
% Prolog

'表計算ソフトで使われる列名 A,B,C,...,Z,AA,AB,AC,...,AZ,BA,BB,BC,...をAを1番目とした番号に変換せよ'(_列名,_番号) :-
    '列名を文字順序番号ならびに変換'(_列名,_文字順序番号ならび),
    文字順序番号ならびを連続番号に変換(_文字順序番号ならび,0,_番号).

'列名を文字順序番号ならびに変換'(_列名,_文字順序番号ならび) :-
    findall(_文字順序番号,(
          sub_atom(_列名,_,1,_,_文字),
          文字順序番号(_文字,_文字順序番号)),
        _文字順序番号ならび).

文字順序番号(_文字,_文字順序番号) :-
    nth1(_文字順序番号,['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],_文字).

文字順序番号ならびを連続番号に変換([],_連続番号,_連続番号).
文字順序番号ならびを連続番号に変換([N|R],_番号_1,_連続番号) :-
    _番号_2 is _番号_1 * 26 + N,
    文字順序番号ならびを連続番号に変換(R,_番号_2,_連続番号).
0294デフォルトの名無しさん2013/04/22(月) 17:29:43.81
>>287
% Prolog

'表計算ソフトで使われる列名 A,B,C,...,Z,AA,AB,AC,...,AZ,BA,BB,BC,...をAを1番目とした番号に変換せよ'(_列名,_番号) :-
    atom_codes(_列名,_文字コードならび),
    順序番号に変換する(_文字コードならび,_番号).

順序番号に変換する([],0).
順序番号に変換する([_文字番号|_残りならび],_番号) :-
    length(_残りならび,_乗),
    順序番号に変換する(_残りならび,_番号_1),
    _番号 is (_文字番号 - 64) * (26 ^ _乗) + _番号_1.
0295片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/22(月) 22:19:19.82
お題:頂点座標から多角形の面積を求める
02962882013/04/23(火) 05:25:47.55
>>295
http://toro.2ch.net/test/read.cgi/tech/1313183984/658
0297デフォルトの名無しさん2013/04/23(火) 08:17:08.40
>>295
一般的な質問です。
多角形の頂点座標と言う場合ですが、閉路をなすように座標を並べ直すところから
やる必要があるものですか?
0298片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/23(火) 10:48:33.95
>>297
そうなると図形が一意じゃないので座標の順序は与えられるものと考えるのが自然
0299片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/23(火) 10:50:52.26
お題:与えられた多角形の内部に与えられた座標の点が含まれるか判定
0300デフォルトの名無しさん2013/04/23(火) 11:21:33.59
>>295
% Prolog

頂点座標から多角形の面積を求める(_閉路をなす多角形の頂点座標ならび,_多角形の面積) :-
    '多角形の面積は iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計となる。(ただし Yn+1 = Y1 Y0 = Yn)'(_閉路をなす多角形の頂点座標ならび,_多角形の面積).

'多角形の面積は iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計の半分となる。(ただし Yn+1 = Y1 Y0 = Yn)'(_閉路をなす多角形の頂点座標ならび,_多角形の面積) :-
    'ただし Yn+1 = Y1 Y0 = Yn'(_閉路をなす多角形の頂点座標ならび,_拡張した座標ならび),
    '多角形の面積は iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計の半分となる。'(_拡張した座標ならび,_多角形の面積).

'多角形の面積は iが1からnまで変化する範囲で Xi * (Yi+1 - Yi-1) の総計の半分となる。'(_拡張した座標ならび,_多角形の面積) :-
    findsum(U,(
          append(_,[(_x1,_y1),(_x2,_y2),(_x3,_y3)|_],_拡張した座標ならび),
          U is _x2 * (_y3 - _y1)),
        S),
    _多角形の面積 is S / 2.

'ただし Yn+1 = Y1 Y0 = Yn'([Y0,Y1|_残り座標ならび],_拡張した座標ならび) :-
    append([Y0,Y1|_残り座標ならび],[Y0,Y1],_拡張した座標ならび).

findsum(U,P,Sum) :-
    findall(U,P,L),
    sum(L,Sum).

sum([],0).
sum([A|R],Sum) :-
    sum(R,Sum1),
    Sum is Sum1 + A.
0301デフォルトの名無しさん2013/04/23(火) 11:22:18.98
>>298
ありがとうございました。
03023002013/04/23(火) 11:28:00.06
>>300
% まちがえました。

'ただし Yn+1 = Y1 Y0 = Yn'([_0,_1|_残り座標ならび],_拡張した座標ならび) :-
    append([_0,_1|_残り座標ならび],[_0,_1],_拡張した座標ならび).

% リスト(私はならびと呼んでいる)要素は Yではなく、(X,Y)でした。
要素を示すのには _0,_1 の方がよいでしょう。
0303デフォルトの名無しさん2013/04/23(火) 11:57:55.66
>>295
Ruby
x = [x1,x2,...,xn], y = [y1,y2,...,yn] とする。
((x+[x[0]]).zip(y+[y[0]]).each_cons(2).map{|p,q|p[0]*q[1]-p[1]*q[0]}.inject(:+)/2).abs
0304デフォルトの名無しさん2013/04/23(火) 12:04:24.15
>>298
?

「座標の順序は与えられるものとする」
とお断りを書くのが自然 だと思いますが。
0305片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/23(火) 16:54:53.75
すみません。
0306片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/23(火) 17:12:20.00
幾何学シリーズ続けます。

お題:多角形が線対称かどうか判定
0307片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/23(火) 17:24:30.94
>>306
ちょっと難しすぎたか。凸多角形に限定しよう。

ヒント:対称の線はある辺の中点か頂点の上を交わる。
0308デフォルトの名無しさん2013/04/24(水) 05:55:39.64
>>299
http://toro.2ch.net/test/read.cgi/tech/1313183984/659
0309デフォルトの名無しさん2013/04/24(水) 22:19:26.05
久々に来たら宿題スレになってた
0310デフォルトの名無しさん2013/04/24(水) 23:33:47.63
しかし、せっせと回答書いてるなw
0311片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/24(水) 23:58:41.07
今度は物理学。

お題:減衰するばねの振動の様子をコンソールで再現しなさい。ばねの先を'*'で表し、それを振動させなさい。
プログラムの中でフックの法則とニュートン則を使うこと。
0312デフォルトの名無しさん2013/04/25(木) 05:32:02.08
>>311
http://toro.2ch.net/test/read.cgi/tech/1313183984/660
0313デフォルトの名無しさん2013/04/26(金) 15:15:22.10
お願いですからfabsの前にstd::付けてくれませんか
どういうコンパイラ使ってんだよ
0314デフォルトの名無しさん2013/04/26(金) 19:17:42.84
>>31
gcc/g++ 4.7.2 http://ideone.com/pLfOZ5

http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library#C_standard_library
The only difference between these headers and the traditional C Standard Library headers is
that where possible the functions should be placed into the std:: namespace
(although few compilers actually do this).

(although few compilers actually do this).
(although few compilers actually do this).
(although few compilers actually do this).
(although few compilers actually do this).
(although few compilers actually do this).
0315デフォルトの名無しさん2013/04/26(金) 19:35:38.90
>>314
標準規格に逆らってそんな事を言われても
それにWikipediaがソースとかwww
0316デフォルトの名無しさん2013/04/27(土) 02:29:07.85
>>315
gcc やあの clang でも <c*> に std:: は要らないからね‥‥ std:: を強要するコンパイラって存在するの?
0317デフォルトの名無しさん2013/04/27(土) 05:56:23.61
bccがそうだぞ
例外が一つでもあればそれで十分
03183122013/04/27(土) 08:30:03.42
>>317
確認しました
0319デフォルトの名無しさん2013/04/27(土) 11:28:56.08
分かったら下手な反論するな
ボロが出るだけだぞQ
0320デフォルトの名無しさん2013/04/27(土) 12:37:55.26
心理学の先生乙
0321デフォルトの名無しさん2013/04/27(土) 13:06:21.17
それ皮肉にもなってないから
負けを認めろよカス
0322デフォルトの名無しさん2013/04/27(土) 13:50:16.41
いや俺QZじゃねーからそんな勝敗などどうでもいいです
0323デフォルトの名無しさん2013/04/27(土) 14:10:39.05
息を吐くように嘘をつくQ
0324デフォルトの名無しさん2013/04/27(土) 14:37:51.76
この先生、手におえないとなるとすぐQZ認定、朝鮮人認定して来ちゃうんだよね
ヤブ
0325デフォルトの名無しさん2013/04/27(土) 14:45:46.90
お前も面倒くさくなるとすぐに相手を心理学の先生認定してる癖に良く言うよ
0326デフォルトの名無しさん2013/04/27(土) 15:06:20.20
面倒だからじゃなくて>>317の名言の時点ですでにそう思ったよ
やぶ〜
0327デフォルトの名無しさん2013/04/27(土) 15:39:09.56
ワロタwww

ブーメラン決まりすぎだろw

頭の悪い奴はどこまで行っても頭が悪いんだな
0328デフォルトの名無しさん2013/04/27(土) 15:44:24.21
>>327
それいつものお前だからwww
本気で言ってるのかww
0329デフォルトの名無しさん2013/04/27(土) 15:51:48.90
負け犬の遠吠えにしか聞こえませんねえ
0330デフォルトの名無しさん2013/04/27(土) 16:00:23.74
都合が悪いからそう聞こえちゃうんじゃないの?
0331デフォルトの名無しさん2013/04/27(土) 16:09:09.51
お前にとって都合が悪いわけかそうかそうか
0332デフォルトの名無しさん2013/04/27(土) 16:16:19.27
>>331
そのレスじゃ会話が成り立ってないだろww
ちょっと無理があるんじゃない?
0333デフォルトの名無しさん2013/04/27(土) 16:18:35.15
そうかそうかよーくわかったぞ
0334デフォルトの名無しさん2013/04/27(土) 16:31:01.60
>>317が心理学厨
>>318が◆QZ
>>323が便乗QZ厨
>>324がそのストーカー

ってとこかな
本スレでやれ
0335片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/27(土) 21:32:44.70
お題:二体問題におけるケプラーの法則を模擬実験により検証しなさい。三次元での計算が分からない場合は
二次元でもよろしい。面積は小さな三角形に分解して計算すること。
0336片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/27(土) 21:43:01.50
QZに挫折感を味わってもらいたいので難問を用意しました
0337デフォルトの名無しさん2013/04/27(土) 22:25:09.08
ピタゴラスの三体問題をルンゲクッタ法により正しい結果が得られるように計算し
グラフィックで図示せよ
0338デフォルトの名無しさん2013/04/27(土) 22:33:47.95
リーマン予想を証明せよ
0339デフォルトの名無しさん2013/04/27(土) 22:39:16.97
>>338
お前自分で解ける題だけ出せよ

>>337はJavaで書かれたソースがあちこちに転がってるんで、C#に移植すればちゃんと動いた
0340片山博文MZパンク ◆0lBZNi.Q7evd 2013/04/27(土) 23:41:46.94
お題:次のようなシンプルなCSV形式ファイル「MATRIX.CSV」で与えられたサイズ無制限の実正方行列の逆行列を求めた後、検算せよ。
各成分の誤差は10の-5乗以下とする。逆行列がないときは「逆行列はありません」と表示せよ。
検算が成功したら逆行列を表示せよ。失敗したら「計算が合いません」と表示せよ。

(1,1)成分,(1,2)成分,…\n
(2,1)成分,(2,2)成分,…\n
…
0341デフォルトの名無しさん2013/04/28(日) 00:05:16.16
LU分解使っていいんか
0342デフォルトの名無しさん2013/04/28(日) 00:08:24.05
>>341 OK
0343デフォルトの名無しさん2013/04/28(日) 03:19:48.39
>>340
面倒臭くなったんでこれ改造して何とかしてよ
前宿題で出てたやつ

http://ideone.com/qeepAY
0344デフォルトの名無しさん2013/04/28(日) 03:33:52.05
お題:ヴィジュネル暗号で暗号・復号化する関数を作成せよ。
・平文は "programming" とする。
・鍵は任意とする。
0345デフォルトの名無しさん2013/04/28(日) 05:11:26.65
>>344 JavaScript

var toCipher = function( k, p ) {
  var ret = "";
  for (var i=0; i<p.length; i++)
    ret = ret + String.fromCharCode( 97 + ((p.charCodeAt(i)-97) + (k.charCodeAt(i%k.length)-97)) % 26);
  return ret;
};
var toDecry = function( k, c ) {
  var ret = "";
  for (var i=0; i<c.length; i++)
    ret = ret + String.fromCharCode( 97 + ((c.charCodeAt(i)-97) - (k.charCodeAt(i%k.length)-97) + 26) % 26);
  return ret;
};

var plain = "programming";
var key = "hoge";
var cipher = "";
alert( cipher = toCipher( key, plain ) );
alert( toDecry( key, cipher ) );

結果
wfukyosqpbm
programming
03463122013/04/28(日) 11:24:01.41
>>336
ご配慮感謝ですが、>>306 で既に十二分に挫折感を味わっておりますのであります。
いったいどうすればいいんだろう‥‥微塵もアイディアが沸いてきません、困った、困った‥‥。
0347デフォルトの名無しさん2013/04/28(日) 11:57:37.50
だからお前は頭が悪いんだって
自覚出来ない馬鹿って最悪だな
0348デフォルトの名無しさん2013/04/28(日) 12:07:36.65
>>347
ありがとうございます。
もっと罵ってください。
03493122013/04/28(日) 12:19:30.51
>>347
>>348
0350デフォルトの名無しさん2013/04/28(日) 12:35:40.16
>>349
マゾヒズムか
キモ
精神科の薬飲んで寝てろ
0351デフォルトの名無しさん2013/04/28(日) 12:47:54.69
>>350
気が済むまで罵っていてください。
03523122013/04/28(日) 13:02:35.48
>>350
もっともっと罵って!
0353デフォルトの名無しさん2013/04/28(日) 13:16:01.32
>>350
精神科の薬は持ち合わせてないので座薬でもいいですか?
0354デフォルトの名無しさん2013/04/28(日) 13:17:46.27
社会不適合者はいずれにしても近々強制的に精神科に連れていかれるハメになる
0355デフォルトの名無しさん2013/04/28(日) 13:23:24.91
>>350は自他ともに認める健常者
03563122013/04/28(日) 22:07:00.55
>>335
ケプラー第二則を検証すればいいですよね
http://toro.2ch.net/test/read.cgi/tech/1313183984/661
>>336
泣きそうですいや泣いています‥‥
0357デフォルトの名無しさん2013/04/28(日) 22:41:01.70
>>334
本スレってどこなの?
0358デフォルトの名無しさん2013/04/29(月) 00:17:11.58
お題:四角形がある。ひとつの頂点には同じ長さの辺が直角につながっている。この
頂点の対角の頂点もふたつの辺が直角につながっている。ふたつの辺の長さの和がAの
とき、この四角形の面積を求めよ。
0359デフォルトの名無しさん2013/04/29(月) 01:56:03.39
>>358
A^2/8 < S <= A^2/4
0360デフォルトの名無しさん2013/04/30(火) 12:22:57.85
>>357
多分このへん関連のスレは http://toro.2ch.net/test/read.cgi/tech/1364700745/ から派生したんだと思う
こっちに行くとコピペ回答で落第したらしい奴が「著作権がー」云々言って騒いでる
0361デフォルトの名無しさん2013/04/30(火) 18:26:58.77
お題:自然数Nが与えられたとき、Nの各桁の和をとり結果が一桁でなければ各桁の和
をとることを繰り返す。最後の一桁の数を求めよ。
例
412205725 -> 4+1+2+2+0+5+7+2+5=28
28 -> 2+8=10
10 -> 1+0=1
0362デフォルトの名無しさん2013/04/30(火) 18:29:48.07
Qは今http://toro.2ch.net/test/read.cgi/tech/1354393458/で精力的に問題を解いているよ
そっちでも罵倒されまくりだけれども
http://toro.2ch.net/test/read.cgi/tech/1354393458/348
http://toro.2ch.net/test/read.cgi/tech/1354393458/352
とかスレタイを利用して華麗にスルーしているよ

>自己愛性人格障害は自分への批判にはひと際敏感だから叩かれたら発狂せずにはいられない
が本当ならばQは人格障害じゃないんじゃない?
0363デフォルトの名無しさん2013/04/30(火) 18:36:07.83
・宿題の丸投げは問題文の著作権(著作権法 二十三条 公衆送信権)を侵害する。
・問題文には第三者の著作物が含まれている場合ある。
 著作権法第三十五条の規定により第三者の著作物が利用されている場合もある。
 問題丸投げは同条の規定外なので第三者の権利侵害にあたる
・丸投げを煽るテンプレは著作権侵害の教唆にあたる
・宿題丸投げはカンニングと同等の行為として学則による処罰の対象になる。
・悪質なカンニング行為は偽計業務妨害(刑法 二百三十三条)として捜査の対象になる。
・カンニング行為を煽っているテンプレはその教唆犯(刑法 六十一条)
0364デフォルトの名無しさん2013/04/30(火) 18:37:47.85
QZが今度はこんなところで自演質問しだしてる
マジで病気なんだな
0365デフォルトの名無しさん2013/04/30(火) 18:41:30.02
>>361
本科目の受講生より、こちらにて出題の課題を
インターネットに投稿している者がいるとの連絡を受けました。
今回の課題は学生の理解を深める為に個別レポートとして出題されたものであり、
問題の解答そのものを丸投げすることは課題の趣旨に反する行為となります。

初回の講義でお話しましたように、ソースコードの書き方には個人差があり、
過去に提出したレポートなどから本人が書いたものかどうか判別することは十分可能です。

他人が書いたソースコードをレポートとして提出することは重大な不正行為に当たります。
提出されたレポートにおいて不正が確認された場合、本学の懲罰規程に従い厳しく処罰されます。

締切りは明日の17時とまだ時間もいくらか残されていますので、
この問題を投稿した、または参考に読んでいる学生には自分の力で
今回の課題に取り組んで頂けることを期待しています。
0366デフォルトの名無しさん2013/04/30(火) 19:16:55.72
実質ここが宿題スレになってますね
0367デフォルトの名無しさん2013/04/30(火) 19:18:35.22
>>365
自前の連絡網で指摘したれ
てかこのスレをウォッチして、コピペ回答したやつを処分(大学講義なら不可、一般人向けなら出入り禁止)してやった方が教育って意味では有効だよ

大学の場合で、そこらじゅうでコピペ丸投げ丸写しってバカは不可が積み重なって留年落第だけど、それもある種の薬にはなる
0368デフォルトの名無しさん2013/04/30(火) 19:56:47.25
>>361
N%9
0369デフォルトの名無しさん2013/04/30(火) 19:58:52.65
九去法http://ja.wikipedia.org/wiki/%E4%B9%9D%E5%8E%BB%E6%B3%95だね
0370デフォルトの名無しさん2013/04/30(火) 20:05:57.95
ここで質問が解決したと思われるのにもかかわらず
わざわざ糞コードをうpするQZが出現すると予測
0371デフォルトの名無しさん2013/04/30(火) 20:15:22.15
このキチガイ、こっちにもお出ましか
0372デフォルトの名無しさん2013/04/30(火) 20:19:59.71
QZは静かなとき場所を狙って自演質問したり糞コードを上げる糞野郎、まさにム板の恥
このことからもQZがキチンであることは明白
0373デフォルトの名無しさん2013/04/30(火) 20:22:32.76
>>372
>キチン
キチン?何じゃそりゃ?
0374デフォルトの名無しさん2013/04/30(火) 20:27:33.07
動揺してるんじゃね?ww
0375デフォルトの名無しさん2013/04/30(火) 20:30:27.44
f x|x>=10 = f(x `mod` 10 + f(x `div` 10))
|otherwise = x
うpしてみた。
N%9 じゃあ 9%9=0 じゃない
0376デフォルトの名無しさん2013/04/30(火) 20:47:45.51
(n-1)%9+1
ってすればいいとおもう
0377デフォルトの名無しさん2013/04/30(火) 20:57:25.18
はいきた叩いた後の自演回答
0378デフォルトの名無しさん2013/04/30(火) 20:59:48.51
>>375 >>376
この状況で答えをレビューするのはスルーだからじゃない
QZの巧妙にして拙い自演レビュー
03793752013/04/30(火) 21:09:55.55
俺がQZなのか。
まあいいけど
(0-1)%9+1 = 9
haskellだと、(-1)`mod`9 = 8 になる
0380デフォルトの名無しさん2013/04/30(火) 21:19:57.22
>俺がQZなのか。
>まあいいけど
QZじゃない人はそんなこと言わない。
0381デフォルトの名無しさん2013/04/30(火) 21:22:51.85
>>379
`mod`ではなく`rem`の方
03823752013/04/30(火) 21:40:35.15
>>381
知らなかった、ありがとう
(-1)`rem`9 = -1
0383デフォルトの名無しさん2013/04/30(火) 22:12:04.26
QZ華麗にレス加速
0384デフォルトの名無しさん2013/04/30(火) 22:22:27.63
QZは今全裸でここを見ているんだろうな
なので俺も全裸になります
0385デフォルトの名無しさん2013/04/30(火) 23:45:38.67
QZは自己顕示欲を満たす為ならどんなスレでも荒らす寄生虫
0386 ◆QZaw55cn4c 2013/04/30(火) 23:58:49.62
>>335
中間報告続きです。
http://toro.2ch.net/test/read.cgi/tech/1313183984/664
0387デフォルトの名無しさん2013/05/01(水) 01:47:19.40
>>373
キチン(chitin)は直鎖型の含窒素多糖高分子で、ムコ多糖の一種。ポリ-β1-4-N-アセチルグルコサミンのこと。語源は古代ギリシアの衣服であったキトン(chiton)に由来し、「包むもの」を意味する。
節足動物や甲殻類の外骨格すなわち外皮、軟体動物の殻皮の表面といった多くの無脊椎動物の体表を覆うクチクラや、キノコなど菌類の細胞壁などの主成分である。-- Wikipedia "キチン"
0388デフォルトの名無しさん2013/05/01(水) 01:52:07.62
>>377
ネタ振りも回答もコテつけ無いならコテの自己顕示としてなんの役にもたちませんがな
むしろ君がコテ認定することで初めてコテの行動として認知される、つまり君こそがQZだったのだよ!

>>385
ちょっと君の基準で「QZの」「自己顕示欲を満たす」「荒らしに該当する」書き込みをリストアップしてくれんかね?
自己顕示を満たしながらも荒れる要素を持った書き込みはQZ認定して罵倒する君のような書き込みだけのような気がするんだが
0389デフォルトの名無しさん2013/05/01(水) 13:17:31.70
QZまさかの他人をQZ認定
やっぱり我慢できなくてレスを返したな
さんざん叩かれて自己否定に目覚めたか?
0390デフォルトの名無しさん2013/05/01(水) 13:19:20.79
QZは隔離スレで仕事してる
っと言いながら宿題スレ等に顔だして荒らしてるQZは馬鹿
0391デフォルトの名無しさん2013/05/01(水) 13:36:40.33
いうまでもないがQZを下に見れる俺は明らかにQZより格が上
0392デフォルトの名無しさん2013/05/01(水) 14:52:25.95
QZ必死にレスを稼いで質問を再開させる試みをするが
現在難航中
0393デフォルトの名無しさん2013/05/01(水) 15:12:32.73
そして慌てふためくQZを想像しながら俺は全裸で待機中
0394片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/01(水) 16:52:46.20
>>346
>>306の模範解答
http://ideone.com/67G8c9
0395片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/01(水) 17:22:40.23
ベクトル幾何をやってれば解ける問題だと思うけど、解けた人居ないとは。。。
逆行列の問題もまだだね。
0396片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/01(水) 17:36:06.45
QZはよくやってる方だよ。悔しかったらQZみたいにきれいなコードを書いてみてね。

ところで、線対称かどうか判定するプログラムは、何か社会に役立ちますか?
何にも思いつかないんだけど。
0397デフォルトの名無しさん2013/05/01(水) 17:43:23.35
バイリンガルな調理ロボットがいます。あなたの得意なプログラム言語は理解すると
します。さて、次の料理 「シシ ケバブ」の作り方をロボットに教えなさい。
・材料 羊肉1Kg トマト4個 青トウガラシ6本 タマネギ1個 レモン汁 塩 こしょう
タイム トマトペースト ヨーグルト オリーブ油 レッドペッパー
・作り方 羊肉は角切りにし、レモン汁、塩、こしょう、タイム、トマトペースト、
ヨーグルト、オリーブ油、レッドペッパー、タマネキのみじん切りを合わせたものを
ひと晩漬け込む。トマトは櫛切り、青トウガラシは2つ切りにする。肉と交互に串を差し、
炭火で焼く。
「トルコ料理 東西交差路の食風景」柴田書店 1992年刊より P63に写真があります。
0398片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/01(水) 17:56:02.80
>>397
enum 切断タイプ { みじん切り, 角切り, 櫛切り, 2つ切り };
bool 運ぶ(物体& o, 位置& p, 運搬手段 m);
bool 持ち上げる(物体& o);
bool 切る(物体& o, 切断タイプ ct, 大きさ 目安);
bool 入れる(入れ物& c, 物体& o);
bool 刺す(刺す物& s, 物体& o);
void 待つ(時間& t);
0399デフォルトの名無しさん2013/05/01(水) 18:25:04.23
>>396
> ところで、線対称かどうか判定するプログラムは、何か社会に役立ちますか?

溶接ロボットの計算では使われますよ。
0400デフォルトの名無しさん2013/05/01(水) 19:50:03.75
>>359
A^2/4より小さい場合ってどういう形だろう?
思い浮かばない。
0401デフォルトの名無しさん2013/05/01(水) 22:39:59.51
今度は片山による自演が始まった・・・
0402デフォルトの名無しさん2013/05/01(水) 23:08:43.99
ほんとこの板って自演しほうだいだよな
0403 ◆QZaw55cn4c 2013/05/02(木) 00:42:00.91
>>400
>この頂点の対角の頂点もふたつの辺が直角につながっている。
問題文の後半に現れる二辺は、前半と違って「直角にまじわっているだけで長さが等しいとは限らない」点に注意、一種の引っ掛けだね。
四角形AOBCにおいて、∠AOB = ∠ACB = 90度、AO = OB = A/2、ただしAC=CBとはかぎらない、とする。
∠ACB=90度だから、C は AB を直径とする円周上(かつC と反対側、反対側になければ AOBCは四角形にならない)にある。
このとき、四角形AOBC が最大なのは、AC=CB ゆえにAOCBが正方形のとき、最小なのはC=AまたはC=Bのとき。
0404 ◆QZaw55cn4c 2013/05/02(木) 01:08:44.14
ごめん、いろいろ間違いがあったので書き直すね。

四角形AOBCにおいて、∠AOB = ∠ACB = 90度、AO = OB = A/2、一方でAC=CBとはかぎらない、とする。
∠ACB=90度だから、C は AB を直径とする円周上(かつO と反対側、Oと反対側になければ AOBCは四角形にならない)にある。
このとき、四角形AOBC が最大なのは、AC=CB ゆえにAOBCが正方形のとき、最小なのはC=AまたはC=Bのときだが、このときは AOBC は四角形にならないので、
>>359 では不等号に等号は含ませないようにしているね。
0405デフォルトの名無しさん2013/05/02(木) 01:22:31.30
こういう四角形もあるよ
http://planetmath.org/crossedquadrilateral
0406デフォルトの名無しさん2013/05/02(木) 01:24:44.53
何の必要性も無いコテが容認されてる専門板は総じてゴミ以下
0407デフォルトの名無しさん2013/05/02(木) 01:30:48.35
>>406
お前が使ってるPCを、ちょっと賢いチンパンジーに与えた方が有意義に使いそう
0408デフォルトの名無しさん2013/05/02(木) 02:24:12.02
ふつーに考えて、等しい長さの辺の和のほうじゃなくて、残りの二辺の和がAじゃないと問題として低レベルすぎる
0409デフォルトの名無しさん2013/05/02(木) 03:48:23.47
a^2+b^2=c^2
a+b=A
c^2/4+ab/2=s

s=A^2/4
0410 ◆QZaw55cn4c 2013/05/02(木) 07:39:44.03
>>395
逆行列は予約済みだからね!絶対解かないでよ :−)
0411デフォルトの名無しさん2013/05/02(木) 07:54:00.40
>>398
火ついてませんよ
0412デフォルトの名無しさん2013/05/02(木) 21:10:06.87
ドヤ顔で問題誤読してるいつものQだったな
0413 ◆QZaw55cn4c 2013/05/02(木) 21:17:05.90
>>412
そだね楕円上なんだね
0414デフォルトの名無しさん2013/05/02(木) 21:19:04.52
お題:原点、(a,b)、(a,-b)を通る円の半径を求めるプログラム。
0415デフォルトの名無しさん2013/05/02(木) 21:24:12.15
(a^2 + b^2) / (2 * a)
0416デフォルトの名無しさん2013/05/02(木) 21:26:24.82
(a^2 + b^2) / (2 * |a|)
0417デフォルトの名無しさん2013/05/02(木) 21:29:54.72
もはや式を答えるスレと化してコーディングしてないことないか?
0418デフォルトの名無しさん2013/05/02(木) 21:31:33.87
>>413
まだ分かってないw
0419デフォルトの名無しさん2013/05/02(木) 21:37:09.51
>>413
Aを固定させると斜辺が変動するからだよ
0420 ◆QZaw55cn4c 2013/05/02(木) 21:52:03.40
>>414
http://toro.2ch.net/test/read.cgi/tech/1313183984/665
0421デフォルトの名無しさん2013/05/02(木) 23:45:10.81
>>417
式を見ればコーディングするのはバカでもできるだろ
0422デフォルトの名無しさん2013/05/02(木) 23:55:03.00
コーディングはこのスレのお約束
0423デフォルトの名無しさん2013/05/03(金) 02:16:43.04
式だけで済むお題ばっかりだからな。
0424デフォルトの名無しさん2013/05/03(金) 06:47:46.53
5月4日(みどりの日)に入場無料になる施設は次の通りです。
上野動物園
多摩動物公園
井の頭自然文化園
葛西臨海水族園
神代植物公園
夢の島熱帯植物館
新宿御苑
旧岩崎邸庭園
旧芝離宮恩賜庭園
旧古河庭園
清澄庭園
小石川後楽園
殿ヶ谷戸庭園
浜離宮恩賜庭園
向島百花園
六義園

問題 :: あるカテゴリー(例えば日本庭園)を質問した時に、上記の施設から
適切なものをひとつずつ回答するプログラムを作りなさい。
0425デフォルトの名無しさん2013/05/03(金) 07:57:20.65
要素に重複のないリスト(リストがない場合は配列)がある。
このリストの部分リストを先頭要素と末尾要素を指定することによって、
切り出し、この部分リストだけを昇順に整列する。
切り出されたリストの前部のリストを前に、同じくリストの残り部分を
後に結合した新たなリストを作るプログラムを示せ。
04264252013/05/03(金) 09:33:53.34
元のリストを破壊することなしに、の意味です。
0427デフォルトの名無しさん2013/05/03(金) 09:52:08.97
>>425 Io
f := method(x, s, e,
x slice(0, s) appendSeq(x slice(s, e + 1) sort) appendSeq(x slice(e + 1))
)

Io> a:=list(9,8,7,6,5,4,3,2,1,0)
==> list(9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
Io> f(a,1,4)
==> list(9, 5, 6, 7, 8, 4, 3, 2, 1, 0)
Io> a
==> list(9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
0428デフォルトの名無しさん2013/05/03(金) 11:00:53.85
問題です。
5位まで、賞金を出るレースを考えてください。
賞金は1-5位まで降順に割り当てられています。
同タイムの時は下位の席次を削り、この席次でその順位に割り当てられた
賞金を同等に配分します。ところが消極的な主催者は表彰状の用紙が
5枚しかないことに悩んで、最下位順位者が多数いて、その結果表彰者が
6名以上になった場合は最下位順位者はいなかったことにして、表彰状が
不足することを避けようと考えました。
成績ファイルから1行ごとに競技者名とタイムが速い順に取得できるとして、
主催者の意図する賞金配分を出力するプログラムを作りなさい。
04294282013/05/03(金) 11:11:42.70
それぞれの順位に割り当てられた賞金を合算したものを、
同タイム者に同等に配分します。

ですね。
0430デフォルトの名無しさん2013/05/03(金) 11:13:43.05
>>428
同タイム1位が6人いたらどうする?
0431デフォルトの名無しさん2013/05/03(金) 11:32:14.07
>>430
そりゃ、表彰者なしでしょう。
0432デフォルトの名無しさん2013/05/03(金) 12:45:07.74
>>425
haskell
import Data.List
partSort::Ord a=>Int->Int->[a]->[a]
partSort s e xs=fs ++ (sort ms) ++ ts
where
(fs,ys)=splitAt s xs
(ms,ts)=splitAt (e-s+1) ys
0433デフォルトの名無しさん2013/05/04(土) 20:17:12.28
>>428
ttp://ideone.com/BKF85X
0434デフォルトの名無しさん2013/05/04(土) 23:07:35.34
お題:点(0,a)と点(b,0)を結ぶ線分が(1,1)を通り、長さが4のとき
この線分とx軸、y軸に囲まれた三角形の面積を求めるプログラム。
0<a, 0<b, a<b とする。
0435片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/05(日) 18:36:59.60
>>434
条件に合うパラメータが存在しないので、作れない。
0436片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/05(日) 19:07:00.50
ごめん、計算間違いだった。
解は存在する。
0437片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/06(月) 00:12:49.77
直線の方程式は�@y = -ax/b + aであり、条件式�Aa = b/(b-1)と�Ba^2 + b^2 = 16が成立する。
�Bと0<aより、�Ca = √((4-b)*(4+b))である。�A�Cより(4-b)*(4+b) = b^2/(b-1)^2であり、(16-b^2)*(b-1)^2 = b^2となる。
三角形の面積は�Ca*b/2 = b*b / (b-1) = (16-b^2)*(b-1)となる。面積はゼロ以上なので1≦b≦4。
0438デフォルトの名無しさん2013/05/06(月) 00:30:04.41
条件式�Aa = b/(b-1)と�Ba^2 + b^2 = 16と�D1≦b≦4が成立するとき、面積は�Cb*b/(b-1)であり、それ以外のとき、面積はゼロである。

もっと単純化できるが、これ以上は数学の問題になる。
0439デフォルトの名無しさん2013/05/06(月) 00:35:10.65
プログラムは?
0440デフォルトの名無しさん2013/05/06(月) 00:39:24.64
方眼用紙に描いてみればだいたいの位置がわかる。条件式を整理してbに関する4次方程式をニュートン法で解くのが一般的か
0441デフォルトの名無しさん2013/05/06(月) 00:42:44.40
そういう話は数学板に行ってやれ
ここはプログラム板だ
0442 ◆QZaw55cn4c 2013/05/06(月) 03:50:23.82
>>434
http://codepad.org/s9Y9Xpmj
0443デフォルトの名無しさん2013/05/06(月) 12:51:15.90
>>434
af=1.0
at=4.0
eps=10e-10
dif=1.0
while dif.abs>eps
am=(af+at)/2.0
b=1.0/(am-1.0)+1.0
dif=16-am*am-b*b
if(dif-eps>0)
af=am
else
at=am
end
end
p am*b

結果:5.123105625641652
0444デフォルトの名無しさん2013/05/06(月) 12:56:53.62
>>442-443
構造体名、変数名が適当すぎてソースが読みづらい
数学的なアルゴリズムを使用する場合は使用したアルゴリズムや数式をきっちり明記しろクズ共が
0445デフォルトの名無しさん2013/05/06(月) 19:15:49.40
>>434
Maximで試行錯誤。条件に合う解の取り出しかたがわからないけど
3番目の解が 0<a,0<b,a<b をみたす。(4個、出力されたものから手動で切り出した)

(%i25) solve([a^2+b^2=16,(a-1)^2+1=c^2,(b-1)^2+1=d^2,c+d=4,s=a*b/2],[a,b,c,d,s];

[a = 1.362200117027502, b = 3.760905577029265, c = 1.063573607320597,
d = 2.936426116838488, s = 2.56155303030303],
0446デフォルトの名無しさん2013/05/06(月) 19:24:02.44
>>444
構造体?
どこにあるの?
>数学的なアルゴリズムを使用する場合は使用したアルゴリズムや数式をきっちり明記しろ
/* px : x = (y - py) : y -> x(y - py) = px.y*/
で十分。>>442 はこの部分が一番の肝でそれ以外はとるにたらない蛇足のようなものだ。
0447デフォルトの名無しさん2013/05/06(月) 19:32:51.84
構造体は442
0448デフォルトの名無しさん2013/05/06(月) 20:14:13.74
とりあえずお前が馬鹿なのはわかった
0449デフォルトの名無しさん2013/05/06(月) 20:16:17.54
>>448
自己紹介乙
そんなんだから単位落とすんだよ(ノ∀`)'`,、'`,、'`,、'`,、'`,、
0450デフォルトの名無しさん2013/05/06(月) 20:38:01.07
>>446
ぬーとん法だのなんだの書いとけってことだよ
そんなんじゃ実社会のプロジェクトで通用しないのがわからないのかカス
0451デフォルトの名無しさん2013/05/06(月) 20:39:44.37
>>450
>>442 のどこがニュートン法?
単なる素朴法にコメントがいるとでも?
0452デフォルトの名無しさん2013/05/06(月) 21:04:27.42
まあそれ以前に、ソース見てアルゴリズムと結びつかない奴が、ここで勉強しようってのが間違い。
0453デフォルトの名無しさん2013/05/06(月) 21:31:38.42
>>452
計測機器の実務経験ないでしょ
0454デフォルトの名無しさん2013/05/06(月) 21:49:04.87
いかにしてオシロスコープは測定するのをやめ RC5 Cracking をするようになったか
0455デフォルトの名無しさん2013/05/06(月) 22:44:56.68
2chで勉強する”プロ”w
0456デフォルトの名無しさん2013/05/06(月) 23:37:15.10
>>440 >>445
最大で4つあるという根のどれが題意に適合するかわからないし求める根に収束する初期値をどう設定すればいいのかよくわからないし高次のニュートン法って収束しない場合もあったり特異点が散らばってたりして今一これQが最近やってたね
0457 ◆QZaw55cn4c 2013/05/06(月) 23:44:10.92
>>445
ご指摘感謝、三角形の面積を出すのに2で割るのを忘れていました‥‥
http://codepad.org/L5R92aJE
0458デフォルトの名無しさん2013/05/07(火) 00:10:11.04
えーと、何年生で習うんだっけ
0459デフォルトの名無しさん2013/05/07(火) 00:29:19.67
5年生くらいじゃない?
0460デフォルトの名無しさん2013/05/07(火) 00:33:05.38
Qは小学生未満の頭なのか
0461デフォルトの名無しさん2013/05/07(火) 03:45:32.88
ショタコンだったの?
0462デフォルトの名無しさん2013/05/07(火) 08:03:02.63
ただのニートだよ
0463デフォルトの名無しさん2013/05/09(木) 14:04:54.49
QZ、逆行列まだか?
0464 ◆QZaw55cn4c 2013/05/13(月) 01:20:10.34
>>340
http://toro.2ch.net/test/read.cgi/tech/1313183984/666
>>463
お待た
0465デフォルトの名無しさん2013/05/13(月) 11:38:32.41
QZは宿題レベルの問題しか解けない可哀そうな子
0466片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/13(月) 19:55:47.53
さっきテレビで見たけど、クロスワードで月収150万円だってよw!!
自動クロスワード作成プログラム作ったら大金持ちになれるかもよ!
0467デフォルトの名無しさん2013/05/13(月) 22:10:48.48
半自動なら作れそうだが全自動は難しいかな・・
0468デフォルトの名無しさん2013/05/14(火) 00:34:14.54
ヒント/ワード対応をどう生成するかだなぁ…
辞書やWikipediaから自動生成で使い物になるかどうか
0469デフォルトの名無しさん2013/05/14(火) 01:06:03.40
単語のヒントは、手作りで単語と一緒にDBに持たせる
0470デフォルトの名無しさん2013/05/14(火) 03:04:08.21
467の言う半自動ってのがソレのことでは?
04714672013/05/14(火) 03:44:48.95
さすがに単語・ヒントのペアを作るのは半自動にせざるを得ないんじゃないかな。

全ての辞書の単語にヒントを作るんじゃなくて、問題が出来上がった時に
使われている単語についてのみヒント作れば良い。

半自動とは、単語を並べる作業。例えば
+---------------
|  沖
|富 縄
|山 県
|県
+---------------
とあるとき、「山 県」を[範囲選択]して[検索]したら辞書から
候補
「山形県」
「山梨県」
「山口県」
などを表示してユーザに選ばせる半自動
0472デフォルトの名無しさん2013/05/14(火) 05:30:53.31
それは流石にやる気無さすぎだろ…マクロ無しのエクセルで出来るじゃねぇか。
人手で修正を加える仕組みはあっても良いと思うけれど、そこは自動化しようよ。

ていうか漢字クロスワードならともかくカナ文字クロスワードだと候補数で死ねる。
問題生成の過程で手詰まりとか笑えないけどその方法だとそこも不味そう。

とりあえずマスの生成から単語の決定まで全自動で一通り埋めてから、
国語辞典で解説に目的単語を含まず一定字数以下で解説される単語と、
類義語対義語や英和辞書で単一に定まる単語は機械的にヒントを生成
(または最初からそういう単語群から選択する)位は出来ないと苦しい。
0473デフォルトの名無しさん2013/05/14(火) 07:50:29.26
>>466
詰め将棋とかだったらわかるんだけど‥‥
0474デフォルトの名無しさん2013/05/20(月) 00:03:02.15
世界一速い整数多倍長計算ライブラリを作れ
0475デフォルトの名無しさん2013/05/20(月) 02:52:16.54
作った。
0476デフォルトの名無しさん2013/05/20(月) 15:37:35.18
壊した。
0477デフォルトの名無しさん2013/05/20(月) 23:42:45.07
>>474
ヒントちょうだい
0478デフォルトの名無しさん2013/05/20(月) 23:47:25.82
>>434
#include <stdio.h>
#include <math.h>

int main(void) {
printf("%f", (1 + sqrt(17)) / 2);
return 0;
}
0479片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/21(火) 00:39:15.43
お題:太くて赤い線で描かれた四角形の中に書かれたアラビア数字を読み取る。画像形式は自由
0480デフォルトの名無しさん2013/05/21(火) 00:47:10.33
四角形は一つだけ。数字も一つだけ。四角形の四辺は画像の境界線に平行か垂直。数字は黒っぽい色。四角形と数字以外は明るい色。
0481デフォルトの名無しさん2013/05/21(火) 18:00:51.12
片山の自演が始まります
0482片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/21(火) 18:38:06.23
お題:バーコードを作るプログラム
0483片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/21(火) 18:39:18.08
お題:モールス信号を解読するプログラム
0484デフォルトの名無しさん2013/05/21(火) 18:47:01.93
さあ、どんどん解きやがれ
0485片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/21(火) 19:16:37.76
お題:QRコードを作るプログラム

ほらQZ君、どんどん解答したまえ
0486 ◆QZaw55cn4c 2013/05/22(水) 03:49:10.10
>>485
より実用的なお題ですね。興味が湧けば、いや沸けば手をつけるかもしれません。>>480 は必要だった時期もあったのですが‥‥
0487デフォルトの名無しさん2013/05/22(水) 13:10:41.46
>>485
QZを作るプログラム
かと思っちゃったじゃないか!
0488デフォルトの名無しさん2013/05/22(水) 13:20:57.00
どんなキチガイプログラムだよw
0489片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/28(火) 12:55:00.27
クロスワード自動作成ソフト「クロスワード ギバー」Windows用
http://katahiromz.web.fc2.com/xword/
できたよ。
0490片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/28(火) 13:03:32.08
age
0491デフォルトの名無しさん2013/05/28(火) 13:07:32.89
>>489
srcだけいただいた
自分でビルドする
exeは何が仕込まれてるか分からないからな
0492デフォルトの名無しさん2013/05/28(火) 13:51:53.58
それ使ってメルマガかなんかやってみれ
0493片山博文MZパンク ◆0lBZNi.Q7evd 2013/05/28(火) 17:22:31.67
>>492 めんどい。これから逆汗作らないといけないので、時間が無い。
勝手にやってください。
0494デフォルトの名無しさん2013/05/28(火) 20:52:36.93
一応お題が出ていたのか。気づかなかったw
0495デフォルトの名無しさん2013/05/29(水) 12:06:45.74
>>491
srcにも何が仕込まれているかわからないよ。
0496デフォルトの名無しさん2013/05/29(水) 13:22:32.56
>>495
srcだけじゃウィルス感染しない
最悪の場合ビルドもしなけりゃいいじゃん
0497デフォルトの名無しさん2013/05/29(水) 22:38:39.02
srcからビルドする前にちゃんとどういう動作をするコードか、登場する関数ひとつひとつの細かい仕様まで調べてからビルドするんだぞ
何も考えずにビルドしちゃう人間に対しては、ソースがあるから安心なんてのは成立せんからなw
0498デフォルトの名無しさん2013/05/30(木) 15:07:54.94
Makefileに悪意の処理を仕込むことって出来るかな
0499デフォルトの名無しさん2013/05/30(木) 16:00:20.86
環境変数見てマイドキュメントの中身を消すくらいは余裕でできる
0500デフォルトの名無しさん2013/05/30(木) 16:47:54.85
お題:マイドキュメントの中身を全部消すmakefileを作れ
0501デフォルトの名無しさん2013/05/30(木) 17:03:05.81
all:
sudo rm -rf /
0502デフォルトの名無しさん2013/05/30(木) 22:03:44.07
>>501
winの場合はdeltreeを使う
0503デフォルトの名無しさん2013/05/31(金) 02:31:34.77
>>502
化石
0504片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/05(水) 22:08:05.59
お題:アスキーアートの書き込みとそうでない書き込みを判別するプログラム。
0505片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/10(月) 00:10:02.14
お題:明日の天気予報を表示するプログラム
0506片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/10(月) 00:14:43.34
お題:世界中の暗号化されてない電子メールを収集するプログラム
0507デフォルトの名無しさん2013/06/10(月) 00:18:43.81
中継サーバーを八苦するんか?
0508デフォルトの名無しさん2013/06/10(月) 00:31:25.06
>>507
技術力ない場合はソーシャルも可
0509片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/10(月) 00:46:33.56
お題:Facebookの公開情報をP2Pで共有するプログラム。

これができたら株価が心配です
0510片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/10(月) 00:55:33.88
お題:地図上の落書きを共有できるサービス。
0511デフォルトの名無しさん2013/06/10(月) 00:59:52.48
人感センサー照明のファームウェア
0512片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/10(月) 01:01:49.92
お題:プリクラ公開処刑サービス

1.顔写真をUP
2.プリクラのようにみんなで写真を加工
3.ブログのようにみんなで感想が書き込める
0513デフォルトの名無しさん2013/06/10(月) 17:17:01.23
プリクラの目を大きくするやつは難易度高いな。
0514片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/13(木) 01:18:25.87
お題:HaxeをC++に移植せよ
0515デフォルトの名無しさん2013/06/13(木) 01:45:38.88
しました!
0516デフォルトの名無しさん2013/06/13(木) 01:50:16.06
なんだ、もうできてたのか
0517デフォルトの名無しさん2013/06/13(木) 01:51:42.09
信用してはいけないもの。
韓国人の、出来ます!
チャイニーズの、出来ました!
日本人の、出来ません!
0518片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/13(木) 02:39:13.32
お題:漢数字、半角数字、全角アラビア数字からなる、ある正の整数を表す文字列を半角数字の文字列に変換するプログラム。
0519片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/13(木) 02:45:34.84
追記。元の文字列が正しく正の整数を表していないときは、失敗のメッセージを表示すること。
0520片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/14(金) 22:36:07.47
お題:clangが使える、C++11準拠のIDE

QZどうした?! やる気なっしーか?
0521デフォルトの名無しさん2013/06/14(金) 22:41:06.44
520がやればいいのではないでしょうか?
0522片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/14(金) 22:46:41.92
俺は今、逆アセンブラ作りに忙しいので、アイディアを忘れないように投入しているだけだ
0523片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/14(金) 23:20:22.88
お題:ある会社の現在の最新の株価を表示するプログラム

ヒント:サーバー
0524デフォルトの名無しさん2013/06/14(金) 23:50:51.89
最近あぼーん多いね
0525デフォルトの名無しさん2013/06/15(土) 00:48:46.18
逆コンパイラはともかく、逆アセンブラってそこまで高難度なんだろうか。
ポインタ間接アクセスのプロシージャエントリポイントを的確に見つけるお仕事?
0526デフォルトの名無しさん2013/06/15(土) 02:03:29.41
アイディアの意味を勘違いしてるだけでは?
0527 ◆QZaw55cn4c 2013/06/15(土) 03:03:45.17
http://blog.practical-scheme.net/shiro/20130523-matz-on-ideas
0528デフォルトの名無しさん2013/06/16(日) 01:18:53.23
お題:エラーになるか強制終了するまで小さい順に素数を表示し続けるプログラム。
0529デフォルトの名無しさん2013/06/16(日) 02:11:13.73
>>528
多倍長計算にも限度がある。多倍長多倍長計算にも限度がある。理論的に限りなく計算を続けることはできるのだろうか?
0530デフォルトの名無しさん2013/06/16(日) 02:44:38.50
>>529
限度がエラーって事になるだろうが、ストレージを記憶域にした多倍長計算が尽きるのは何時だろうな?
最低、対象値と一時変数とカウンタの3つがあれば良いとして、1.5TiBのHDDならlog10(2^(512*1024*1024*1024))桁
何桁なのかwolframalphaさんとgoogle先生に聞いたけど教えてくれなかった。
0531デフォルトの名無しさん2013/06/16(日) 03:04:45.13
補題:log10(2**(512*1024*1024*1024))の整数部分を求めよ。
0532 ◆QZaw55cn4c 2013/06/16(日) 06:57:22.23
>>528
これやりたい
いつか、サーバーをひとつたてて素数を計算しつつwebで公開するんだ‥‥‥
0533 ◆QZaw55cn4c 2013/06/16(日) 06:59:58.46
>>531
2^39 * 0.3010 だろう?アクセサリの電卓は 165476499980.288 って言ってるよ
0534デフォルトの名無しさん2013/06/16(日) 07:08:49.27
有効桁数が
0535デフォルトの名無しさん2013/06/17(月) 03:48:44.40
補題:log10(2**(512*1024*1024*1024))桁までの素数を全て出力するのに必要な時間を求めよ。
0536デフォルトの名無しさん2013/06/17(月) 06:55:16.04
>>528 maxima
p:2;
while true do p:next_prime(print(p));
0537デフォルトの名無しさん2013/06/17(月) 12:35:04.92
番兵おけやボケェ
0538デフォルトの名無しさん2013/06/17(月) 21:36:26.35
お題:Lispの (a b c) は (a . (b . (c . nil))) の省略記法である。前者から後者
へ変換せよ。
0539デフォルトの名無しさん2013/06/17(月) 22:55:11.87
(defun f (x) (if (atom x) (format nil "~a" x) (format nil "(~a . ~a)" (f (car x)) (f (cdr x)))))
(defun g () (princ (f (read))))
0540デフォルトの名無しさん2013/06/17(月) 23:28:39.46
lispに食わせれば変換される


表示しろとは書いてない
0541デフォルトの名無しさん2013/06/18(火) 00:09:43.80
お題:SSDウェアレベリング
0542デフォルトの名無しさん2013/06/18(火) 04:37:08.54
>>540
記法について変換しろであって、解釈しろではないからダメなんじゃね
0543デフォルトの名無しさん2013/06/18(火) 06:00:27.18
>>541
SSD買ってくる
0544片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/25(火) 22:04:10.92
お題:音声の波形データからテンポを求める
0545デフォルトの名無しさん2013/06/25(火) 22:38:57.99
これができると、DMMに入社できるよ〜

お題:漫画風に揺れるオッパイを表示するプログラム
0546片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/25(火) 23:02:55.93
お題:Windowsで動作する、UTF-8対応のコマンドプロンプト
0547デフォルトの名無しさん2013/06/26(水) 04:13:58.00
解脱プログラム作成しました。西の国へ行けますか?

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
int i = 1;
while (i <= 5670000000) {
if ((i % 108) == 0 ){
NSLog(@"ループを抜けます i = %d", i);
break;
}
NSLog(@"i = %d", i);
i++;
}
return 0;
}
0548デフォルトの名無しさん2013/06/26(水) 05:24:10.58
片山をこのスレから追放するプログラム
0549デフォルトの名無しさん2013/06/29(土) 00:39:52.55
調和級数の和が+∞に発散する事をプログラムで示せ
0550 ◆QZaw55cn4c 2013/06/29(土) 01:07:50.27
>>549
発散の定義は?
0551デフォルトの名無しさん2013/06/29(土) 01:18:50.35
>>550
数�Vからやり直せ
0552 ◆QZaw55cn4c 2013/06/29(土) 06:01:10.09
>>551
高校生の段階では発散をきちんと定義していないと記憶していたのだが‥‥
発散の定義は?
0553デフォルトの名無しさん2013/06/29(土) 07:49:33.61
>>552
「数�V"から"やり直せ」だからその先も含めて良いから数学的な定義拾ってこいってことだろ。
しかしそうなると定理証明エンジンの類を作るとか言う類の壮大な回答か、
もしくは単に自然言語を用いた証明を関数名とかに置き換えて書き出した
コンパイル時にtrue1個に最適化されるような類のアホみたいな回答になる。

こういうスレで適切なサイズのお題も考えらんない奴の出題だから突っ込むだけ野暮。
トンチの効いたおもしろ回答くらいしかすること無いよこの手の問題は。
0554 ◆QZaw55cn4c 2013/06/29(土) 07:57:04.14
>>553
いや、調和級数の発散性は題材としてもサイズとしても適切だとは思ってる(級数の発散性を調和数列と比較して、てのはよくやると思う)
ただ発散を計算で示すのにどうしようかとちょっと迷っただけで深い意味は、あーあー、ないです、「定義は?」っていうのはそのつもりはなかったんだけど煽りのようでちょっとまずかったね

‥‥ごめん
0555デフォルトの名無しさん2013/06/29(土) 12:31:24.71
>>554
アホ
0556デフォルトの名無しさん2013/06/29(土) 15:29:01.16
地味に難しいな
+INFになっても、厳密に数学の意味での正の無限大とは違うしな
0557デフォルトの名無しさん2013/06/29(土) 15:30:30.22
>>556
調和級数の発散速度はめちゃくちゃ遅い‥‥
0558デフォルトの名無しさん2013/06/29(土) 15:34:35.29
やはり地味に調和級数よりも小さい級数が正の無限大に発散する事から証明するしかないのか
0559デフォルトの名無しさん2013/06/30(日) 11:19:53.73
お題:m,nを正の整数とする。m/nと(m+1)/(n+1)が整数となるm,nの組を
100個求めよ。
0560デフォルトの名無しさん2013/06/30(日) 11:42:37.45
>>559
n = 1とするとmは奇数であればすべて題意を満たす。
よって

print [(1,i*2+1) | i <- 1..100]
0561デフォルトの名無しさん2013/06/30(日) 11:48:58.16
n,mが逆だね
0562デフォルトの名無しさん2013/06/30(日) 12:05:00.51
お題:m,nを正の整数とする。m/nと(m+1)/(n+1)が整数となるm,nの組を
100個求めよ。
m=nでも成立してしまうので以下の条件を追加します。
1<n<m
0563デフォルトの名無しさん2013/06/30(日) 12:23:16.13
n = 2とするとmは3以上の偶数かつ3で割って2余るもの(6の倍数+2)であれば題意を満たす。
よって

print [(i*6+2,2) | i <- 1..100]
0564デフォルトの名無しさん2013/06/30(日) 12:37:13.00
>>556
+INFて浮動小数点数なんだろうけど、丸め誤差がアホみたいに累積するし、
加算するときに指数の差が大きくなってくると情報落ちで値が増えなくなるし、
倍精度や四倍精度は2**-1074や2**-16494あたりで0に丸められてしまうし、
そもそも浮動小数点数の+INFは極限値ですら無くて値としての無限大だし。
問題を回避して大量に加算した所で限界値を超えました以外の結果は無い。
(((1<<54)-1)>>52)*2**1023を越えました的な意味の値になに求めてるのさ。

調和級数の和がXを超えるまで加算を続けろ、とか言う問題ではないのだし、
証明系を組むか、証明結果を翻訳してtrue返すか、ネタで返すかしないと…
0565デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
お題
1+1の結果を求めよ
0566デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
>>565
#include <stdio.h>
int main(void) {
int a, b, c;
a = b = 1;
c = a + b;
printf("1 + 1 = %d\n", c);
return 0;
}
0567デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
>>566
不正解
出力せよとは書いていない
0568デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
くだらん
実に下らん。
0569デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
そうか、それはよかった
実によかった
0570デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
お腹急降下
0571デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
おっぱいだけのときは「パイの実」。
キスがしたいときは「キスミント」。
さて、本番をしたいときは何でしょう?
0572デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
「やらせろ」
0573デフォルトの名無しさん2013/07/02(火) NY:AN:NY.AN
お菓子の名前です

わーかるっかなぁ?
0574デフォルトの名無しさん2013/07/03(水) NY:AN:NY.AN
「コメッコ」(関西風)
0575デフォルトの名無しさん2013/07/05(金) NY:AN:NY.AN
お題:20桁の10進数が与えられたとき、任意の10個の数字を消してできる
10桁の最大の数を求めよ。
0576デフォルトの名無しさん2013/07/05(金) NY:AN:NY.AN
>>575
#include <stdio.h>
#include <string.h>

void hoge(char *result, const char *str, int n){
int j, l, max;

l=strlen(str);
for(;n>0;n--){
max=0;
for(j=0;j<=l-n;j++){
if(str[max]<str[j]) max=j;
}
*result++=str[max];
str+=max+1;
l-=max+1;
}
*result='\0';
}

int main(void){
char result[10+1];
char data[]="12345678901234567890";

hoge(result, data, 10);
puts(result);

return 0;
}
0577片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/08(月) NY:AN:NY.AN
お題:数学の問題を解くだけでなく、解く過程や説明も示してくれる数式処理ソフト
0578デフォルトの名無しさん2013/07/08(月) NY:AN:NY.AN
writeto("2ch");
0579片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/11(木) NY:AN:NY.AN
お題:適当なコマンドメニューを表示し、アルファベット文字列のコマンドの入力を入力補完(オートコンプリート)付きで受け付け、
入力されたコマンドを実行するコンソールプログラム。
0580片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/11(木) NY:AN:NY.AN
お題:2ちゃんねるトリップを複数のPCの並列処理で解読するプログラム
0581 ◆QZaw55cn4c 2013/07/12(金) NY:AN:NY.AN
>>580
http://anago.2ch.net/test/read.cgi/software/1373110438/
0582片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/12(金) NY:AN:NY.AN
>>581 ネットワーク対応してない
0583 ◆QZaw55cn4c 2013/07/12(金) NY:AN:NY.AN
>>582
まだαだが分散ネットワーク処理を志向して http://www.meriken2ch.com/tripcode/yggdrasil/login.php が開設されている。
クライアントは
http://www.meriken2ch.com/programming/merikens-tripcode-finder
http://www.meriken2ch.com/files/2013-06-07-MERIKENsTripcodeFinder.zip
明記されていないがネットワーク分散処理対応だ
0584片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/12(金) NY:AN:NY.AN
お題:カメラの位置と、太陽系の全惑星の位置データを入力すると、太陽系を描画して画像を出力するプログラム。
惑星のテクスチャは各自用意。
描画する惑星の大きさは見やすさのため、あらかじめ指定した値で適当にデフォルメする。
0585デフォルトの名無しさん2013/07/13(土) NY:AN:NY.AN
惑星の明るさも調整する。準惑星も忘れずに。
0586 ◆QZaw55cn4c 2013/07/13(土) NY:AN:NY.AN
>>549
http://ideone.com/TuQPvd
Σ(1/k) と log(n) の比が 1 に漸近することで Σ(1/k) の発散を示そうと思いました。
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E3%81%AE%E5%AE%9A%E6%95%B0
0587デフォルトの名無しさん2013/07/13(土) NY:AN:NY.AN
久々に来たらコテが宿題をやってもらうスレになってた
0588デフォルトの名無しさん2013/07/13(土) NY:AN:NY.AN
>>587
てにをは、が不正確ですねさては半島出身?
0589デフォルトの名無しさん2013/07/13(土) NY:AN:NY.AN
>>588は外してるけど上のコテだな
分かりやすすぎて逆にあやしい
0590デフォルトの名無しさん2013/07/13(土) NY:AN:NY.AN
Qがザパニーズなんじゃね
0591デフォルトの名無しさん2013/07/15(月) NY:AN:NY.AN
http://ikura.2ch.net/test/read.cgi/infosys/1365845479/491
> 整数nが与えられたとき、0からnの間の全ての数を書くのに必要とされる
> 「1」の数を返す関数があります。
> たとえば、『f(13)=6』になります。また、『f(1)=1』に注意。
> 『f(n)=n』となるような、2番目に大きいnを求めなさい
0592デフォルトの名無しさん2013/07/15(月) NY:AN:NY.AN
>>591
ttp://ideone.com/FrJ225
0593デフォルトの名無しさん2013/07/15(月) NY:AN:NY.AN
>>546
http://life-hack.jp/blog/charly/162
0594デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
>>591,592
>> 2番目に大きいn
0595片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/16(火) NY:AN:NY.AN
お題:フィーチャーフォン(ガラケー)の世界共通の次世代OS&共通基盤。
0596デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
void main(void)
{
init();
while (1) {
in();
task();
out();
}
}
0597片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/16(火) NY:AN:NY.AN
ガラケーが完全に死滅。漢字ROMと同じ失敗。
奴等はOSやドライバー、開発環境さえも共通化しなかった。合掌。
0598デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
TRON使ってる時点で先は見えてる
0599デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
>>597
>漢字ROMと同じ失敗。
kwsk
0600片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/16(火) NY:AN:NY.AN
解説しよう。昔のPCは、特殊なハードウェアの機能で漢字を表示できるようにしていた。これが漢字ROM。
計算機の進歩によりメモリー容量に余裕ができると、ソフトで漢字が表示できる。
そうすると特殊なハードが不要になり、低価格化し、設計における自由度が高まる。
0601片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/16(火) NY:AN:NY.AN
対して、日本のITは閉鎖的で不統一で自由度の低い道をひた走ってきた。
シグマはその典型だった。
ドコモが絵文字を発表すると、他の会社が独自拡張を作る。絵文字の不統一問題は
Unicodeで統一されるまで続いた。Shift_JISそのものにも似たような問題があったっけ?
0602片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/16(火) NY:AN:NY.AN
その結果として、付加価値を求めるあまりに、汎用的であるべきOSが特殊化されすぎ、システムや基盤がバラバラになり、開発は高コスト体質に陥る。

分業・分割統治、規格統一、汎用化が進まないのがガラケーの末路。
0603デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
>>600
当時のPCはパワーがないから、これはこれで仕方がない気がする。
0604片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/16(火) NY:AN:NY.AN
計算機が発達すればするほど、物量と自由度が広がり、特殊化は汎用化に勝てなくなる。
0605片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/17(水) NY:AN:NY.AN
例えば、ある携帯に時計を表示する機能を付けたいとき、汎用OSなら時計を表示するプログラムを用意すればいいが、
ガラケーの場合、時計を表示できるようにOSを改造しなければならない。
この辺の問題を解決できるような技術があればいいのだが
0606デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
CPUとかバスとかその辺のアーキテクチャも汎用にしないとならないのではないだろうか
0607デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
>>601
>日本のITは閉鎖的

それ、ITに限らず、日本の社会民族的体質だから。
行政はハコモノ。
製造業はハードに固執。ソフト(プログラマー)は虐げられ、軽視される。

民族的に、人間の存在性に関して肉体(ハード)に執着する国民性。精神(ソフト)は軽視。
飛行機事故とかでも異常に遺体回収に拘る。

西欧は宗教観的に精神性(魂)の方に重きを置くので、死人の遺体にあまり執着しない。肉体は精神の道具に過ぎない。老人の延命治療もあまりやらない。

だから、一時代的、一産業的問題ではないので、救いようはないと思うので、問題提起をするのは無駄なことだと思う。
どうやっても放っておいてもそういう方(箱に封じ込める習性)に走るから、日本は。毎度外圧に頼る他ない。
0608デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
要するにガラケーが躍進するためには、品質管理の自動化・分業化と、プログラムの動的ロードを静的ロードにするようなLLVM的な技術が必要ということか。

それにしても組み込み屋はANSI Cもないような環境でよく開発するよな。
0609デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
>>607
あれ?不思議だな
大和魂とかは消えたの?
「大和魂! と新聞屋が云う。大和魂! と掏摸が云う。大和魂が一躍して海を渡った。英国で大和魂の演説をする。ドイツで大和魂の芝居をする」
「大和魂はどんなものかと聞いたら、大和魂さと答えて行き過ぎた。五六間行ってからエヘンと云う声が聞こえた」
0610デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
>>601
>Shift_JISそのものにも似たような問題があったっけ?
78JIS とか 83JIS とか、はしご高/くち高とか、コップの中の嵐をやっているうちに CJK 漢字統合でけりがつきましたとさ
0611デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
>>608
基盤OSくらいは「さっさと」統一しろ!ってことだね自分から「ガラパゴス」とかいってるようじゃね
ソフトウェア分野では国内にどんな意味であれ一強がいないので話が進まない
0612デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
SH社は自社販売にこだわりすぎてる。21世紀の販売方法じゃない。優れたフォントやソフト基盤などの資産が
あるんなら、他社にも販売してもらって、利益を得る方法もある。IBMやGoogleから学ぶべき。
0613デフォルトの名無しさん2013/07/17(水) NY:AN:NY.AN
お題:MS-DOSエスケープシーケンスのエミュレータ
0614デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
>>613
つ DOS-Box + ANSI.SYS
0615デフォルトの名無しさん2013/07/18(木) NY:AN:NY.AN
>>609
>大和魂とかは

幻想
0616片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/19(金) NY:AN:NY.AN
お題:ひらがなで入力された計算式を計算してひらがなで結果を表示するプログラム。

例)
入力: いちたすいちは
にです。
0617片山博文MZパンク ◆0lBZNi.Q7evd 2013/07/19(金) NY:AN:NY.AN
追記:Unicodeを使っても構わない。
0618デフォルトの名無しさん2013/07/21(日) NY:AN:NY.AN
お題:夏の海でJKをナンパするプログラムを作れ
0619デフォルトの名無しさん2013/07/30(火) NY:AN:NY.AN
お題:このスレッド内から有効なお題を抜き出してリスト化せよ。
*回答数が1以上あれば有効とする。
*リストのフォーマットは自由。
0620デフォルトの名無しさん2013/07/30(火) NY:AN:NY.AN
619追記:
*文中に「お題:」が含まれていれば有効・無効の判定の対象とする。
*回答はお題へのレスアンカーがあれば判定の対象とする。
0621デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
>>620
お、お題:
0622デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
>>621
却下
0623デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
>>623
お題:
0624デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
>>625
お題:
06256202013/08/02(金) NY:AN:NY.AN
その、なんだ、俺がわるかったよ・・・
0626デフォルトの名無しさん2013/08/04(日) NY:AN:NY.AN
お題:lsi-c 試用版のコード64kiBの制限を外せ
0627デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
PCのメモリを64KBにする
0628デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
製品版を使う
0629デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>>620
使えない事が判明
0630デフォルトの名無しさん2013/08/10(土) NY:AN:NY.AN
お題:100以下の自然数でふたつの素数の積で表せる数を昇順にすべて表示せよ。
0631デフォルトの名無しさん2013/08/10(土) NY:AN:NY.AN
>>630
ttp://ideone.com/4igr8h
0632片山博文MZパンク ◆0lBZNi.Q7evd 2013/08/11(日) NY:AN:NY.AN
お題:URLを入力すると、そのWebページの見た目のイメージを出力するWebアプリ。
0633片山博文MZパンク ◆0lBZNi.Q7evd 2013/08/11(日) NY:AN:NY.AN
お題:漢字1字を入力すると、書き順、読み、画数、部首を表示するプログラム
0634片山博文MZパンク ◆0lBZNi.Q7evd 2013/08/11(日) NY:AN:NY.AN
お題:整数同士の掛け算の筆算の計算過程を表示するプログラム
0635デフォルトの名無しさん2013/08/11(日) NY:AN:NY.AN
あぼーんが進みすぎ
0636デフォルトの名無しさん2013/08/11(日) NY:AN:NY.AN
もうすぐお盆ですよ
0637デフォルトの名無しさん2013/08/11(日) NY:AN:NY.AN
おぼーん
0638デフォルトの名無しさん2013/08/12(月) NY:AN:NY.AN
どぼーん
0639デフォルトの名無しさん2013/08/12(月) NY:AN:NY.AN
>>632
Google Web Toolkitの非同期通信でサーバー側で画像取得しクライアントに返すし

>>633
Web辞書サイトを非同期でスクレイピングして独自DBだと言い張る
>>634
普通にコマンドパターンで計算過程を履歴にのこす

Java
0640片山博文MZパンク ◆0lBZNi.Q7evd 2013/08/12(月) NY:AN:NY.AN
>>639
なかなかやるではないか。褒めてつかわすぞぉ。
0641片山博文MZパンク ◆0lBZNi.Q7evd 2013/08/12(月) NY:AN:NY.AN
ただ、書き順を表すのは大変だったな。一画一画をそのまた
分解して、後は画像処理の領域計算。塗り潰しの動画作成なら
シンプルだけどエッジがはっきりしないからな。
0642デフォルトの名無しさん2013/08/16(金) NY:AN:NY.AN
>>639
ソース希望
0643デフォルトの名無しさん2013/08/20(火) NY:AN:NY.AN
セクシーなコードを書け
ただしエロ禁止
0644デフォルトの名無しさん2013/08/20(火) NY:AN:NY.AN
>>643
http://nojiriko.asia/prolog/yakumotatsu.html
0645片山博文MZパンク ◆0lBZNi.Q7evd 2013/08/20(火) NY:AN:NY.AN
お題:世界を救うスクリーンセーバーを作れ。
0646片山博文MZパンク ◆0lBZNi.Q7evd 2013/08/26(月) NY:AN:NY.AN
おお美しき君よ、我が家の晩飯をすくう飯屋となるのだ
0647 ◆0lBZNi.Q7evd 2013/08/26(月) NY:AN:NY.AN
変えないと
0648片山博文MZコスモ ◆T6xkBnTXz7B0 2013/08/26(月) NY:AN:NY.AN
片山博文MZパンクは片山博文MZコスモに転生しました。
0649デフォルトの名無しさん2013/09/06(金) 00:28:06.80
>>630 Maxima
for i:2 thru 100 do if lsum(a[2],a,ifactors(i))=2 then print(i);
0650デフォルトの名無しさん2013/09/06(金) 12:54:59.17
お題:81以下の自然数で九九に現れない数を昇順にすべて表示せよ。
0651デフォルトの名無しさん2013/09/06(金) 20:54:06.74
>>650
#include <stdio.h>
int main(){
int i,j;
for(i=1;i<82;i++){
for(j=9;i%j;j--);
if(i/j>9)printf("%d ",i);
}
return 0;
}
0652デフォルトの名無しさん2013/09/07(土) 04:44:40.83
>>651
素数判定モドキなんだからエラトステネスの篩モドキにしたらどうよ
0653 ◆QZschizo.ptH 2013/09/07(土) 12:23:33.50
http://toro.2ch.net/test/read.cgi/tech/1377511459/294
0654デフォルトの名無しさん2013/09/07(土) 16:56:48.58
>>653
試しに手でやってみたらわりとあっさり解が見つかった。
解はいっぱいあるということか。
×○×○×○
○××○○×
○×○××○
×○×○○×
○×○×○×
×○○××○
0655デフォルトの名無しさん2013/09/07(土) 18:41:13.26
>>654
合ってるかどうか分からんけど 41844 個見つかった
06566552013/09/07(土) 18:48:23.93
条件見落としてた
5868 個だった
06576552013/09/07(土) 18:56:34.93
4140 個まで減ったwww
0658デフォルトの名無しさん2013/09/07(土) 20:06:50.53
>>650 R
> (1:81)[-(1:9%o%1:9)]
[1] 11 13 17 19 22 23 26 29 31 33 34 37 38 39 41 43 44 46 47 50 51 52 53
[24] 55 57 58 59 60 61 62 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80
0659 忍法帖【Lv=12,xxxPT】(1+0:5) 2013/09/07(土) 20:23:04.71
>>657
41844になるのは条件見落としすぎだろうと思ったけど、5868で止まりそうになった俺は人のこと言えなかった。
4140でOKかな?
0660デフォルトの名無しさん2013/09/07(土) 21:41:47.58
>>653
http://nojiriko.asia/prolog/sure_tateru_mademonai128_294.html
06616602013/09/08(日) 04:38:38.82
行候補ならびを得る/1 という定義が間違っていた。
書き直したから、興味ある人は見て下さい。
0662片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/14(土) 23:39:54.97
お題:四則演算ができる逆ポーランド記法計算器を作れ
0663片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/14(土) 23:57:30.25
お題:(a)有理数クラスと(b)区間演算クラスを作れ
0664片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/15(日) 00:11:10.53
お題:テキストファイルを読み込み、その中で最もよく使われている単語ベスト3を表示するプログラム
0665片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/15(日) 00:24:33.63
お題:座標で与えられた2つの三角形が相似かどうか判定するプログラム
0666片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/15(日) 00:44:00.58
(画像処理・上級者向け)
お題:ジグソーパズルを自動で解いて完成画像を出力するプログラム。
ばらばらのピースが写ったスキャナー画像(背景は単一色で、ピースの色と重複しない)が与えられる。
0667デフォルトの名無しさん2013/09/15(日) 07:56:43.88
お題:n番目からn+10番目のフィボナッチ数の総和を求めよ。
0668デフォルトの名無しさん2013/09/15(日) 08:05:37.39
>>667 訂正
お題:n番目からn+9番目のフィボナッチ数の総和を求めよ。
0669デフォルトの名無しさん2013/09/17(火) 04:30:31.70
かくれんぼ
0670片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/19(木) 21:03:53.31
お題:VB6からMySQLを使えるようにせよ。
0671デフォルトの名無しさん2013/09/19(木) 21:41:50.12
>>670
ODBC使え、で終わり。
0672デフォルトの名無しさん2013/09/19(木) 22:06:32.62
この際、
お題:MySQLからVB6を使えるようにせよ。
にしてみたら?
0673デフォルトの名無しさん2013/09/19(木) 22:27:05.13
どういうことだよwww
0674デフォルトの名無しさん2013/09/19(木) 23:20:22.88
ストアドプロシージャとか構文解析を拡張するとかそのへん?
0675デフォルトの名無しさん2013/09/20(金) 20:58:13.44
世界を救うスクリーンセーバーはまだか?
0676桃白白2013/09/23(月) 20:34:20.02
たおぱいぱーい!はーい!!
>>668
http://ideone.com/iOViec
0677デフォルトの名無しさん2013/09/24(火) 18:32:25.26
>>668

int fibonacciSum10(int n) {
int total = 0;
for (int i = 0; i < 10; i++) {
total += fibonacchi(n + i);
}
return total;
}

int fibonacci(int n) {
if (n <= 0) return 0;
if (n == 1) return 1;
return fibonacci(n - 2) + fibonacci(n - 1);
}
0678デフォルトの名無しさん2013/09/25(水) 00:06:44.94
>>668
ttp://ideone.com/CreBzr
0679片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/25(水) 00:43:09.12
お題:あるソフトのバージョン情報をWeb上のテキストファイルに保存しておき、そのソフトが起動するたびに
非同期でそのテキストをHTTP接続で読み込み、バージョンアップの有無を確認できるような仕組みを作れ。
自分がよく使う言語で書くこと。
0680片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/25(水) 00:59:11.51
お題:あるソフトがその使用準備において、乱数などを使ってその使用環境固有の登録キーを
生成する。登録キーはその環境では以後変更できないものとする。
その後、そのソフトは、登録キーをそのソフトに関係するサーバーに登録する。
サーバーは登録キーが登録されたら、その登録キーに対する照会に成功する。
登録キーに対する照会が成功しなければ、そのソフトは使用準備に留まり、運用することはできない。
このような仕組み(アクティベーション)を作れ。
0681片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/25(水) 01:12:56.26
プログラムとWeb開発が両方できないと、こういった仕組みは作れない。
Web開発はプログラミングではないという人も居るかも知れないが、
ソフトを構成する重要なシステムの一部だと考えれば、プログラマーとて無視はできない。
0682!ninja2013/09/25(水) 01:40:43.41
>>680
> 登録キーはその環境では以後変更できないものとする。
ド素人が自慢気に提案する絵に描いた餅の筆頭だよなそれ。
0683デフォルトの名無しさん2013/09/25(水) 03:40:10.60
>>681
アクティベーションがWeb開発って
お前の通信はWebしかないのか
0684デフォルトの名無しさん2013/09/25(水) 03:57:26.52
>使用環境固有の
ここでもうひろみちゅせんせー辺りのセキュリティ啓蒙活動してる御仁たちががっくりと項垂れるレベルだよ

現在の技術では、ユーザ登録の動線を作る以外にはユーザと合意を取れる形で単一個有性を保証する方法はない、と皆考えて今のネットバンクの使いにくさとかがあるわけよ
お前の要件は現実認識が甘すぎる世迷言だ

iPhoneの指紋認識もその筋の人たちに早速突破されてたりと、なにかと忙しい世界だ
お前はセキュリティ問題について物知り顔するのだけはやめといた方がいいと思う
0685片山博文MZコスモ ◆T6xkBnTXz7B0 2013/09/25(水) 05:36:12.98
すみません。また、お馬鹿トラップにはまってしまったと思い、反省してます。
0686デフォルトの名無しさん2013/09/26(木) 05:03:33.80
>>668 Io
f:=method(n,a:=5 sqrt;11*(((1+a)/2)**(n+6)/a)round)

Io> f(1)
==> 143
Io> f(10)
==> 10857
0687デフォルトの名無しさん2013/09/26(木) 14:42:41.63
何語よそれ
0688デフォルトの名無しさん2013/09/26(木) 15:29:51.80
>>687
あんまメジャーではなさげだし検索にも掛かり難そうな名前だからしゃあないけど、
一行目にもプロンプトにもIoって書いてあるようにみえるんだが…
0689デフォルトの名無しさん2013/09/26(木) 18:54:45.73
>>688
では改めて問う。>>686は何語よ?
0690桃白白 ◆9Jro6YFwm650 2013/09/29(日) 18:50:56.68
>>662
たおぱいぱーい!んはーい!!
http://ideone.com/ffiI9h
0691デフォルトの名無しさん2013/09/29(日) 21:37:38.01
>>684
仮にCPUID/Processor-SerialNumberが生き残っていたとしたら、状況は変わったでしょうか?
0692デフォルトの名無しさん2013/09/29(日) 21:44:33.51
宿題スレなんだから課題に文句言わずにとりあえず作ったれよw

ちょっと難しいとなんだかんだ理屈つけてやらないんだから
ダメ学生の巣窟だなここ
0693デフォルトの名無しさん2013/09/29(日) 21:53:18.73
>>692
http://toro.2ch.net/test/read.cgi/tech/1370255305/
http://toro.2ch.net/test/read.cgi/tech/1313183984/
0694片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/01(火) 07:20:25.68
(上級者向け)
お題:GCCかLLVMを使ってVB6互換のコンパイラを作れ。
0695デフォルトの名無しさん2013/10/01(火) 10:06:54.28
FORMはどうするの?
0696片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/01(火) 10:16:14.58
>>695
VB6に特化したリソースコンパイラを作る
0697デフォルトの名無しさん2013/10/01(火) 11:35:15.14
>>694
作った。
0698デフォルトの名無しさん2013/10/01(火) 13:49:40.24
>>697
作ったら公開もしくは販売して下さい。
0699 ◆QZaw55cn4c 2013/10/01(火) 18:51:20.60
>>694
gcc-2.6.3 や emacs/demacs を PC98-i386/go32 に移植した猛者がおられましたが、今から思い返してもつくづく偉業だったと思います。
今なら、C# が gcc に参画されたり、java に真の意味での参照渡しが拡張仕様として含ませることでしょうね。
とても手が届きませんが‥‥
0700デフォルトの名無しさん2013/10/06(日) 23:39:35.80
お題:重複した文字のうち最初に現れた文字だけ削除する。
例
"Hello, world" -> "Hel, world"
0701デフォルトの名無しさん2013/10/07(月) 00:27:06.39
static String removeFirstDeprecatedCharacter(String s) {
Set<Character> appears = new HashSet<>();
Set<Character> deprecated = new HashSet<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (appears.contains(c)) {
deprecated.add(c);
} else {
appears.add(c);
}
}
char[] dest = new char[s.length() - deprecated.size()];
int j = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (deprecated.contains(c)) {
deprecated.remove(c);
} else {
dest[j++] = c;
}
}
return new String(dest);
}
0702デフォルトの名無しさん2013/10/07(月) 00:39:20.06
deprecated
0703デフォルトの名無しさん2013/10/07(月) 00:44:32.83
これはむしろおいしい
0704デフォルトの名無しさん2013/10/07(月) 02:12:44.40
>>700
#include <stdio.h>
int main(void){
char s[100];
int a[256];
fgets(s, 100, stdin);
for (int i = 0; s[i]; ++i)++a[s[i] + 0];
for (int i = 0; s[i]; ++i) {
if (a[s[i] + 0] < 2)printf("%c", s[i]);
a[s[i] + 0] = 0;
}
return 0;
}
0705デフォルトの名無しさん2013/10/07(月) 02:36:31.03
最近のCって配列宣言したら0初期化とかされるんだっけ
0706デフォルトの名無しさん2013/10/07(月) 03:18:36.82
int a[256]={0};
が必要か
0707デフォルトの名無しさん2013/10/07(月) 03:21:25.97
>>704
文字列の左から2回サーチしているけど右からサーチすれば1回で…
いや、文字列逆転させないとならんか。聞き流して
0708デフォルトの名無しさん2013/10/07(月) 05:24:45.96
>>705-706
グローバル変数だと強制的に初期化されて、
ローカル変数だと初期値があれば初期化される、だったような。
>>707
右から読んでもその文字が初出かどうか分からないような。
1パスで処理する(↓)ことも出来なくはないけどバッファが必要になるし、
バッファの最大長が条件によってほぼ入力長になるから実質2パスになる。
バッファ内での走査を許せばバッファ長はちょっと節約できるけど、雀の涙だしなぁ…
(function(input){
  var output="",buffer="",chrdat={},i,c,b;
  for(i=0;i<input.length;i++){
    c=input.charCodeAt(i);
    buffer+=input.charAt(i);
    if(!chrdat[c]){chrdat[c]={ic:1,oc:0};continue;}
    chrdat[c].ic++;
    while(buffer.length && chrdat[b=buffer.charCodeAt(0)].ic>1){
      chrdat[b].oc++;
      if(chrdat[b].oc>1)output+=buffer.charAt(0);
      buffer=buffer.slice(1);
  }}
  while(buffer.length){
    chrdat[b=buffer.charCodeAt(0)].oc++;
    if(chrdat[b].ic==1||chrdat[b].oc>1)output+=buffer.charAt(0);
    buffer=buffer.slice(1);
  }
  return output;
})("Hello, world")//("Hello, world"+"Hello, world"+"Hello, world")
0709 ◆QZaw55cn4c 2013/10/07(月) 06:23:37.44
>>708
×グローバル変数
△静的変数、static 変数とグローバルスコープを持つ変数
×ローカル変数
○動的変数、auto変数
0710デフォルトの名無しさん2013/10/07(月) 09:07:45.21
>>700
Squeak Smalltalk で。

| str bag set |
str := 'Hello, world'.
bag := str asBag.
set := bag removeAllSuchThat: [:chr | (bag occurrencesOf: chr) = 1]; asSet.
^str inject: '' into: [:acc :chr |
  acc, ((set includes: chr) ifTrue: [set remove: chr. ''] ifFalse: [chr asString])]
"=> 'Hel, world' "
0711デフォルトの名無しさん2013/10/08(火) 17:41:42.50
>>700
どうしても"o"が消える理由がわからないのだけど。
07127112013/10/08(火) 17:42:42.54
あ、わかりました。ごめんなさい。
07137112013/10/09(水) 18:27:08.25
>>700 % Prolog

重複した文字のうち最初に現れた文字だけ削除する(_文字列,_重複した文字のうち最初に現れた文字だけ削除された文字列) :-
    重複した文字のうち最初に現れた文字だけ削除する(_文字列,[],_重複した文字のうち最初に現れた文字だけ削除された文字列).

重複した文字のうち最初に現れた文字だけ削除する(_文字列,_既に削除対象となった文字列ならび,_重複した文字のうち最初に現れた文字だけ削除された文字列) :-
    '重複した文字のうち最初に現れた文字の前方文字列・後方文字列'(_文字列,_削除対象文字列,_すでに削除対象となった文字列ならび,_前方文字列,_後方文字列),
    重複した文字のうち最初に現れた文字だけ削除する(_後方文字列,[_削除対象文字列|_既に削除対象となった文字列ならび],_重複した文字のうち最初に現れた文字だけ削除された後方文字列),
    atomic_list_concat([_前方文字列,_重複した文字のうち最初に現れた文字だけ削除された後方文字列],_重複した文字のうち最初に現れた文字だけ削除された文字列),!.
重複した文字のうち最初に現れた文字だけ削除する(_文字列,_,_文字列).

'重複した文字のうち最初に現れた文字の前方文字列・後方文字列'(_文字列,_削除対象文字列,_既に削除対象となった文字列ならび,_前方文字列,_後方文字列) :-
    '文字列を検索し前方文字列・後方文字列を得る'(_文字列,_前方文字列,_削除対象文字列,_後方文字列),
    \+(member(_削除対象文字列,_既に削除対象となった文字列ならび)),
    sub_atom(_後方文字列,_,_,_,_削除対象文字列),!.

'文字列を検索し前方文字列・後方文字列を得る'(_文字列,_前方文字列,_対象文字列,_後方文字列) :-
    sub_atom(_文字列,_開始位置,_,_残り長さ,_対象文字列),
    sub_atom(_文字列,0,_開始位置,_,_前方文字列),
    sub_atom(_文字列,_,_残り長さ,0,_後方文字列).
0714デフォルトの名無しさん2013/10/10(木) 02:17:07.27
なんだこれw
prolog知らんけど、他の知らん言語より読解不能に見えるのはなぜなんだろ
日本語がふんだんに使われているってのに、難解な契約書でも眺めてるようで気分がげんなりする
0715デフォルトの名無しさん2013/10/10(木) 05:12:53.61
Prologって最初はフランス語の機械的処理を目的に作られたらしいな
でもLISPとDBの両方の機能を持ち、しかもバックトラックが簡単に出来てしまうので
変な使い方をされるようになってしまった
0716デフォルトの名無しさん2013/10/10(木) 05:43:50.32
COBOL 的に使えるね
標準的な処理系は何?
07177132013/10/10(木) 06:28:08.61
>>713 は"_既に"であるべきところが一箇所"_すでに"になっていた。
% スケルトンだと以下の通り。

p_1(_1,_2) :-
  p_2(_1,[],_2).

p_2(_1,_2,_3) :-
  p_3(_1,_4,_2,_5,_6),
  p_2(_6,[_4|_2],_7),
  atomic_list_concat([_4,_7],_3),!.
p_2(_1,_,_1).

p_3(_1,_2,_3,_4,_5) :-
  p_4(_1,_4,_2,_5),
  \+(member(_2,_3)),
  sub_atom(_5,_,_,_,_2),!.

p_4(_1,_2,_3,_4) :-
  sub_atom(_1,_5,_,_6,_3),
  sub_atom(_1,0,_5,_,_2),
  sub_atom(_1,_,_6,0,_4).
0718デフォルトの名無しさん2013/10/10(木) 06:51:29.53
>>716
Sicustus Prologというのが有名だが、多バイト文字系に難がある。
それで日本では、
SWI-Prolog や AZ-Prolog が好まれている。
0719デフォルトの名無しさん2013/10/10(木) 07:45:33.20
仕様の小さい高水準言語として知られる SmallTalk,Scheme,Prologの中で、
Squeak SmallTalk が >>710 に出てきたので、
それとの対照を主題にした >>713 >>717 なのだが、どんなものだろう。
0720デフォルトの名無しさん2013/10/10(木) 13:01:32.55
どんなものだろうとか言われても困るね。
Prologがどんなものか以前に、
そもそも読ませる気ゼロのコードだから
こっちも読む気おきないし。
0721デフォルトの名無しさん2013/10/10(木) 15:55:18.19
>>720
>>710 と >>717 が遠いな、思ってくれればよいというだけだろう。
0722デフォルトの名無しさん2013/10/10(木) 19:40:11.07
こうして見せてもらうと、PrologっていうのはJAVAというよりか
COBOLに近い言語だね。骨格的に。
0723デフォルトの名無しさん2013/10/10(木) 21:51:58.91
お遊びには最高の言語かもな

GNU Prologがあるし誰でも使える
0724片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/11(金) 19:43:59.75
お題:与えられたVisual Basicソースプログラム中のForやDo WhileやDo Loop WhileをDo Loopと
Ifに変換し、Select CaseをIfに変換するプログラムを作れ(桃白白さんの発案)。
0725デフォルトの名無しさん2013/10/11(金) 21:03:50.86
>>724
BNFよこせ
0726デフォルトの名無しさん2013/10/12(土) 00:17:17.14
>>700 Io
f := method(s,
r := list
s foreach(v,r push(v asCharacter))
r select(i,v,(a:=s findSeq(v))!=i or s reverseFindSeq(v)==a)join
)

Io> f("Hello, word")
==> Hel, word
0727デフォルトの名無しさん2013/10/12(土) 04:45:27.97
>>700
Haskell
f :: Eq a => [a] -> [a]
f = g []
g :: Eq a => [a] -> [a] -> [a]
g _ [] = []
g l (x:xs)
  | x `notElem` l && x `elem` xs = g (x : l) xs
  | otherwise = x : g l xs
0728デフォルトの名無しさん2013/10/12(土) 08:05:13.82
>>700 R
f <- function(s){
a <- unlist(strsplit(s,""))
b <- table(a)
d <- names(b[b>1])
if(length(d)==0)return(s)
for(v in d){s <- s[-regexpr(v,s)])}
}
0729デフォルトの名無しさん2013/10/12(土) 08:36:24.54
>>728 訂正
>>700 R
f <- function(s){
a <- unlist(strsplit(s,""))
b <- table(a)
d <- names(b[b>1])
if(length(d)==0)return(s)
i <- c()
for(v in d){i <- c(i,which(a==v)[1])}
paste(a[-i],collapse="")
}
0730デフォルトの名無しさん2013/10/12(土) 23:17:20.46
お題:数字を3桁ごとにカンマ区切りでフォーマットした文字列をふたつ取り
合計を同じフォーマット文字列で返す。
例
"18,446,744,073,709,551,616"
"1,099,511,627,776"
  ↓
"18,446,745,173,221,179,392"
0731デフォルトの名無しさん2013/10/13(日) 00:02:12.33
>>730
求められているコードとは違うとわかっていながら、つい。^^;
Squeak Smalltalk

(('18,446,744,073,709,551,616' copyWithout: $,) + ('1,099,511,627,776' copyWithout: $,)
) asInteger asStringWithCommas "=> '18,446,745,173,221,179,392' "
0732デフォルトの名無しさん2013/10/13(日) 05:08:15.64
>>730 Haskell
import Data.Function (on)
main = putStrLn $ foo "18,446,744,073,709,551,616" "1,099,511,627,776"
foo = f (+) 3 ',' ','
f o n c d s t = let (_, r) = foldr (h n c) (n, []) $ show $ (o `on` read . filter (/= d)) s t in r
h n d x (0, l) = (n - 1, x : d : l)
h _ _ x (m, l) = (m - 1, x : l)
0733片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/14(月) 19:55:26.43
お題:再帰を使わずにハノイの塔を解くプログラム。
0734デフォルトの名無しさん2013/10/14(月) 21:53:40.02
>>733
3つの塔ABC間での移動に番号を付けて
A<->B=6,A<->C=5,B<->C=3とする。
あとは6,5,3の繰り返し。
0735片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/14(月) 23:55:46.88
お題:次の条件を満たす、なるべく高速で汎用的な字句解析器生成器を作れ。

i. 静的に格納された関数ポインタを含む木構造データに基づいて解析する。
ii. 状態によって解析方法を変更できる。
iii. 空白を無視するフラグがある。
iv. 1から始まる行番号を保持するオプションがある。
0736 ◆QZaw55cn4c 2013/10/15(火) 01:40:41.08
そういえば CodeIQ というのがあるようだけれども「就活/転活する気のないやつは出すな」とか身勝手な注文をつけるとは、馬鹿なサイトだねえ
これだったら、かつてのCマガのアレの方が遥かにましだね
0737デフォルトの名無しさん2013/10/15(火) 07:50:46.96
>なるべく高速で汎用的な

こんな指示が上から降ってきたら俺はその職場全力で逃げ出したい
0738デフォルトの名無しさん2013/10/16(水) 03:18:10.43
>>734
ttp://ideone.com/Sa6gjW
0739デフォルトの名無しさん2013/10/16(水) 11:45:01.85
>>737
もしくは、ただちにその上司を槍で突くかだな。
0740片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/16(水) 17:50:49.67
「なるべく高速で汎用的な」は、撤回する。まぁ、作るのを楽しんでくれれば嬉しい。
0741デフォルトの名無しさん2013/10/16(水) 18:52:49.16
>>740
そういう場合は「望ましい」という都合の良い官僚的ビジネス文書表現があるよね。
「高速で汎用的であればなお望ましい」
ってね。
0742デフォルトの名無しさん2013/10/20(日) 00:34:43.18
お題:辺の長さが63の正三角形を辺の長さがすべて異なる整数値をもつ三角形3個に分割する。
0743デフォルトの名無しさん2013/10/20(日) 02:05:25.23
>>742
ttp://ideone.com/RiI0H7
0744片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/24(木) 19:42:07.45
お題:スクリーンセーバーと管理サーバーにより、大規模計算ができるボットネットを構築し、
世界を救うビジネスを開始せよ。スクリーンセーバーの対応OSはWindows/iOS/Androidとする。
0745片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/24(木) 19:52:19.41
追記:スクリーンセーバーが作動しているときに広告を表示し、広告収入を稼ぐこと。
0746デフォルトの名無しさん2013/10/24(木) 20:02:06.10
スクリーンセーバーとか嫌だな
サイトに埋め込んで閲覧者のリソースの一部を借りるライブラリの方が面白い
0747デフォルトの名無しさん2013/10/24(木) 21:19:52.22
医学系分散コンピューティングプロジェクトTeam 2ch
http://ikura.2ch.net/test/read.cgi/event/1351624630/
0748デフォルトの名無しさん2013/10/25(金) 02:26:04.79
>>744
まずスマホでスクリーンセーバーってなんだよ
まさかとは思うがスクリーンオフ時にぶん回せとでも?
0749デフォルトの名無しさん2013/10/25(金) 06:17:14.18
バッテリー死亡フラグですな。
0750 ◆QZaw55cn4c 2013/10/25(金) 08:08:24.47
スクリーンセーバは仕事場にあって遊びが許される場だからね
xscreensaver が Windows に移植されるとうれしいのだが
0751デフォルトの名無しさん2013/10/25(金) 10:42:43.06
だからってスマホで許されるわけじゃないだろうに。
0752デフォルトの名無しさん2013/10/25(金) 15:15:12.00
やるんならせめてP2Pのファイル共有ソフトとかにしておいて欲しいわ。
0753デフォルトの名無しさん2013/10/27(日) 17:14:19.10
P2Pもそろそろ新しいのがほしい、機能としては winny3 としてセキュリティ面だけ強化したのでいい
キャッシュは秘密分散にしたいものだ

秘密分散(電子割符)についてはガードが固いようでggっても具体的なアルゴリズムがわからない‥‥
0754デフォルトの名無しさん2013/10/27(日) 19:16:51.78
>>753
暗号利用モードをCBCにしてバイト単位でストライピングすりゃよくね?
全てのブロックが別のブロック(のうちよりオフセットが小さい部分)に依存するから、
全部が揃わないと復元不能になるっていう条件は満たせるはず。

消失対策はストライピングした分割ブロックに対してエラー訂正掛けておけばOK。
分割数が少ないうちはRAID5/6みたいなパリティ方式で復元すればいいし、
分割数が多くなってきたら普通のエラー訂正符号に切り替えればよい。
0755デフォルトの名無しさん2013/10/27(日) 21:24:56.84
>>754
>CBC
しかし、最初からある位置まで全部そろえば、そこまでは見えるわけだね
>消失対策
RAID5/6 はよく理解できるが、現在の秘密分散技術は、分割数と冗長度を独立に設定できるみたいだ、どんなアルゴリズムなんだ?
0756デフォルトの名無しさん2013/10/27(日) 22:40:16.30
>>755
> しかし、最初からある位置まで全部そろえば
且つ、暗号鍵が有ればな。だが、それでは所詮ストライピング一周目すら周りきれないし、
古典的手法に逆戻りしてる感はあるが最初に全ストライプ一周分ランダムデータでパディングしとけば回避できる。
厳密にはCBCだけじゃなくて鍵スケジューリングも考察すべきかも知れんが詳しくは設計時に考えれ。

> 分割数と冗長度を独立に設定できる
訂正、754の下2行は分割数じゃなくてパリティ数(冗長度)だな。
ストライプ数(内部的分割数)+パリティ数(冗長度)=ノード数(外観的分割数)
パリティ数増えたら面倒くさいから誤り訂正符号使ってもよいと思うけど、
消滅ビットは確定できるから、軟判定復号で設計するのが正しい筈。
誤り訂正符号や軟判定復号は無線通信関連で資料があるはずだよ。
0757片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/29(火) 11:56:01.41
>>750
XScreenSaverの一部を移植してみたよ!!!
http://katahiromz.web.fc2.com/xscreensaverwin/
https://github.com/katahiromz/XScreenSaverWin
0758デフォルトの名無しさん2013/10/29(火) 23:10:25.99
>>757
おお!thx! thx! とってもうれしいです
0759デフォルトの名無しさん2013/10/30(水) 03:15:49.95
>>756
きちんと符号論をおっかけないといけないみたいですね、ガロアとか聞くだけで敬遠してましたが‥‥やるしかないか
0760片山博文MZコスモ ◆T6xkBnTXz7B0 2013/10/31(木) 16:29:32.41
XScreenSaverの40個のスクリーンセーバーを移植したよ。
http://katahiromz.web.fc2.com/xscreensaverwin/
https://github.com/katahiromz/XScreenSaverWin
0761デフォルトの名無しさん2013/11/01(金) 15:26:43.54
age
0762デフォルトの名無しさん2013/11/01(金) 18:42:02.24
お題: map reduce を使って、複数の集合の積集合を求める

ググってみたんだけど、どうにも丁度いいものがなくて。
知恵を貸して。
0763デフォルトの名無しさん2013/11/01(金) 21:14:47.63
map reduce って GoogleのMapReduce ?
たんに map と reduce ?
0764デフォルトの名無しさん2013/11/01(金) 21:58:59.08
実際に使うのはRiakになるかもしれないから、mapとreduceを使ったアルゴリズムが分かれば、何でもいいです
0765デフォルトの名無しさん2013/11/02(土) 13:58:51.92
>>762 Io
Io> d:=list(list(1,2,3),list(2,3,4,5),list(1,2,3,4,5))
==> list(list(1, 2, 3), list(2, 3, 4, 5), list(1, 2, 3, 4, 5))
Io> d reduce(a,b,a intersect(b))
==> list(2, 3)
0766デフォルトの名無しさん2013/11/02(土) 19:58:57.00
お題:ときどき答が違う足し算。
0767片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/02(土) 20:20:53.60
>>766
int f(int a, int b)
{
if (rand() % 4 == 3) a++;
return a + b;
}
0768デフォルトの名無しさん2013/11/02(土) 20:27:43.26
>>766
特定の値のときだけ違う答えにするんじゃだめなのか?
0769デフォルトの名無しさん2013/11/02(土) 22:29:17.47
>>768
では、素数の時だけ違う答えにしてください。
0770デフォルトの名無しさん2013/11/02(土) 23:45:51.80
素数かどうかの判定関数を提供してくれればすぐできるね
0771デフォルトの名無しさん2013/11/03(日) 00:34:28.30
>>765
reduceの使い方を勘違いしてた
さんくす
ちなみにそれなんて言語?lisp?
0772デフォルトの名無しさん2013/11/03(日) 00:43:09.41
>>771
なんか前にも言語聞いてる奴居なかったか?
「>>762 【Io】」
「【Io】> d:=list(list(1,2,3),list(2,3,4,5),list(1,2,3,4,5))」
0773デフォルトの名無しさん2013/11/03(日) 08:26:53.55
>>772
おおっ、知らない言語だった
ありがとう
0774片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/04(月) 12:11:12.05
XScreenSaverの68個のスクリーンセーバーを移植したよ!!
マトリックス風のスクリーンセーバーもあるよ!!
http://katahiromz.web.fc2.com/xscreensaverwin/
https://github.com/katahiromz/XScreenSaverWin
0775 ◆QZaw55cn4c 2013/11/04(月) 12:22:18.23
>>774
おお!
0776デフォルトの名無しさん2013/11/05(火) 12:07:30.92
お題:データが昇順にソート済みか判定する。
0777デフォルトの名無しさん2013/11/05(火) 16:42:13.27
>>776 Prolog

データが昇順にソート済みか判定する(_データ) :-
  forall(append(_,[A,B|_],_データ),A @=< B).
0778デフォルトの名無しさん2013/11/06(水) 00:13:45.12
お題:ideone.comに侵入して「hacked by 」と表示させよ(はあなたのハンドル名)。
ただし、サービスを停止させてはならない。
0779デフォルトの名無しさん2013/11/06(水) 00:40:45.75
>>776
Squeak Smalltalk

#(3 4 2 1) isSorted "=> false "
#(1 2 3 4) isSorted "=> true "

わかっちゃいるんだが、ついね。つい^^;
でもデフォルトで用意されているから、あえて使わないのもどうかと。
0780デフォルトの名無しさん2013/11/06(水) 08:19:36.44
>>776 Haskell

import Data.List
import System.Random

main = do
 gen <- getStdGen
 let l = take 10000 $ randomRs (1, 100000) gen :: []
 print $ check l
 print $ check $ quickSort l

isSorted :: Ord a => [a] -> Bool
isSorted xs = and $ zipWith (<=) xs (tail xs)

quickSort :: (Ord a, Eq a) => [a] -> [a]
quickSort = qsort []
 where
  qsort r [] = r
  qsort r [x] = x : r
  qsort r (x:xs) = qsort' r x xs [] []

  qsort' r p [] lt ge = qsort (p : qsort r ge) lt
  qsort' r p (x:xs) lt ge
   | x < p = qsort' r p xs (x : lt) ge
   | otherwise = qsort' r p xs lt (x : ge)
07817802013/11/06(水) 08:20:50.67
訂正
 print $ isSorted l
 print $ isSorted $ quickSort l
07827802013/11/06(水) 08:24:20.77
:: []にInt入れるの忘れてた
0783デフォルトの名無しさん2013/11/07(木) 02:10:13.26
お題:
1.画面の中央に「あなたのパソコンを破壊しています」と書かれた黒い箱を五秒間表示する。
2.十秒間、画面のあちこちにウイルスを連想させるものを次々と表示する。
3.約一分間、閉じることができないウィンドウで嘘の進捗状況を「何%破壊完了しました」と表示する。

以上の動作を順番に最小コードで再現せよ。
0784デフォルトの名無しさん2013/11/07(木) 02:43:06.04
改造して本物作る気だな。
0785デフォルトの名無しさん2013/11/07(木) 07:24:39.91
刑法第168条の2と3は作成指示した方も適用されるんだっけ?
0786デフォルトの名無しさん2013/11/07(木) 18:38:50.22
FillRect
TextOut
BitBlt
WM_CLOSE
SetWindowText
0787デフォルトの名無しさん2013/11/07(木) 20:12:22.74
>>776 JavaScript(ES6)
arr = [1,2,3,4]
arr.every((v,i,a)=>i?a[i-1]<v:1) //true
0788デフォルトの名無しさん2013/11/08(金) 08:21:51.95
>>786
ポータブルじゃない上に最小コードじゃない。やりなおし。
0789片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/08(金) 10:22:12.03
お題:
Arc http://msdn.microsoft.com/ja-jp/library/cc428303.aspx?ppud=4
XDrawArc http://xjman.dsl.gr.jp/man/man3/XDrawArc.3x.html
を参考に、次の【1】【2】【3】【4】に当てはまる式を書きなさい。

int XDrawArc(Display *dpy, Drawable d, GC gc,
int x, int y, unsigned int width, unsigned int height,
int angle1, int angle2)
{
; ; XGCValues *values;
; ; HPEN hPen;
; ; HGDIOBJ hPenOld;
; ; int xStartArc, yStartArc, xEndArc, yEndArc;

; ; ...(省略)...

; ; xStartArc = 【1】;
; ; yStartArc = 【2】;
; ; xEndArc = 【3】;
; ; yEndArc = 【4】;

; ; hPenOld = SelectObject(dpy, hPen);
; ; Arc(dpy, x, y, x + width, y + height, xStartArc, yStartArc, xEndArc, yEndArc);
; ; SelectObject(dpy, hPenOld);

; ; DeleteObject(hPen);
; ; return 0;
}
0790デフォルトの名無しさん2013/11/08(金) 13:13:54.82
三角関数の使い方を忘れたからって他人に丸投げかいw
象限区切って考えたり面倒なんだからてめぇでやれよ。
0791デフォルトの名無しさん2013/11/08(金) 14:20:09.83
ヒント!&nbsp;&nbsp;&nbsp;&nbsp;
template<class&nbsp;T>
Vector2<T>&nbsp;TransForm(Vector2<T>&amp;&nbsp;Length,&nbsp;double&nbsp;RotRadian,&nbsp;Vector2<T>&amp;&nbsp;Scale,&nbsp;Vector2<T>&amp;&nbsp;Move)
{
&nbsp;&nbsp;&nbsp;&nbsp;Vector2<T>&nbsp;Ret&nbsp;=&nbsp;{&nbsp;0,&nbsp;};
&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;Sin&nbsp;=&nbsp;std::sin(RotRadian);
&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;Cos&nbsp;=&nbsp;std::cos(RotRadian);

&nbsp;&nbsp;&nbsp;&nbsp;Ret.x&nbsp;=&nbsp;((Length.x&nbsp;*&nbsp;Scale.x)&nbsp;*&nbsp;Cos)&nbsp;-&nbsp;((Length.y&nbsp;*&nbsp;Scale.y)&nbsp;*&nbsp;Sin)&nbsp;+&nbsp;Move.x;
&nbsp;&nbsp;&nbsp;&nbsp;Ret.y&nbsp;=&nbsp;((Length.x&nbsp;*&nbsp;Scale.x)&nbsp;*&nbsp;Sin)&nbsp;+&nbsp;((Length.y&nbsp;*&nbsp;Scale.y)&nbsp;*&nbsp;Cos)&nbsp;+&nbsp;Move.y;

&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Ret;
}
0792デフォルトの名無しさん2013/11/08(金) 14:21:05.73
はわわわわ・・・。
0793デフォルトの名無しさん2013/11/08(金) 14:29:54.11
はわわわろたw
0794デフォルトの名無しさん2013/11/08(金) 18:36:36.12
マルチですし。お寿司。
0795片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/08(金) 23:36:18.34
自己解決
GitHub見ろ
0796デフォルトの名無しさん2013/11/08(金) 23:39:11.10
知らないっすよ。
0797デフォルトの名無しさん2013/11/08(金) 23:56:38.82
お題:値が整数のn個の数列がある。隣同士の項の和の数列をつくる。
この操作を繰り返して項が1個になったらその値を返す。
例
31,41,59,2 -> 333
0798デフォルトの名無しさん2013/11/09(土) 00:07:09.49
31,41,59,2
→(31+41),(41+59),(59+2)
→(31+41+41+59),(41+59+59+2)
→(31+41+41+59+41+59+59+2)
三角数と初めの数列の長さに関係してる。数学問題だな
0799デフォルトの名無しさん2013/11/09(土) 00:48:42.07
いや、これはピラミッド占いだ
0800片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/09(土) 01:02:49.92
破壊的計算で
int pu(int n, int *p) {
for (; n > 1; n--) {
for (int i = 0; i < n - 1; i--) p[i] += p[i+1];
} return *p; }
0801デフォルトの名無しさん2013/11/09(土) 01:16:30.18
>>798 Haskell
main = print $ pyramid [31,41,59,2]
pyramid = last . takeWhile (not . null) . iterate (zipWith (+) =<< tail)
0802デフォルトの名無しさん2013/11/09(土) 06:23:21.61
>>797 Prolog

'値が整数のn個の数列がある。隣同士の項の和の数列をつくる。この操作を繰り返して項が1個になったらその値を返す。'([_1個になったらその値],_1個になったらその値) :- !
.
'値が整数のn個の数列がある。隣同士の項の和の数列をつくる。この操作を繰り返して項が1個になったらその値を返す。'(_値が整数の数列,_1個になったらその値) :-
    findall(_隣同士の項の和,(
          append(_,[_項_1,_項_2|_],_値が整数の数列),
          _隣同士の項の和 is _項_1 + _項_2),
        _隣同士の項の和の数列),
    '値が整数のn個の数列がある。隣同士の項の和の数列をつくる。この操作を繰り返して項が1個になったらその値を返す。'(_隣同士の項の和の数列,_1個になったらその
値).
08038022013/11/09(土) 06:27:27.90
>>802
最後の最後で改行を削り損ねた。残念。最後の二行は、本当は以下の一行。


    '値が整数のn個の数列がある。隣同士の項の和の数列をつくる。この操作を繰り返して項が1個になったらその値を返す。'(_隣同士の項の和の数列,_1個になったらその値).
08048022013/11/09(土) 07:28:05.53
% Prolog さらに具合の悪い点があり、書き直し。

'値が整数のn個の数列がある。隣同士の項の和の数列をつくる。この操作を繰り返して項が1個になったらその値を返す。'([_1個になったらその値],_1個になったらその値) :- !.
'値が整数のn個の数列がある。隣同士の項の和の数列をつくる。この操作を繰り返して項が1個になったらその値を返す。'(_値が整数の数列,_1個になったらその値) :-
    \+(_値が整数の数列 = []),
    findall(_隣同士の項の和,(
          append(_,[_項_1,_項_2|_],_値が整数の数列),
          _隣同士の項の和 is _項_1 + _項_2),
        _隣同士の項の和の数列),
    '値が整数のn個の数列がある。隣同士の項の和の数列をつくる。この操作を繰り返して項が1個になったらその値を返す。'(_隣同士の項の和の数列,_1個になったらその値).

% 何が具合が悪かったかというと、定義第二節の第一引数に[]が来た時、
% findall/3は偽にならない。_隣同士の項の和の数列 は再び[]になる。
% つまり、再帰が停止しなくなる。
0805片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/09(土) 07:43:26.03
>>800
i--じゃなくてi++だった
int pu(int n, int *p) {
for (; n > 1; n--) {
for (int i = 0; i < n - 1; i++) p[i] += p[i+1];
} return *p; }
0806デフォルトの名無しさん2013/11/09(土) 08:10:30.85
>>797 Io
f := method(a,
b := a size - 1
a map(i, v, b combinations(i) * v) sum
)

Io> f(list(31,41,59,2))
==> 333
0807デフォルトの名無しさん2013/11/09(土) 10:43:57.14
>>797
Squeak Smalltalk

| array |
array := #(31 41 59 2).
[(array := array overlappingPairsCollect: #+) size = 1] whileFalse.
^array first "=> 333 "
0808デフォルトの名無しさん2013/11/09(土) 11:06:36.01
>>797 Maxima
f(a):=(b:length(a)-1,thru b do a:rest(a)+rest(a,-1),a[1]);

(%i37) f([11,22,33]);
(%o37) 88
0809デフォルトの名無しさん2013/11/09(土) 11:24:09.27
>>801 head . 追加
0810デフォルトの名無しさん2013/11/09(土) 11:41:08.80
>>797 J
(}.+}:)^:(<:@#) 1 2 3 4 5 6 7 8 9
1280
0811デフォルトの名無しさん2013/11/09(土) 16:11:21.58
結構まじめに作った。あってるかな?
ttp://ideone.com/nK9hqN

結構タイプ量多いなー。
08128112013/11/09(土) 16:24:37.17
バグってた・・・。

11行目>>for (std::size_t j = 0; j < In[i+1].size();j++){

俺もマダマダですなー。
0813デフォルトの名無しさん2013/11/09(土) 16:29:33.59
>>812
ぐだぐだ〜。13行目でした。
0814デフォルトの名無しさん2013/11/09(土) 16:35:09.24
ちゃんと再帰でやるんならこんな感じか

function pu(a) {
if (a.length == 1) return a[0]
var b = []
a.reduce(function (l,r){ b.push(l+r); return r })
return pu(b)
}

pu([31, 41, 59, 2]) //333
0815デフォルトの名無しさん2013/11/09(土) 16:46:38.19
>>814
C系列だと簡単にスタック潰しそう。ひぃ〜。
0816デフォルトの名無しさん2013/11/09(土) 18:35:12.30
>>801
zipWithを正格評価にするとちょっとだけ速くなった気がしました

main :: IO ()
main = print $ pyramid [1..5000]

pyramid :: [Integer] -> Integer
pyramid = head . last . takeWhile (not . null) . iterate (zipWith' (+) =<< tail)

zipWith' :: (a -> b -> c) -> [a] -> [b] -> [c]
zipWith' f (a:as) (b:bs) = cons' (f a b) (zipWith' f as bs)
 where
  cons' :: a -> [a] -> [a]
  cons' h t = h `seq` t `seq` h : t
zipWith' _ _ _ = []
0817デフォルトの名無しさん2013/11/09(土) 19:01:37.65
>>815
末尾呼び出しだからコンパイラがまともならループに最適化される
0818デフォルトの名無しさん2013/11/09(土) 19:08:53.01
こうか
function pu(a) {
while (a.length > 1) {
var b = []
a.reduce(function (l,r){ b.push(l+r); return r })
a = b
}
return a[0]
}
0819デフォルトの名無しさん2013/11/09(土) 20:02:54.72
>>817
あぁ、なるほど。
0820デフォルトの名無しさん2013/11/09(土) 20:17:47.49
>>797 R
f <- function(a){
b <- length(a) - 1
sum(choose(b, 0:b) * a)
}
0821デフォルトの名無しさん2013/11/09(土) 21:14:23.85
>>797 common lisp
(defun pira (x)
(if (equal (length x) 1)
(car x)
(pira (mapcar #'+ (cdr x) (butlast x)))))

(pira '(31 41 59 2)) -> 333

しかしこのスレ、マイナー言語多いねw
JとかIoとか使っている人、初めてみた。
08228022013/11/09(土) 21:33:21.98
>>821
以前「いろんな言語で宿題」というスレがあったが、
あそこには、初めて見る言語が沢山並んでいた。
0823 ◆QZaw55cn4c 2013/11/09(土) 21:35:21.31
>>822
prolog 屋さんのが多かった気があれ?
08248022013/11/09(土) 22:38:48.45
>>823
7割くらいはPrologだったが、残り3割の内三分の一がJ言語で
その他が面白かった。数学系のスクリプト言語のようなものが
多かったように思う。
0825デフォルトの名無しさん2013/11/10(日) 08:11:11.71
>>797
D言語で。
rdmd -unittest -main -debug a.d

int func(int[]a) {
auto n=a.length;
while(n--)
for(int i=0; i<n; ++i)
a[i]+=a[i+1];
debug writeln(a);
return a[0];
}

unittest {
assert(func([31 ,41, 59, 2])==333);
}
0826デフォルトの名無しさん2013/11/10(日) 13:28:03.88
お題:
入力
AND

出力
DDDDD
DNNND
DNAND
DNNND
DDDDD
0827デフォルトの名無しさん2013/11/10(日) 13:45:11.38
>>826
C++

#include <iostream>
#include <string>
#include <algorithm>
int main()
{
using namespace std;
string s;
getline(cin, s);
const int L = s.length();
for (int i = -(L - 1); i <= L - 1; ++i) {
for (int j = -(L - 1); j <= L - 1; ++j) {
cout << s[max(abs(i), abs(j))];
}
cout << endl;
}
}
0828デフォルトの名無しさん2013/11/10(日) 13:48:11.89
>>826
偶数個のときはどうしたらいい?
0829デフォルトの名無しさん2013/11/10(日) 14:25:14.20
>>826 python3
a = []
for c in 'AND':
  s = c * len(a)
  a = list(map(lambda x:c+x+c, [s]+a+[s])) if a else [c]
print('\n'.join(a))
0830デフォルトの名無しさん2013/11/10(日) 15:45:10.26
>>826 ES6

func = s => [...s.slice(1)].reduce(
(a,v,i) => [v.repeat(i*2+3), ...a.map(t=>v+t+v), v.repeat(i*2+3)], [s[0]]
).join('\n')

func('AND')
0831デフォルトの名無しさん2013/11/10(日) 15:54:48.30
入力が1文字や0文字の時も対応出来てるか?
0832デフォルトの名無しさん2013/11/10(日) 17:02:51.34
>>826 Haskell

main = putStrLn $ f "AND"

f [] = []
f (x:xs) = unlines $ map h $ h $ g x xs
 where h = (++) =<< (reverse . tail)
g x [] = [[x]]
g x xs@(y:ys) = (x : xs) : map ((:) =<< head) (g y ys)
08338322013/11/10(日) 17:21:42.17
>>826 Haskell
修正
main = putStrLn $ f "AND"
f [] = []
f xs = unlines $ map h $ h $ g xs
 where
  h = (++) =<< (reverse . tail)
  g [y] = [[y]]
  g yys@(_:ys) = yys : map ((:) =<< head) (g ys)
0834デフォルトの名無しさん2013/11/10(日) 23:37:45.82
constとflipと(>>=)でチューリング完全か
0835デフォルトの名無しさん2013/11/10(日) 23:49:27.71
>>826
Squeak Smalltalk

| str arr |
str := 'ABCD'.
str size < 2 ifTrue: [^str].
arr := {str first: 1}.
str allButFirstDo: [:chr |
 | arr0 |
 arr0 := {String new: arr size withAll: chr}.
 arr := arr0, arr, arr0 collect: [:each | '', chr, each, chr]].
^arr asStringWithCr
0836デフォルトの名無しさん2013/11/11(月) 12:36:13.81
>>826 J
({~ [:>./~|@i:@<:@#)'AND'
DDDDD
DNNND
DNAND
DNNND
DDDDD
08378022013/11/11(月) 13:01:07.59
>>836
いつ見てもJはすばらしい。
0838デフォルトの名無しさん2013/11/11(月) 14:19:30.68
いつも遅いってとこからも相当書きづらい言語なのが分かる。
0839デフォルトの名無しさん2013/11/11(月) 15:11:16.68
Jインストールした
0840デフォルトの名無しさん2013/11/11(月) 17:01:12.12
やっぱアンインストールした
0841デフォルトの名無しさん2013/11/11(月) 18:43:27.07
({~ [:>./~|@i:@<:@#)'AND'
input =: 'AND'
a =: |@i:@<:@#)'AND' = 2 1 0 1 2
index =: >./~ a =
2 2 2 2 2
2 1 1 1 2
2 1 0 1 2
2 1 1 1 2
2 2 2 2 2
index { input =
DDDDD
DNNND
DNAND
DNNND
DDDDD

やっとわかった
0842デフォルトの名無しさん2013/11/11(月) 21:31:49.37
お題
文字列の入力を受け付けて文字のビットマップを8x8の■□で表現

例「AB」
□□□■■□□□
□□■□□■□□
□□■□□■□□
□■■■■■■□
□■□□□□■□
□■□□□□■□
■□□□□□□■
■□□□□□□■
□■■■■■□□
□■□□□□■□
□■□□□□■□
□■■■■■□□
□■□□□□■□
□■□□□□■□
□■□□□□■□
□■■■■■□□
0843デフォルトの名無しさん2013/11/11(月) 21:41:19.69
banner
0844デフォルトの名無しさん2013/11/11(月) 21:43:25.57
ちがう物に見えた
0845デフォルトの名無しさん2013/11/11(月) 23:08:26.42
>>844
教授からの三つの忠告
ある大学の講義で教授の話を聞かずにしゃべっていた女子学生に教授がこんな質問をする。
「人の器官のうち、ある条件下で大きさが六倍になるのはどこでしょうか?また、六倍になる条件は?」
指名された女子学生が顔を赤くして「これはセクハラです。後で大学に報告します」と答えると、教授はこう返した。
「正解は瞳孔です。あなたに三つの忠告があります。まず、講義を真面目に聞きなさい。
二つ目は、あなたの心は汚れています。
最後に、本当に六倍になると思っているなら、あなたはきっと、がっかりする日が来るでしょう」。
0846デフォルトの名無しさん2013/11/11(月) 23:19:29.31
>>845
これ、セクハラにならないの?
0847デフォルトの名無しさん2013/11/11(月) 23:25:08.71
お題:
例:数列[3,1,-7,-1,5]について、
->[4,-3,-2,3] (累計)
->12 (絶対値の合計)
のように計算する。
最初の数列の並び順を変えると、最後の合計計も変わる。
任意数列について、上記合計が最小になるように並び替える関数を作成。
0848デフォルトの名無しさん2013/11/11(月) 23:34:22.54
>>846
瞳孔についての説明をするのに合理的な理由があれば忠告の前二つはセーフだけど、三つ目は微妙だよな・・・
というかイマドキ、特に授業中くっちゃべってるDQN組みにおいて、がっかりする日が来てない女子大学生って貴重なんじゃね。
0849 ◆QZaw55cn4c 2013/11/12(火) 03:19:08.07
>>847
>->[4,-3,-2,3] (累計)
三番目は -4, したがって四番目は +1 では?
08508472013/11/12(火) 07:47:51.87
>>849
確かにそうですね、訂正します。
[3,1,-7,-1,5]
-->[4,-3,-4,1]
-->12
0851デフォルトの名無しさん2013/11/12(火) 08:39:10.94
>>847
@Mathematica

AccumlateAbsTotalMin[lst_]:=Module[{x,xmin},

  (* Analysis *)
  x=lst//
    Permutations[#,{Length[#]}]&//
    Map[{#,Drop[Accumulate[#],1]}&,#]&//
    Map[{#[[1]],Total[Map[Abs,#[[2]]]]}&,#]&;

  xmin=x//
    Map[#[[2]]&,#]&//
    Min;

  (* Results *)
  Select[x,#[[2]]==xmin&]//
    Map[#[[1]]&,#]&
];

結果:
In := AccumlateAbsTotalMin[{3,1,-7,-1,5}]
Out = {{-7, 5, 3, -1, 1}, {5, -7, 3, -1, 1}}
0852デフォルトの名無しさん2013/11/12(火) 09:22:42.39
>>847 JavaScript

perm = (a,b=[],c=[]) => {
if(a.length == 0) c.push(b)
for(let i of a.keys()) {
let A = [...a], B = [...b, A.splice(i,1)[0]]
perm(A,B,c)
}
return c
}


cal = a => {
let b = []
a.reduce((l,r,i) => b[i-1] = l+r)
return b.reduce((l,r) => Math.abs(l)+Math.abs(r))
}


func = a => perm(a).sort((x,y) => cal(x)-cal(y))[0]


func([3, 1, -7, -1, 5]) //[-7, 5, 3, -1, 1]
0853デフォルトの名無しさん2013/11/12(火) 12:03:24.08
>>842
8pxは出来なかったけど10pxなら
JavaScript

function toBitMap(str, size) {
var bitmap = ''
for (var i = 0; i < str.length; ++i) {
var canvas = document.createElement('canvas')
var ctx = canvas.getContext('2d')
ctx.font = size + 'px'
ctx.textBaseline = 'top'
ctx.fillText(str[i], 0, 0)
var data = ctx.getImageData(0, 0, size, size).data
for (var j = 0; j < size * size; ++j) {
bitmap += data[j*4+3] < 100 ? '□' : '■';
if (j%size == size-1) bitmap += '\n'
}
}
return bitmap
}

alert(toBitMap(prompt('str?'), 10))
0854デフォルトの名無しさん2013/11/12(火) 12:11:28.03
訂正
ブラウザの最小フォントサイズ設定を8px以下にすればこれでいける

function toBitMap(str, size) {
var bitmap = ''
for (var i = 0; i < str.length; ++i) {
var canvas = document.createElement('canvas')
var ctx = canvas.getContext('2d')
ctx.font = size + 'px sans-serif'
ctx.textBaseline = 'top'
ctx.fillText(str[i], 0, 0)
var data = ctx.getImageData(0, 0, size, size).data
for (var j = 0; j < size * size; ++j) {
bitmap += data[j*4+3] < 128 ? '□' : '■';
if (j%size == size-1) bitmap += '\n'
}
}
return bitmap
}

alert(toBitMap(prompt('str?'), 8))
0855デフォルトの名無しさん2013/11/12(火) 12:34:25.38
>>847
Squeak Smalltalk


| incAbsSum findMinSeqOf |
incAbsSum := [:xs | | acc | acc := 0. (xs collect: [:x | acc := acc + x]) allButFirst abs sum].
findMinSeqOf := [:xs :fun |
 | min results |
 min := Float infinity.
 results := OrderedCollection new.
 xs permutationsDo: [:arr |
  | sum |
  sum := incAbsSum value: arr.
  min = sum ifTrue: [results add: arr copy].
  min > sum ifTrue: [min := sum. results removeAll; add: arr copy]].
 results asArray].

findMinSeqOf value: #(3 1 -7 -1 5) value: incAbsSum "=> #(#(-7 5 3 -1 1) #(5 -7 3 -1 1)) "
08568472013/11/12(火) 13:25:55.12
>>847
# Ruby
a=[3,1,-7,-1,5]
r=[]
sum=0
r << a.sort!.shift
while a!=[] do
if((sum+=r.last)<0)
r << a[-1]
a=a[0...a.size-1]
else
r << a.shift
end
end
p r

#[-7, 5, 3, -1, 1]
0857片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/12(火) 17:46:40.66
XScreenSaverの121個のスクリーンセーバーを移植したよ。
http://katahiromz.web.fc2.com/xscreensaverwin/
https://github.com/katahiromz/XScreenSaverWin
0858デフォルトの名無しさん2013/11/12(火) 17:48:02.97
>>852
破壊的メソッドがなければいいのに
0859デフォルトの名無しさん2013/11/12(火) 18:39:04.65
>>858
[...a]で配列aをシャローコピーして使ってるから破壊されない
0860デフォルトの名無しさん2013/11/15(金) 12:34:45.95
>>847 J
f =: 3 :0
a =. (i.!#y)A.y
b =. +/"1|}."1+/\"1 a
(I.(<./b)=b){a
)

f 3 1 _7 _1 5
_7 5 3 _1 1
5 _7 3 _1 1
0861デフォルトの名無しさん2013/11/15(金) 21:29:14.84
お題:たとえば整数20010307なら21370000のように0を右側に寄せ集めた整数を返す。
0862デフォルトの名無しさん2013/11/15(金) 22:09:58.75
結構まじめに作ったよ。
ttp://ideone.com/EYHTTE
やっぱc系列はタイプ量が多いなー。
0863デフォルトの名無しさん2013/11/15(金) 22:14:23.16
>>861
Squeak Smalltalk

(20010307 asString reversed inject: '' into: [:acc :chr |
  chr = $0 ifTrue: ['0', acc] ifFalse: [acc, chr]
]) reversed asInteger "=> 21370000 "
0864デフォルトの名無しさん2013/11/15(金) 22:14:24.28
>>861
@Mathematica

zeroToRight[n_]:=n//
  IntegerDigits//
  {Select[#,#!=0&],Select[#,#==0&]}&//
  Apply[Join,#]&//
  FromDigits;

結果:
In := zeroToRight[20010307]
Out = 21370000
0865デフォルトの名無しさん2013/11/15(金) 22:20:30.74
スクリプトは仕事が短いね。
除算と文字列変換ってどっちが早いんだろうなー。
0866デフォルトの名無しさん2013/11/15(金) 22:22:50.53
>>863
Squeak Smalltalk 別解

(20010307 asString sort: [:a :b | a ~= $0]) asInteger "=> 21370000 "
0867デフォルトの名無しさん2013/11/15(金) 22:39:52.14
い、一行ですか・・・。うほい。
0868デフォルトの名無しさん2013/11/15(金) 22:50:37.14
#include <stdio.h>
int int861(int org) {
int nonzero = 0, l = 1, r = 1;
int i, j;
for (i = org; i != 0; i /= 10) {
j = i % 10;
if (j == 0) {
r *= 10;
} else {
nonzero += j * l;
l *= 10;
}
}
return nonzero * r;
}
int main() {
int value = 20010307;
printf("%d %d\n", value, int861(value));
value *= -1;
printf("%d %d\n", value, int861(value));
return 0;
}
0869デフォルトの名無しさん2013/11/15(金) 22:51:17.63
func = num => {
let str = ['','']
for (chr of ''+num) str[+!+chr] += chr
return +str.join('')
}


func(20010307) //21370000
0870デフォルトの名無しさん2013/11/15(金) 22:54:24.18
>>865
> 除算と文字列変換ってどっちが早いんだろうなー。

Squeak Smalltalk では文字列変換だと与える数値にもよりますが
除算の方法に比べて3倍〜5倍くらい遅いですね。

| fn1 fn2 |
fn1 := [:int |
 | nonZeros numZeros numDigits |
 nonZeros := 0.
 numZeros := 0.
 numDigits := 0.
 [int > 0] whileTrue: [
  | digit |
  digit := int \\ 10.
  numDigits := numDigits + 1.
  digit = 0
   ifTrue: [numZeros := numZeros + 1]
   ifFalse: [nonZeros := digit * (10 raisedTo: numDigits - numZeros) + nonZeros].
  int := int // 10].
 nonZeros * (10 raisedTo: numZeros)].

fn2 := [:int | (int asString sort: [:a :b | a ~= $0]) asInteger].

{fn1. fn2} collect: [:fn | [1e5 timesRepeat: [fn value: 20010307]] timeToRun] "=> #(703 3564) "
0871デフォルトの名無しさん2013/11/15(金) 22:57:23.91
>>866をヒントに JavaScript
+[...''+20010307].sort(a=>1-a).join('') //21370000
0872デフォルトの名無しさん2013/11/15(金) 23:07:56.99
>>870
検証ありがとう。その結果はなんの単位?ミリセック?チック?
両方書いといてその短さですか。たまらんね。
相変わらず、アルゴリズムわかってないと読めんわ。
俺、素養無いな〜〜。

>>871
これはまた短いね〜。
0873デフォルトの名無しさん2013/11/15(金) 23:11:38.00
>>872
10万回繰り返しての計測で、単位はミリ秒です。
0874デフォルトの名無しさん2013/11/15(金) 23:31:20.18
>>873
結構早いね。
C++で200ミリ秒位だった。
ttp://ideone.com/70OD2G

デバッグで実行して余裕で勝てるとか思ってたら5秒もかかったのは内緒だ。
0875デフォルトの名無しさん2013/11/15(金) 23:50:45.47
>>871は1000msくらい
でもPentiumだから最近のCPUなら大体3倍くらい速いはず
0876デフォルトの名無しさん2013/11/15(金) 23:58:04.50
計測したのはこれね Firefox28
var f=n=>+[...''+n].sort(a=>1-a).join('')
for(var i = 0; i < 10000; ++i) f(20010307)
0877デフォルトの名無しさん2013/11/15(金) 23:58:49.08
0が足りなかった…
0878デフォルトの名無しさん2013/11/16(土) 00:05:11.51
var f=function(n){return +(''+n).split('').sort(function(a){return 1-a}).join('')}
for(var i = 0; i < 100000; ++i) f(20010307)
これだと色んブラウザで動いてChromeで1800msか
0879デフォルトの名無しさん2013/11/16(土) 00:13:13.38
ぺんちあむとはなかなか玄人ですなー。
俺も開発だけならぺんちあむで開発したい。
タコなんで止まってくれないとバグが分からない。
0880デフォルトの名無しさん2013/11/16(土) 00:16:47.36
何でもいいが私用で使うには最低4スレッドはないとキツイな
0881デフォルトの名無しさん2013/11/16(土) 00:18:00.93
うちはCore2Duoです〜。
スカイレークまで持たせたい。
0882デフォルトの名無しさん2013/11/16(土) 00:30:33.80
>>861 common lisp
(defun zero-push (x) (let ((s (princ-to-string x)))
(labels ((zc (n m) (equal m #\0))) (parse-integer (sort s #'zc)))))

(zero-push 20010307) => 21370000
0883デフォルトの名無しさん2013/11/16(土) 00:43:52.91
整数の大きさに特に指定がない場合、処理系によっては
オーバーフローしたり、丸められたりするので、文字列で
処理する方がいいのかも
0884デフォルトの名無しさん2013/11/16(土) 01:04:59.45
>>861 C++
http://ideone.com/fTdZs1

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
for (string s; cin >> s; ) {
std::stable_partition(s.begin(), s.end(), [](char ch) { return ch != '0'; });
cout << s << endl;
}
}
0885デフォルトの名無しさん2013/11/16(土) 01:23:39.71
>>861 Clojure
(->> 20010307 str (sort #(= %2 \0)) (apply str) read-string println)
0886デフォルトの名無しさん2013/11/16(土) 01:34:30.19
>>861
文字列変換版。結構真面目に作ったけどちょびっとしか短くならなかった。そして除算より遅かった。
文字列系のクラスは重たいなー。もうちょっと頑張るかと思ったんだが。

http://ideone.com/XhgaEO
08878862013/11/16(土) 01:39:22.48
>>881
これすげー。かなわんなー。
俺、ダメすぎるぜ。
0888デフォルトの名無しさん2013/11/16(土) 01:40:02.85
安価ミスった。
>>887 -> >>884
0889デフォルトの名無しさん2013/11/16(土) 01:43:00.11
>>882
自分の環境(SBCL 1.1.13.debian)だと37120000になる。
0890デフォルトの名無しさん2013/11/16(土) 01:49:33.37
>>861
C言語 http://ideone.com/cJGD87
CeleronM1.86GHzで 20010307 → 21370000 が大体 0.77ms くらいだった
1020304050 → 1234500000 だと 0.88msecくらい
0891デフォルトの名無しさん2013/11/16(土) 01:50:06.13
ideone(clisp)だと21370000だね
http://ideone.com/nCuQBr
0892デフォルトの名無しさん2013/11/16(土) 02:03:39.27
そうだ、>>890は時間計測にLinux関数使っているのでWindowsでやりたい人は
http://blog.goo.ne.jp/makoto8002/e/f96fb7d394e668c4245b63cd48484422
を参考にして好きにしてください
0893874,8862013/11/16(土) 02:27:24.52
>>890
これはかなわんなー。はえー。
さすがC言語だ。久しぶりに恐ろしい片鱗を味わったわ。

しかし、俺ってC書きとしては速度が遅くて、C++書きとしては効率が悪い。
良く言えば器用貧乏だが、いやー一発殴られた気分だ。
刺激になる〜〜。
0894890,8922013/11/16(土) 02:35:02.29
>>893
いや22行目の k /= 10; が気色悪い。
どうにかならんだろうか。眠いのでおやすみ
0895デフォルトの名無しさん2013/11/16(土) 02:45:29.37
気色悪いって言うけど、定数の除算は乗算に置き換えられるから速度的には不利じゃないよ。
どうしてもってことなら、27行目の直前に移動すれば33行目の除算をなくせるけどね。
0896デフォルトの名無しさん2013/11/16(土) 04:14:07.34
>>883
そうですね。たとえば 100! を与えた場合などは>>870の結果は逆転し
多倍長精度演算のコストのため、除算の方が文字列変換より5〜6倍遅くなります。
0897デフォルトの名無しさん2013/11/16(土) 04:15:44.20
>>984
デバッガ眺めてたら、1を10で乗算していくわけなんだが、1を10の8乗すると9桁になる。
ほしいのは1の10の7乗で本題の数字と同じ桁数。
やり方はいくらでもあるけど、綺麗に書くとか意向に沿って修正になるとなかなか手がないね。
とりあえず一行削った。んだけど、なんか遅くなったなぁ・・・。誤差でいい?Orz

http://ideone.com/Ra6nKR

上記と同じ理由で、INTMAXは10桁いけるけど、kがひとけた多く乗算されるので桁あふれする。
0898デフォルトの名無しさん2013/11/16(土) 04:33:14.77
桁あふれといえば、最初から多倍長整数のことを特に意識して書かずとも
100!とかでもそのままのコードで動かせて、ちゃんと正しい答えを返してくるところが
動的型言語のお手軽でいいところですね。
08998902013/11/16(土) 04:35:45.05
>>895>>897
アドバイスありがとうございます。
>>890のソースを見直していたのですが、桁あふれの箇所がありましたね。
2つ。

f(int d); は、d が 1000000000 を越える場合
20行目の k *= 10; で31bit桁あふれが起きていました
(なぜ 1020304050 が計算できたのか)。

あと2000000020→2200000000も2147483647を越えるのに
チェックしていない不具合を抱えていました。

それらをチェックするようにしました。
http://ideone.com/b0JZ3R

コンパイルオプションも先ほどは-O2だったのを-O0にして、最適化せずに実行した結果
20010307→21370000を10万回 〜 22.708200ms
1020304050→1234500000を10万回 〜 27.541900ms
になりました。
0900デフォルトの名無しさん2013/11/16(土) 04:44:46.43
>>898
そうそう。動的言語ってどんな処理しても平均的に早いから巨数扱うときとかは羨ましい。
0901デフォルトの名無しさん2013/11/16(土) 05:38:30.22
>>870 の Squeak Smalltalk ですが、
100!だと10万回は大変なので30!(= 265252859812191058636308480000000)で
JIT入りのVM(CogVM)で計り直してみたところ、除算版 13.8秒、文字列変換版 4.6秒でした。
多倍長整数サポートのある言語の挑戦をお待ちしております。w
0902デフォルトの名無しさん2013/11/16(土) 06:39:31.34
そろそろ次スレが必要だな
0903デフォルトの名無しさん2013/11/16(土) 07:54:15.12
>>861 Io
f := method(n,
s := n asString
b := s size
s removeSeq("0") alignLeft(b, "0") asNumber
)

Io> f(20010307)
==> 21370000
0904デフォルトの名無しさん2013/11/16(土) 07:57:25.38
>>861 J
(-.&'0'{.!.'0'~#)&.": 20010307
21370000
0905デフォルトの名無しさん2013/11/16(土) 08:36:36.97
>>861 R
f <- function(n){
a <- unlist(strsplit(paste(n), ""))
as.numeric(paste(c(a[a > "0"], a[a == "0"]),collapse = ""))
}
> f(20010307)
[1] 21370000
0906デフォルトの名無しさん2013/11/16(土) 08:40:35.46
>>889, 891
処理系で動作に違いが出ることがあるので、sortをstable-sortに修正
(defun zero-push (x) (let ((s (princ-to-string x))) (labels ((zc (n m) (equal m #\0)))
(parse-integer (stable-sort s #'zc)))))
0907デフォルトの名無しさん2013/11/16(土) 08:43:53.28
>>847,861 Haskell

import Data.List
main = do
print $ f847 [3,1,-7,-1,5]
print $ f861 20010307
f847 :: Integral a => [a] -> [[a]]
f847 = (flip (map . (!!)) =<< ((elemIndices =<< minimum) . (map (sum . map abs . tail . scanl1 (+))))) . permutations
f861 :: (Integral a, Show a, Read a) => a -> a
f861 = read .uncurry (++) . partition (/='0'). show
0908デフォルトの名無しさん2013/11/16(土) 08:54:00.97
>>861 python3

>>> import re
>>> f = lambda i: int((lambda s,f: f('0','',s)+f('[^0]','',s))(str(i),re.sub))
>>> f(20010307)
21370000
0909デフォルトの名無しさん2013/11/16(土) 09:59:06.24
お題
幅と高さがそれぞれw,hでw*h個のマスを全てペンキで塗ります
最初は左上(0,0)の地点にいて
上下左右の移動に1ターン、上下左右のマスを塗るのに1ターンかかります
塗ったばかりのマスは次の5ターンの間踏めません、また、1ターンその場で待機することも出来ます
w,hが与えられた時最小ターン数を返す関数を作成せよ

例:(3,2) => 9
0(スタート)
○□□
□□□
1(左下マスを塗る)
○□□
■□□
0910デフォルトの名無しさん2013/11/16(土) 09:59:41.95
2(左下マスは踏めない)
□○□
■□□
3(左下マスは踏めない)
■○□
■□□
4(左下マスは踏めない)
■○■
■□□
5(左下マスは踏めない)
■□■
■○□
6(左下マスは踏めない)
■■■
■○□
7(左下マスは踏める)
■■■
■○■
8(左下マスは踏める)
■■■
●□■
9(エンド)
■■■
●■■
0911デフォルトの名無しさん2013/11/16(土) 10:03:02.64
不正な値や、全て塗るのが不可能なとき(0,0)や(1,1)等は-1を返せ
0912デフォルトの名無しさん2013/11/16(土) 12:40:55.52
>>861 J
>>866のsortを使うやり方で
(/:'0'&=)&.":20010307
21370000
0913デフォルトの名無しさん2013/11/16(土) 16:05:44.09
>>909
@Mathematica

http://ideone.com/g6SiVM

関数の説明:
 - buildInitialState : 初期状態を作る。
 - painterAutomaton : 移動したり色を塗ったりするオートマトン。
 - mapOneStep : オートマトンの操作、ステップを進める、タイルを乾かす
 - allPaintedMemberQ : すべてのタイルが塗られたかチェックする
 - minStepToPaintAll : 計算の取りまとめ、結果の表示

結果:
In := minStepToPaintAll[3, 2]
Out = 9
0914デフォルトの名無しさん2013/11/16(土) 18:23:27.32
>>909 JavaScript
汚いがこんな感じか
http://ideone.com/ee8ntU
0915デフォルトの名無しさん2013/11/16(土) 19:50:14.17
>>909 python3

def update(xs, x): return xs[1:]+(x,)
def gen_next(w, h, s):
  x,y,done,ng = s
  p = (x+1,y)
  if x < w-1 and p not in done: yield ((x,y,(p,)+done,update(ng,p)),'x+1')
  if x < w-1 and p not in ng: yield ((x+1,y,done,update(ng,None)),'++x')
  p = (x,y+1)
  if y < h-1 and p not in done: yield ((x,y,(p,)+done,update(ng,p)),'y+1')
  if y < h-1 and p not in ng: yield ((x,y+1,done,update(ng,None)),'++y')
  p = (x-1,y)
  if x > 0 and p not in done: yield ((x,y,(p,)+done,update(ng,p)),'x-1')
  if x > 0 and p not in ng: yield ((x-1,y,done,update(ng,None)),'--x')
  p = (x,y-1)
  if y > 0 and p not in done: yield ((x,y,(p,)+done,update(ng,p)),'y-1')
  if y > 0 and p not in ng: yield ((x,y-1,done,update(ng,None)),'--y')
  yield ((x,y,done,update(ng,None)),'pass')

続く
0916デフォルトの名無しさん2013/11/16(土) 19:57:50.77
>>915 続き

def gen(w, h, _s, rec):
  if rec > 0:
    x,y,done,ng = _s
    if len(done) == w*h: yield ()
    for s, move in gen_next(w, h, _s):
      for rest in gen(w, h, s, rec-1):
        yield (move,)+rest
def penki(w, h):
  if w < 1 or h < 1 or (w,h)==(1,1): return -1
  rec = w*h
  while True:
    for xs in gen(w, h, (0,0,(),((),(),(),(),())), rec): return xs
    rec += 1
xs=penki(3,2); print(xs != -1 and len(xs)); print(xs)
0917デフォルトの名無しさん2013/11/16(土) 21:05:32.40
(10,10)の答えを出せた人が優勝
0918デフォルトの名無しさん2013/11/17(日) 00:57:02.24
(10,10)=146?
0919デフォルトの名無しさん2013/11/17(日) 02:33:46.11
お前らよくそんな簡単に答え出せるな。
C++&Windowsでフレームワーク組むのに200行もかかってもう限界!!
やっと本題に入れる頃には疲弊しきってて泣けてくるわ。
誰か俺の頭手術してくれ。

とりあえず、フレームだけ。
WINDOWS専用だが、環境依存部分はなるべく切り離した。
ttp://ideone.com/16SrWi

俺、1日200行前後が限界。どの言語でも。
ヘルプミー。
0920デフォルトの名無しさん2013/11/17(日) 03:09:02.77
ある程度大きくなるとSの字でせめて
最後は決まったパターンでの攻略になるな
0921デフォルトの名無しさん2013/11/17(日) 03:10:37.72
いや、渦巻きの方がいいのか
09229192013/11/17(日) 03:20:30.22
俺はS字を思い浮かべてたけど、旨いことコードにできなかったなぁ。
その前に力尽きたし。
0923デフォルトの名無しさん2013/11/17(日) 09:31:24.36
お題:実行すると元のソースコードの倍のサイズのコードを生成し、
その生成されたコードを実行するとまた倍になる倍返しプログラム。
サイズ以外は特に規定はありません。
0924デフォルトの名無しさん2013/11/17(日) 13:06:27.65
コードというか関数で
JavaScript

function fun(){
var f=''+arguments.callee
return eval("("+f.slice(0,-1)+";".repeat(f.length)+"})")
}

fun.toString().length //100
fun().toString().length //200
fun()().toString().length //400
fun()()().toString().length //800
0925デフォルトの名無しさん2013/11/17(日) 16:02:11.83
>>909 Haskell
ideone.com/4Cd3Js
一部丸パクリしました
これで合っているのかわかりません
09269252013/11/17(日) 16:13:02.52
あ、間違えてるわ
dryしわすれてるわ
何で解けてんだろう
09279252013/11/17(日) 16:37:19.97
修正したら糞遅くなったのでボツにします
09289252013/11/17(日) 17:25:58.22
そもそも解けてなかった
0929デフォルトの名無しさん2013/11/17(日) 17:48:24.19
概算
1マス進んで進行方向以外の3マスを塗るのが基本なので、大体3マス塗るのに4ターンかかる
(n,m)=>(4/3)mn
(10,10)=>133.33

法則
(n,1)=>2n+1 (n>=4)
(n,2)=>3n-0 (n>=3)
(n,3)=>5n-1 (n>=2)

経験
(n,4)=>6n+1 (n>=3)
(n,5)=>7n+3 (n>=3)

想像
(n,6)=>8n+5 (n>=3)
(n,7)=>9n+7 (n>=3)

仮定
(n,m)=>mn+2n+2m-7 (n,m>=3)
(10,10)=>133
09309252013/11/17(日) 17:54:00.29
(3,3)は14で合ってます?
0931デフォルトの名無しさん2013/11/17(日) 17:59:50.53
合ってる
09329252013/11/17(日) 18:03:18.40
>>931
それならこれで正解ですかね

>>909 Haskell
修正版
ideone.com/cSZMLK
0933デフォルトの名無しさん2013/11/17(日) 18:07:14.44
>>909 >>917
能力不足でプログラムはかけそうにないので、(10,10)に人力で挑戦。
DrLDrLDrLDrLDrLDrLDrLDrLRdURd
LURdLURdLURdLURdLURdLURdLURdU
RlRlURlURlURlURlURlURlRuDuRDu
RDuRDuRDuUDrLUrLUDrLUDrLUDrLU
DrLUdUdLUdUDlRDlURDlURDlURDlR
小文字が移動で大文字が塗り。
計145
0934デフォルトの名無しさん2013/11/17(日) 18:09:38.57
>>932
大きいのは大丈夫
けど(2,2)が-1になる
09359252013/11/17(日) 18:12:34.59
>>934
フィルターの仕方が悪いのでしょうか
この辺で諦めます
0936デフォルトの名無しさん2013/11/17(日) 18:18:06.18
自分も人力渦巻きで試してみたが145だな
0937デフォルトの名無しさん2013/11/17(日) 19:03:38.50
理論値は133として
理論値には一定以上の大きさで発生する折り返しの無駄が入ってないから
3回は折り返して各3ターンくらい無駄になるとして+9
あと折り返すと角が増えてその処理で無駄ができるから+3
で145でいいんじゃない
0938片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/17(日) 21:36:47.11
お題:与えられたRGB値(各成分0〜255)に最も近いWebセーフカラーを求める。
0939デフォルトの名無しさん2013/11/17(日) 22:39:37.31
>>938
#include<stdio.h>
unsigned int RGB_to_WebColor(unsigned int rgb)
{
int i;
unsigned int c, d, r = 0;
for (i = 0; i < 3; i++) {
c = rgb & 0xFF;
d = c % 0x33;
c = (c / 0x33 + ((d <= 0x19) ? 0 : 1)) * 0x33;
r |= c << 24;
r >>= 8;
rgb >>= 8;
}
return r;
}
int main()
{
unsigned int rgb = 0x1f2f54;
printf("RGB #%X --> Web Color #%X\n", rgb, RGB_to_WebColor(rgb));
return 0;
}
0940デフォルトの名無しさん2013/11/17(日) 23:15:17.36
(4,4)は23
RdRUdDUrDLrRDLuDUrLUdDU
(10,10)は分からんが、まわりを埋めてから中央の4x4を埋めたら143になった
0941デフォルトの名無しさん2013/11/17(日) 23:42:27.69
>>938 Io
f := method(x, x map(v, (v / 51) round * 51))

Io> f(list(115,54,233))
==> list(102, 51, 255)
0942デフォルトの名無しさん2013/11/17(日) 23:50:42.75
256じゃなくて216色だよね
0943デフォルトの名無しさん2013/11/18(月) 00:24:06.32
>>938 Clojure
(defn f [xs]
(map #(-> % (/ 0x33) double Math/round (* 0x33)) xs))

(print (f [115, 54, 233])) ; (102 51 255)

インデントの入れ方がわからない
0944デフォルトの名無しさん2013/11/18(月) 00:29:53.58
>>939
> unsigned int c, d, r = 0;
 ↓
> unsigned int c, r = 0;

> for (i = 0; i < 3; i++) {
> c = rgb & 0xFF;
> d = c % 0x33;
> c = (c / 0x33 + ((d <= 0x19) ? 0 : 1)) * 0x33;
 ↓
> for (i = 0; i < 3; i++) {
> c = rgb & 0xFF;
> c = ((c + (0x33 / 2)) / 0x33) * 0x33;

> printf("RGB #%X --> Web Color #%X\n", rgb, RGB_to_WebColor(rgb));
 ↓
> printf("RGB #%06X --> Web Color #%06X\n", rgb, RGB_to_WebColor(rgb));
0945デフォルトの名無しさん2013/11/18(月) 14:58:59.66
>>930,931
(3,3)=14ってどう歩を進めるの?

何回やっても16になるんだけど orz
0946片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/18(月) 15:01:08.56
お題:RGBで与えられた色の補色を求める。
0947デフォルトの名無しさん2013/11/18(月) 17:31:54.82
>>945
DrLRdURdURlRuD
0948デフォルトの名無しさん2013/11/18(月) 18:02:52.07
>>946 Io
f := method(x,
a := x max + x min
x map(v, a - v)
)

Io> f(list(255,100,50))
==> list(50, 205, 255)
0949デフォルトの名無しさん2013/11/18(月) 19:32:44.75
>>947
なるほど!アリガト!(´▽`)
0950デフォルトの名無しさん2013/11/19(火) 13:36:34.32
>>946 Squeak Smalltalk
| rgb |
rgb := #(255 216 31).
rgb max + rgb min - rgb "=> #(31 70 255) "
0951デフォルトの名無しさん2013/11/19(火) 13:44:03.84
>>938 Squeak Smalltalk
| rgb |
rgb := #(115 54 233).
rgb roundTo: 51 "=> #(102 51 255) "
0952デフォルトの名無しさん2013/11/19(火) 18:51:17.08
>>909 Squeak Smalltalk

| mat genNeighs neighs pos queue |
mat := Matrix rows: 2 columns: 3 element: -1.
pos := 1@1.
genNeighs := [pos + {(-1@0). (1@0). (0@ -1). (0@1)} select: [:pt |
 (pt x between: 1 and: mat columnCount) and: [pt y between: 1 and: mat rowCount]]].
queue := OrderedCollection with: {pos->mat}.
[queue notEmpty] whileTrue: [
 | prevMat seq |
 seq := queue removeFirst.
 pos := seq last key.
 prevMat := mat := seq last value.
 (mat noneSatisfy: #negative) ifTrue: [^seq allButFirst size].
 neighs := genNeighs value.
 mat indicesDo: [:y :x | (mat at: y at: x) > 0 ifTrue: [mat at: y at: x incrementBy: -1]].
 neighs select: [:pt | (mat at: pt y at: pt x) <= 0]
  thenDo: [:pt | queue add: seq, {pt->mat copy}].
 neighs select: [:pt | (mat at: pt y at: pt x) < 0]
  thenDo: [:pt | queue add: seq, {pos->(mat copy at: pt y at: pt x put: 5; yourself)}].
 prevMat ~= mat ifTrue: [queue add: seq, {pos->mat copy}]].
^-1 "=> 9 "

富豪的すぎるので暇をみてもうちょっとリファインします^^;
0953片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/19(火) 19:23:54.71
お題:与えられたSVG画像ファイルについて以下の各動作を行うプログラムを作れ。
(i)フォント参照をすべて「MS UI Gothic」に変更する。
(ii)画像の高さと幅を2倍に拡大する。
(iii)画像の真ん中を中心に右に90度回転する。
0954デフォルトの名無しさん2013/11/19(火) 19:51:50.87
動作をして表示するのか保存するのか、それともするだけ???
0955片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/19(火) 20:02:38.84
実用性を考えれば保存がいいだろう。
ヒント:SVGはXMLで書かれている
0956デフォルトの名無しさん2013/11/19(火) 20:06:14.60
SVGの知識がいるので面倒
0957片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/19(火) 20:11:26.31
SVGを制する者はドロー系ソフトを制する。精進しまたえ。
0958デフォルトの名無しさん2013/11/19(火) 20:38:04.39
君の人望が無いから仕方ない
君がまず書けばいいのに
0959デフォルトの名無しさん2013/11/19(火) 20:57:51.55
人望の無い出題者はまず自分で書いたのを公開してから出題することにしては?
0960片山博文MZコスモ ◆T6xkBnTXz7B0 2013/11/19(火) 21:29:36.15
お題:勤務時間を記録し、必要に応じて給与計算を行うシステム。データベースを用いること。
0961デフォルトの名無しさん2013/11/19(火) 21:31:31.45
君がまず書けばいいのに
0962デフォルトの名無しさん2013/11/19(火) 21:36:39.70
XMLもDBも知らんでPG名乗るな
0963デフォルトの名無しさん2013/11/19(火) 21:42:55.66
ドラゴンボールなら知ってるよ
0964デフォルトの名無しさん2013/11/19(火) 22:12:44.21
OODBならよく使う。
0965デフォルトの名無しさん2013/11/19(火) 22:16:46.80
SVGはXML
XMLは文字列
ルールが変わるリスクを考えるとSVGの知識より一般の文字列の知識が欲しくなる
0966デフォルトの名無しさん2013/11/19(火) 22:39:04.07
>>965
刺身を切るなら万能包丁よりも刺身包丁使うだろ。
XMLさばくなら、XML用のツールやライブラリ使うだろ。
XMLデータを文字列まで一般化して扱うのは愚か。
0967デフォルトの名無しさん2013/11/19(火) 22:53:25.13
俺は万能包丁でもさしみ作れるけど
0968デフォルトの名無しさん2013/11/19(火) 23:36:42.17
>>909
微妙に合わない。
int func(int a, int b)
{
if (a < b)
return func(b, a);
int t = b / 3 + 1;
return a * b + a * t + b - t - 1;
}
0969デフォルトの名無しさん2013/11/19(火) 23:43:38.84
柳刃持ってるけどなんか俺にはうまく使えんw
熟練者の理屈で刺身向きなのは分かるんだけどね
慣れた道具で済む案件なら文字列処理もいいんじゃね
柳刃みたいな限定用途ものは素人抜けたら嫌でも必然性に気づくもんだろうからその時でいい
0970デフォルトの名無しさん2013/11/20(水) 00:51:11.68
>>952 Squeak Smalltalk
ちょっとだけメモリ節約してなんとか(3,3)まで出せるようにしました。

| map dir genDts dts pos memo queue |
map := Matrix rows: 3 columns: 3 element: -1.
pos := 1@1.
dir := {(-1@0)->'L'. (1@0)->'R'. (0@ -1)->'U'. (0@1)->'D'} as: Dictionary.
genDts := [dir keys select: [:dt |
 ((pos + dt) x between: 1 and: map columnCount)
  and: [(pos + dt) y between: 1 and: map rowCount]]].
memo := OrderedCollection with: pos->map asArray sign.
queue := OrderedCollection with: ''->(pos->map).
[queue notEmpty] whileTrue: [
 | curr sign |
 curr := queue removeFirst.
 pos := curr value key.
 map := curr value value.
 (map noneSatisfy: #negative) ifTrue: [^{curr key size. curr key}].
 dts := genDts value.
 map indicesDo: [:y :x | (map at: y at: x) > 0 ifTrue: [map at: y at: x incrementBy: -1]].
 dts select: [:dt | (map at: (pos + dt) y at: (pos + dt) x) <= 0
   and: [(memo includes: (sign := (pos + dt)->map asArray sign)) not]]
  thenDo: [:dt | queue add: curr key, (dir at: dt) asLowercase->((pos + dt) ->map copy). memo add: sign].
 dts select: [:dt | (map at: (pos + dt) y at: (pos + dt) x) < 0]
  thenDo: [:dt |
   | after |
   after := map copy at: (pos + dt) y at: (pos + dt) x put: 6; yourself.
   queue add: curr key, (dir at: dt)->(pos->after)].
 (memo includes: (sign := pos->map asArray sign))
  ifFalse: [queue add: curr key, '.'->(pos->map). memo add: sign]].
^-1 "=>#(14 'rdRDLuRLdUdRLU') "
0971デフォルトの名無しさん2013/11/20(水) 07:05:35.00
>>932 >>909 Haskell
ideone.com/6kdpdT
(2,2)も解けるようになりましたが、(3,3)以上は無理っぽい
しばらくアルゴリズムの勉強でもします
09729712013/11/20(水) 07:07:52.32
あー(1,1)が解けない
0973デフォルトの名無しさん2013/11/20(水) 07:18:00.72
>>972
(1,1)は解けなくて良いんじゃない?
09749722013/11/20(水) 07:30:37.51
>>973
>>911があるので一応
  | x <= (1, 1) = -1
後dry書き直し
ts' = fmap dry ts
dry t
  | w <- wet t, w > 0 = t {wet = w - 1}
  | otherwise = t
0975デフォルトの名無しさん2013/11/20(水) 20:08:17.49
人間もまだまだ捨てたもんじゃないことが分かるお題だったな
0976デフォルトの名無しさん2013/11/20(水) 20:29:24.91
>>909-910 は 足元が濡れないのは難しいな。とか煽ってみる。
こんな良問生産できる気概のない俺だけど。
0977デフォルトの名無しさん2013/11/20(水) 21:06:55.74
>>976
塗れないから意味があるんだろ。
0978デフォルトの名無しさん2013/11/22(金) 01:00:11.91
お題:'+'と'-'の文字を使わないコードで"Hello, world!"をn回、表示する。
0979デフォルトの名無しさん2013/11/22(金) 01:44:19.97
>>978
組み込みの範囲表現とかがある言語だと面白くないお題ですね
とりあえず酔った頭でjsで

var n=30;
for(i=1;i<(1<<n);i=i*2)console.log("hello,world");

インデックスカウントをシフトに置き換えただけなので、当然大きいnに対応できないのがどうにもカコワルイ
明日もうちょい頭捻ってみる
0980デフォルトの名無しさん2013/11/22(金) 02:00:09.89
"hello,world".repeat(n).match(/.{11}/g).forEach(function(t){console.log(t)})
0981デフォルトの名無しさん2013/11/22(金) 02:48:28.48
% 私の流儀のPrologだと不可能ですね。なぜなら、述語名に出てきてしまいます。

'''+''と''-''の文字を使わないコードで"Hello, world!"をn回、表示する。'(_n) :-
    forall(between(1,_n,_),write('Hello, Wold!\n')).
0982デフォルトの名無しさん2013/11/22(金) 03:33:42.66
>>978
思考停止系
n.times do p "Hello, world!" end
(doseq [n (range n)] (println "Hello, world!"))
(loop for x from 1 to n do (print "Hello, world!"))
[0 .. 5] |> List.iter (fun _ -> printfn "Hello, world!")
for x = 0 to n do print_endline "Hello, world!" done
0983デフォルトの名無しさん2013/11/22(金) 03:47:01.96
C言語だと、シフト演算でADDの回路再発明することになるなー。
どうしようかな〜。
0984デフォルトの名無しさん2013/11/22(金) 04:02:51.12
関数呼んだらなんとでもなるけどつまらんね
#include <cstdio>
#include <semaphore.h>
int main() {
int n = 8;
sem_t sem;
sem_init(&sem, 0, 0);
for (;;) {
int value;
sem_getvalue(&sem, &value);
if (value >= n) {
break;
}
printf("hello world\n");
sem_post(&sem);
}
}
0985デフォルトの名無しさん2013/11/22(金) 05:10:56.74
% 再帰版

'お題:''+''と''-''の文字を使わないコードで"Hello, world!"をn回、表示する。'(_n) :-
    length(Ln,_n),
    '"Hello, world!"をn回、表示する。'(Ln).

'"Hello, world!"をn回、表示する。'([]).
'"Hello, world!"をn回、表示する。'([_|R]) :-
    write('Hello, World!'),
    '"Hello, world!"をn回、表示する。'(R).
0986デフォルトの名無しさん2013/11/22(金) 05:46:01.28
半加算回路の作り方忘れた。くそー自力では無理か。
カンニングしてしまいます〜。
0987デフォルトの名無しさん2013/11/22(金) 06:51:05.61
ttp://ideone.com/HLhcUU

全加算器をカンニングした。
学生の時ちゃんと覚えておくんだったな。
回路図からコード起こせるとは思わなかったなー。チクショー。
0988デフォルトの名無しさん2013/11/22(金) 09:13:13.95
>>982 Smalltalkも追加

n timesRepeat: [Transcript cr; show: 'Hello, world!']
0989デフォルトの名無しさん2013/11/22(金) 09:15:07.11
こういうお題を思いつく人がふだんどんな言語使っているのか興味あるな
0990デフォルトの名無しさん2013/11/22(金) 11:57:31.75
>>978 Haskell 誤差が出そう
import Control.Monad
import Control.Concurrent
main = f =<< fmap read getLine
f n = do _ <- forkIO g; threadDelay $ n * 1000 * 100
g = do
 threadDelay $ 1000 * 10
 _ <- forkIO $ forever $ do {putStrLn "Hello, world!"; threadDelay $ 1000 * 100}
 return ()
>>971 >>909
同じ位置になるのをフィルターしてパスなしとパスありを分けたら(3,3)も解けた
ideone.com/RQJ2ND
0991デフォルトの名無しさん2013/11/22(金) 12:09:58.95
js

n=128;
a=[];while(a.length<n){a.push("");console.log("hello,world!");}
0992デフォルトの名無しさん2013/11/22(金) 12:18:34.37
>>978 >>982 J
n smoutput 'Hello, world!'
0993デフォルトの名無しさん2013/11/22(金) 15:52:31.70
RasberryPi、数式処理ソフト「Mathematica」を同梱。個人利用は無料
http://internet.watch.impress.co.jp/docs/news/20131122_624731.html
0994デフォルトの名無しさん2013/11/22(金) 18:37:56.29
「ロハでいいのか?」「パワーは足りるのか?メモリは?」とか、いろいろびっくり
0995デフォルトの名無しさん2013/11/22(金) 18:56:03.47
次はこちらでお題を出してみようと思います。

プログラミングのお題スレ
0996デフォルトの名無しさん2013/11/22(金) 19:59:57.85
>>978
// HSP その1
n=5
repeat n
mes "Hello, world!"
loop

// HSP その2
n=5
repeat
if length(count)>n : break
count(length(count))=1
mes "Hello, world!"
loop
0997デフォルトの名無しさん2013/11/22(金) 20:41:27.17
次スレよろ
0998デフォルトの名無しさん2013/11/22(金) 20:51:10.95
続きはこちらに移ります。

プログラミングのお題スレ
http://toro.2ch.net/test/read.cgi/tech/1357191974/
0999デフォルトの名無しさん2013/11/22(金) 23:29:05.55
埋めっちゃが
1000デフォルトの名無しさん2013/11/22(金) 23:31:19.16
子供を産め産め
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。