出されたお題をコーディングして罵られるスレ at TECH
[2ch|▼Menu]
[1からを表示]
50:デフォルトの名無しさん
12/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);
}

51:デフォルトの名無しさん
12/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

52:デフォルトの名無しさん
12/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

53:デフォルトの名無しさん
12/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

54:デフォルトの名無しさん
12/12/20 05:44:33.97
お題:ハノイの塔の問題を解く関数を定義せよ。ただし、結果を直接表示せずに
配列、リスト、文字列などで返すようにせよ。

55:デフォルトの名無しさん
12/12/20 07:25:23.26
URLリンク(codepad.org)

56:デフォルトの名無しさん
12/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

57:デフォルトの名無しさん
12/12/22 13:13:58.02
お題:a X b X c の大きさの直方体がある。直線距離が最大の2点間の直線距離と表面上を移動したときの最小距離を求めよ。

58:デフォルトの名無しさん
12/12/22 15:30:55.56
>>57
URLリンク(ideone.com)

59:デフォルトの名無しさん
12/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)

60:デフォルトの名無しさん
12/12/27 11:35:31.59
>>59
その言語が何かは知らないけれど、巧くできているね。
大体意味は掴めたと思うのだが、sortの後のセミコロンの役目はなんだい?
>56も同じ言語かな? そっちもドット二つの意味が知りたいな。

61:デフォルトの名無しさん
12/12/28 23:45:53.38
>>60
プロンプトに名前がでてるのであらためて書かなくていいかなと思ってました。
>>52 >>56 >>59 はIo言語です。
セミコロンは、単に式のデリミタです。
ドットドットは、文字列連結演算子です。

62:デフォルトの名無しさん
13/01/03 16:28:58.19
お題:n桁の2進数で1が連続する部分をもつ数はいくつあるか?(1<n<50)
たとえばn=3の場合、011、110、111の3個。

63:デフォルトの名無しさん
13/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;
}

64:デフォルトの名無しさん
13/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

65:デフォルトの名無しさん
13/01/06 21:22:17.24
お題:長さが32文字以下の2進表記の文字列が与えられたとき"1"の個数を求めよ。

"1010101" ==> 4

66:デフォルトの名無しさん
13/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;
}

67:デフォルトの名無しさん
13/01/07 01:09:22.84
>>65
URLリンク(ideone.com)

68:片山博文MZボット ◆0lBZNi.Q7evd
13/01/07 01:26:41.44
お題。TXTの拡張BNFをPEGに変換するプログラム。とりつけばWM900。MITライセンスで頼む。期限1/15。

69:デフォルトの名無しさん
13/01/07 01:27:36.59
きもい

70:デフォルトの名無しさん
13/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

71:デフォルトの名無しさん
13/01/07 21:25:32.86
お題
英数字1〜32文字のパスワードに対し、総当たり試行するプログラム

72:デフォルトの名無しさん
13/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').

73:片山博文MZボット ◆0lBZNi.Q7evd
13/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';
}}

74:デフォルトの名無しさん
13/01/08 01:45:27.48
memset(pas,0,sizeof(pas));

for(int l=1;l<=32;l++){
を入れ換える

75:デフォルトの名無しさん
13/01/08 01:46:59.33
泥臭いな
圏で語れよ

76:デフォルトの名無しさん
13/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.

77:デフォルトの名無しさん
13/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,"")

78:デフォルトの名無しさん
13/01/08 16:40:25.41
全部見づらい
0点
出直して来いゴミども

79:デフォルトの名無しさん
13/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'

80:60
13/01/09 12:32:37.92
>>61
THX!
いやぁ、Io言語は知らなかった。

81:デフォルトの名無しさん
13/01/10 12:14:05.18
お題:パソコンの画面に指定した大きさの正方形とそれに内接する円と
その円に内接する三角形(頂点は12時、4時、8時の位置)をかくプログラム。

82:デフォルトの名無しさん
13/01/10 19:50:48.82
お題:ある球体で直径が2割大きくなるとき
体積は何%増加するかを求める

83:デフォルトの名無しさん
13/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;
}

84:デフォルトの名無しさん
13/01/11 01:28:36.43
>>83
真球なの?

85:デフォルトの名無しさん
13/01/11 02:33:52.51
どんな形だろうとも、立体が相似比n倍になったらその体積はnの3乗倍になるだろう

86:デフォルトの名無しさん
13/01/11 06:13:50.98
>>81

87:81
13/01/11 06:45:20.11
ネタがつまらないのは自覚していたが
完全スルーは想定外だった

88:デフォルトの名無しさん
13/01/11 11:05:22.32
ギャハハハ

89:デフォルトの名無しさん
13/01/11 11:56:54.28
グラフといえばエクセルだろ常考

90:片山博文MZボット ◆0lBZNi.Q7evd
13/01/11 15:02:33.57
回答が得られないようなので>>68は宿題スレに移ります。

91:デフォルトの名無しさん
13/01/11 22:44:30.71
>>83
表示しろって書いてないよ

92:デフォルトの名無しさん
13/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;
}

93:デフォルトの名無しさん
13/01/13 15:51:00.53
>>91
その理屈だと、"求めました"、だけでも正解だな。

94:デフォルトの名無しさん
13/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))
}

95:デフォルトの名無しさん
13/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

96:デフォルトの名無しさん
13/01/14 13:56:15.80
>>81
WebGL
URLリンク(api2ch.appspot.com)

97:デフォルトの名無しさん
13/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));

98:デフォルトの名無しさん
13/01/15 22:04:53.33
お題:英小文字だけからなる文字列が与えられる。1回の操作で1文字だけ大文字小文字
変換ができる。この文字列の各文字の大文字、小文字の組合せをもれなく重複なく求めよ。
例 abc のとき
abc
abC
aBC
aBc
ABc
ABC
AbC
Abc

99:デフォルトの名無しさん
13/01/16 00:00:41.77
>>64
>f:=method(n,a:=5 sqrt;2**n-(((1+a)/2)**(n+2)/a)round)

面白そうな言語だが、何故この式でいいのか判らんw
アルゴリズムの勉強が必要かな...

100:デフォルトの名無しさん
13/01/16 06:56:24.27
>>98
URLリンク(ideone.com)

101:片山博文MZパンク ◆0lBZNi.Q7evd
13/01/16 16:01:11.70
>>98 URLリンク(codepad.org)

102:デフォルトの名無しさん
13/01/16 20:01:29.00
>>99
やっていることは maxima でかくと
f(n):=2^n-fib(n+2);

103:デフォルトの名無しさん
13/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

104:デフォルトの名無しさん
13/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

105:片山博文MZパンク ◆0lBZNi.Q7evd
13/01/17 21:57:47.46
皆優秀だな。俺よりコード短い。
お題:緯度と経度のペアを二つ入力すると直線距離を返すプログラムを書け。

106:デフォルトの名無しさん
13/01/17 22:04:11.77
>>105
・球面沿いの最短距離
・2店間の最短距離(地面貫通)
の2つありますね。

107:片山博文MZパンク ◆0lBZNi.Q7evd
13/01/17 22:10:32.91
じゃあ、球面沿いでお願いします。

108:デフォルトの名無しさん
13/01/17 22:55:18.87
>>105
プログラミングやってるなら知ってて当然のGrayCodeへの写像知ってるか知らないかの差

109:デフォルトの名無しさん
13/01/18 01:24:06.15
>>105
URLリンク(ideone.com)

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

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

-- 誤差 ------------------------
-0.3355%

110:デフォルトの名無しさん
13/01/18 06:55:19.03
山は貫通しますか?

111:デフォルトの名無しさん
13/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

112:109
13/01/18 07:35:58.01
>>111ああ、半径6378.137kmですね。
ちゃんと調べれば良かった…。

直しました。
URLリンク(ideone.com)

113:デフォルトの名無しさん
13/01/18 07:39:27.27
>>110
さだまさしさんの防人の詩の一節ですか?
教えて〜ください。

114:デフォルトの名無しさん
13/01/18 18:22:58.41
誰が地球だと言ったんだ?

115:デフォルトの名無しさん
13/01/18 19:10:22.15
消坊って、そういうの嬉しそうに言うよね。
誰が同じ星の上だと言ったんだ?、くらい無意味だな。

116:デフォルトの名無しさん
13/01/18 23:03:03.69
直線がいつの間にか曲がってる

117:デフォルトの名無しさん
13/01/19 00:07:01.24
誰か、強い重力を放ってるのが居るな。

118:デフォルトの名無しさん
13/01/19 01:39:55.28
>>115 スレタイ
コーディングと見たら、ともかく罵るのが紳士。

119:デフォルトの名無しさん
13/01/19 02:04:14.86
お題:1から100の自然数を順序を問わすべて出力する再現性のある方法を10通り挙げよ。

120:デフォルトの名無しさん
13/01/19 02:08:57.17
>>119  訂正
お題:1から100の自然数を順序を問わずすべて出力する再現性のある方法を10通り挙げよ。

121:デフォルトの名無しさん
13/01/19 06:12:37.59
お風呂に肩まで浸かって百まで数える

122:デフォルトの名無しさん
13/01/19 09:47:30.29
1,2,,,100
2,3,,,100,1

123:デフォルトの名無しさん
13/01/19 12:04:33.35
(1..100).each { println it }

124:片山博文MZボット ◆0lBZNi.Q7evd
13/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; }

125:デフォルトの名無しさん
13/01/19 21:54:27.61
>>122-124
全部0点

126:片山博文MZパンク ◆0lBZNi.Q7evd
13/01/19 22:40:04.08
>>125 問題文が言葉足らず。

127:デフォルトの名無しさん
13/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. …

みたいな

128:デフォルトの名無しさん
13/01/21 22:00:08.14
お題:与えられた自然数Nの3進数表示が、これを逆に並べ替えた数字の列と一致するかどうか調べ真偽値を返す関数。(2013年センター試験より)

129:デフォルトの名無しさん
13/01/21 23:22:13.66
>>128
n=10
p (w=n.to_s(3))==w.reverse

130:デフォルトの名無しさん
13/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;
}

131:デフォルトの名無しさん
13/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 を千回入力したときの変換結果を求めよ。

132:131
13/01/23 07:14:17.08
>>131 訂正
上記の関数を作成し、数値 123 を配列99が一回転するまで入力したときの変換結果を求めよ。

133:片山博文MZパンク ◆0lBZNi.Q7evd
13/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;} 携帯から

134:片山博文MZパンク ◆0lBZNi.Q7evd
13/01/24 00:49:10.84
お題:英単語を改行で区切っただけの辞書ファイルからランダムにクロスワードパズル(の解答データ)
を作成するプログラムを作れ。ただしサイズは25マス×25マス以下に制限する。

135:片山博文MZパンク ◆0lBZNi.Q7evd
13/01/24 01:23:48.51
>>134の続き
英単語は全て大文字とし、ハイフンやアポストロフィは含まないものとする。
同じ単語は2つ以上現れないものとする。
解答データは25×25文字のテキストとする。英字が入らないマスは'#'で表すものとする。

136:デフォルトの名無しさん
13/01/25 01:19:20.38
>>131
URLリンク(codepad.org)

137:136
13/01/25 05:14:59.44
間違ってた orz
>> 131
URLリンク(codepad.org)

138:デフォルトの名無しさん
13/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

139:デフォルトの名無しさん
13/01/26 01:52:02.07
>>131とか誰か分かりやすく書き換えてくれよ
何度読んでも意味がわからない
みんなよく分かるね

140:デフォルトの名無しさん
13/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ではないのか?

141:140
13/01/26 02:27:59.50
>>140
× > それは、速度計で言うと 123456.7km の次は
○ > それは、距離計で言うと 123456.7km の次は

142:デフォルトの名無しさん
13/01/26 02:32:23.65
「数取器」の方が分かりやすいか。
1度ボタンを押す=1入力

143:デフォルトの名無しさん
13/01/26 08:49:05.25
何となく分かった

144:デフォルトの名無しさん
13/01/26 16:21:09.40
頭悪いんだな

145:デフォルトの名無しさん
13/01/26 18:05:55.94
>>45>>119などにも言えるが、問題としての体をなしていないようなものに対して
漫然と回答してしまう方が頭が悪い

146:デフォルトの名無しさん
13/01/26 18:38:05.09
クイズスレなんだからそこまで厳格でなくてもいいんだよ

147:デフォルトの名無しさん
13/01/26 18:42:42.00
クイズだから厳格でなくてもいいってどういう理屈だよw

148:デフォルトの名無しさん
13/01/26 19:15:02.86
(めんどくせー)

149:片山博文MZパンク ◆0lBZNi.Q7evd
13/01/27 07:15:00.13
難しすぎた? ヒント要る?

150:デフォルトの名無しさん
13/02/02 11:47:47.82
お題:自然数m、nが与えられたとき、mからnの区間にある平方数の個数を求めよ。
(1<m<n<100000000)

151:デフォルトの名無しさん
13/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));
}

152:デフォルトの名無しさん
13/02/03 07:46:49.19
お題:正20面体の任意の4つの頂点の座標値が与えられたとき
この多面体のすべての頂点の座標値を出力せよ。
座標値の表現方法、出力順は自由。

153:デフォルトの名無しさん
13/02/04 19:09:02.47
お題:一辺の長さがLの正三角形に内接する円に内接する正三角形の面積を求めよ。

154:デフォルトの名無しさん
13/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;
}

155:デフォルトの名無しさん
13/02/05 06:43:29.06
入力の単位分からないのに
結果の単位決まってんだな

156:デフォルトの名無しさん
13/02/05 23:23:25.63
お題:英大文字(A~Z)だけで構成される文字列を、2から始める素数列に対応づけ、暗号化後、復号化せよ。
復号化後の文字がただひとつに決まる(例:23と、2,3を区別)ように、暗号化時に適宜、空白1つを挿入すること。

157:デフォルトの名無しさん
13/02/10 08:57:11.24
お題:48個目のメルセンヌ素数 2^57885161-1 が見つかった。
この数の最後の10桁を求めよ。

158:デフォルトの名無しさん
13/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

159:デフォルトの名無しさん
13/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

160:デフォルトの名無しさん
13/02/10 14:10:26.42
print (2 ** 57885161 - 1) % 10

% python2 hoge.py
1

161:デフォルトの名無しさん
13/02/10 15:25:13.04
>>160
ボケがつまらん

162:デフォルトの名無しさん
13/02/10 16:59:46.76
>>157
dc
2 57885161 10 10 ^ | 1 - p
1724285951

163:デフォルトの名無しさん
13/02/10 18:00:17.75
dcは瞬く間に解が出るな

164:デフォルトの名無しさん
13/02/10 18:53:40.29
dcというのは、なんという名前のプログラミング言語でしょうか?

165:デフォルトの名無しさん
13/02/10 20:00:38.35
>>164
URLリンク(www.linuxcertif.com)

166:デフォルトの名無しさん
13/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

167:デフォルトの名無しさん
13/02/11 19:45:02.57
>>157
Clojure
(prn (dec (.modPow (bigint 2) (bigint 57885161) (bigint 10000000000))))

168:デフォルトの名無しさん
13/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にする.
(灘中学入試問題より)

169:デフォルトの名無しさん
13/02/11 23:35:12.74
printf("87654321");

170:デフォルトの名無しさん
13/02/12 18:44:34.31
>>168 J言語
a =: "."0": 12345678
b =: /:"."0": 24681357
, ":"0 b&{ ^: 100 a
48372615

171:デフォルトの名無しさん
13/02/13 02:12:33.47
>>169
wwwwwwwwwwwwwwwwwwwwwww

172:デフォルトの名無しさん
13/02/15 01:48:32.23
お題:将棋盤の左下隅からいちばん外側の升目を右回りに N 舛だけ移動したときの
位置 P を求めよ。左下隅、左上隅、右上隅、右下隅をそれぞれ 99、91、11、19 とする。
例 N = 15 のとき P = 21

173:デフォルトの名無しさん
13/02/15 08:25:35.83
暗算出来る算数の問題ばっかり

174:デフォルトの名無しさん
13/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

175:デフォルトの名無しさん
13/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

176:片山博文MZパンク ◆0lBZNi.Q7evd
13/02/20 17:01:36.84
お題:Webメーラーを作れ。

177:デフォルトの名無しさん
13/02/22 19:51:39.41
お題:標準入力からの入力をそのまま標準出力へ出力するプログラム。

178:デフォルトの名無しさん
13/02/22 19:57:23.28
#include<stdio.h>
int main() {
int ch;
while (EOF != (ch = getchar())) putchar(ch);
return 0;
}

179:デフォルトの名無しさん
13/02/22 22:01:31.45
>>177 Io言語
File standardInput contents print

180:デフォルトの名無しさん
13/02/23 10:43:04.30
>>177
J

stdout stdin ''

181:デフォルトの名無しさん
13/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

182:デフォルトの名無しさん
13/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

183:デフォルトの名無しさん
13/02/23 18:37:02.42
>>177
Lua

io.write(io.read("*a"))

184:片山博文MZパンク ◆0lBZNi.Q7evd
13/02/25 00:29:36.63
お題:英文を入力すると、それに対応する発音記号の列を出力するプログラムを書け。

185:デフォルトの名無しさん
13/02/26 23:26:53.43
自己顕示欲を満たす為だけに

両片山氏

186:デフォルトの名無しさん
13/02/27 13:04:06.23
>>177
lex

%%

187:デフォルトの名無しさん
13/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));
}

188:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/10 23:49:53.56
お題:Phusion PassengerをWindowsに移植せよ

189:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/11 00:31:44.34
お題:テキストファイルwords.txtに改行区切りの正しい英単語のリストが記されている。
これを元に入力された英文のスペルチェックを行うプログラムを作れ。
スペルの間違った箇所を{{原文の単語::修正候補1||修正候補2||修正候補3}}のように出力し、その他は原文のまま出力すること。
修正候補は原文の単語のスペルに最も近い3個の単語とする。
英単語はアルファベットとハイフンとアポストロフィで構成されるものとする。
その他のピリオドや空白などの文字はそのまま出力するものとする。

190:デフォルトの名無しさん
13/03/11 00:45:48.30
> 原文の単語のスペルに最も近い

こんなあいまいな仕様でお題とかバカ過ぎ

191:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/11 01:07:23.09
2単語間の距離を次のように定義する。
1)同じ単語なら距離はゼロ。
2)アルファベット1字違うなら距離は1増える。
3)アルファベット1字多いか足りないならなら距離は2増える。
4)ハイフンが1字多いか足りないなら距離は1増える。
5) 2)〜4)の組み合わせなら考えられる組み合わせの最短距離をその単語の距離とする。
???これでいい?

192:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/11 01:23:19.30
あっ、アポストロフィを忘れてた。

2単語間の距離は適当に定義すること。これでいいや

193:デフォルトの名無しさん
13/03/11 01:44:42.56
>>190
もしかしてSEいないとプログラミングできないタイプ?

194:デフォルトの名無しさん
13/03/11 01:48:08.20
アホ SE がいると混乱するので、どっかいってて下さいな

195:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/11 02:34:02.39
>>184
単語ごとに辞書を引いて発音記号を調べて出力するだけじゃん。出題者のばーか

196:デフォルトの名無しさん
13/03/11 07:06:28.14
クソスレ乙w

197:デフォルトの名無しさん
13/03/11 20:58:43.33
大喜利スレなんだから簡単なお題でもいいと思うわけ。

198:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/16 23:26:30.95
お題:与えられた文字列の先頭と終端にある空白文字の並びを取り除く関数を作れ。

199:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/16 23:46:37.41
お題:ある整数が半角数字の文字列で入力された時、それを漢数字表記に変換するプログラムを作れ。

200:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/16 23:48:36.98
お題:逆に漢数字を半角数字に変換するプログラム。

201:デフォルトの名無しさん
13/03/17 11:16:52.48
お題:長辺の長さがA、短辺の長さがBの長方形の紙がある。対角の頂点を重ねて折る。
その折り目の長さを求めよ。

202:デフォルトの名無しさん
13/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));
}

203:デフォルトの名無しさん
13/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

204:デフォルトの名無しさん
13/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]
実際には空白文字のところを @ にしています。

205:デフォルトの名無しさん
13/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]

206:デフォルトの名無しさん
13/03/18 18:16:50.56
>>198 Lua
trim=function(s)return s:match("^%s*(.-)%s*$")end

> print("["..trim("@@@a bc@@@").."]")
[a bc]

207:デフォルトの名無しさん
13/03/19 06:53:43.43
お題:緯度と経度を与えると北方向への角度を返す関数を作成せよ。(画面上方を0度とする)

208:デフォルトの名無しさん
13/03/19 07:28:02.80
画面上方て

209:デフォルトの名無しさん
13/03/19 07:38:01.50
PCディスプレイに、方位・傾きセンサーが必要だな。

210:207
13/03/19 08:03:26.96
コンパス的な関数を想定して、平面座標上での角度・方角という意味で書きたかったのですが・・・
お題になってませんね。日本語むづかしい。

211:デフォルトの名無しさん
13/03/19 12:25:58.90
お題:長方形の紙がある。右の辺を左の辺にぴったり重ねて折る。折ったままの状態で
もう一度、右の辺を左の辺に重ねて折る。これを広げると左から谷折り、谷折り、山折
りの折り目がつく。N 回、紙を折ったときの折り目をめよ。山折りを A 、谷折りを V
で表す。

N=2 のとき VVA
N=3 のとき VVAVVAA

212:デフォルトの名無しさん
13/03/19 12:38:10.25
ドラゴンカーブってやつですかね?

213:デフォルトの名無しさん
13/03/19 12:55:03.26
>>212
折り目を90度にするとそうなります。

214:デフォルトの名無しさん
13/03/19 21:38:11.71
>>211 J
f =: monado def ' ''VA''{~(,[:0&,-.@|.)^:(y)0'

f 4
VVAVVAAVVVAAVAAVVVAVVAAAVVAAVAA
f 5
VVAVVAAVVVAAVAAVVVAVVAAAVVAAVAAVVVAVVAAVVVAAVAAAVVAVVAAAVVAAVAA

215:デフォルトの名無しさん
13/03/19 21:49:22.61
>>201 J
f =: %~*[:%:+&*:

4 f 3
3.75

216:デフォルトの名無しさん
13/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("")
)

217:デフォルトの名無しさん
13/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

218:デフォルトの名無しさん
13/03/20 09:24:28.15
    _, ._
  ( ・ω・)んも〜
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)VVAVVAAVVVAAVAAVVVAVVAAAVVAAVAAVVVAVVAAVVVAAVAAAVVAVVAAAVVAAVAA

219:片山博文MZパンク ◆0lBZNi.Q7evd
13/03/20 23:51:06.00
お題:レーヴェンシュタイン距離を求める

220:デフォルトの名無しさん
13/03/21 22:25:15.88
おもしろそうなスレ発見
初心者でもいいっすか?罵ってください!

221:デフォルトの名無しさん
13/03/22 01:42:43.70
>>220 どうぞどうぞ

222:デフォルトの名無しさん
13/03/22 07:33:23.78
>>220
お題にしたがってコーディングしたら、罵ってやる

223:デフォルトの名無しさん
13/03/22 18:41:17.42
お題:正方形のタイルをA 行 B 列に並べたときにあらわれる長方形の個数を求めよ。

A = 2、B = 2 のとき 9 個
A = 3、B = 4 のとき 60 個

224:デフォルトの名無しさん
13/03/22 19:48:37.13
>>223
URLリンク(projecteuler.net) ?

225:デフォルトの名無しさん
13/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

226:デフォルトの名無しさん
13/03/24 00:32:51.40
>>223
((a + 1) * a / 2) * ((b + 1) * b / 2)

227:デフォルトの名無しさん
13/03/24 07:09:47.14
タイルの模様は

228:デフォルトの名無しさん
13/03/24 07:33:08.84
>>227
無地です

229:デフォルトの名無しさん
13/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°

230:デフォルトの名無しさん
13/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

231:デフォルトの名無しさん
13/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

232:デフォルトの名無しさん
13/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 --> 真

233:片山博文MZパンク ◆0lBZNi.Q7evd
13/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;}

234:デフォルトの名無しさん
13/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;
}

235:デフォルトの名無しさん
13/03/30 23:49:07.35
お題:できる限り速くフーリエ変換を行う関数を作れ。

236:デフォルトの名無しさん
13/03/30 23:54:32.42
つまり早くレスした人の勝ち

237:片山博文MZパンク ◆0lBZNi.Q7evd
13/04/01 23:13:26.06
お題:平面幾何学の問題を解く人工知能を作れ

貴様らにできるかな?w

238:片山博文MZパンク ◆0lBZNi.Q7evd
13/04/02 00:50:39.01
お題:'('と')'でできた文字列が与えられると、対応しているカッコの対の個数を返す関数。
例。"())" → 2
"(())" → 4
")(()()" → 5

239:片山博文MZパンク ◆0lBZNi.Q7evd
13/04/02 01:14:41.42
お題:行列Aのサイズ(縦と横)と行列Aの各成分がCSV形式のテキストファイルで与えられている。Aの逆行列を掃き出し方で求めよ。

240:デフォルトの名無しさん
13/04/02 04:15:37.84
>>233
ウンコード

241:デフォルトの名無しさん
13/04/02 05:02:14.35
>>239
各成分はともかく、サイズのフォーマットはどうなってんの
一行目だけ2列でそこに縦横みたいな?

242:片山博文MZパンク ◆0lBZNi.Q7evd
13/04/02 12:26:13.09
>>241
縦のサイズ,横のサイズ\n
(1,1)成分,(1,2)成分,...\n
(2,1)成分,(2,2)成分,...\n
...
みたいな感じで頼む

243:デフォルトの名無しさん
13/04/02 12:37:14.56
>>242
ナニソノ微妙なフォーマット…単に列挙しただけのCSVじゃダメなのかYO

244:デフォルトの名無しさん
13/04/02 17:14:31.93
>>242
正方行列ではないの?

245:デフォルトの名無しさん
13/04/02 18:10:58.86
お題:二足歩行する猿が一匹いる。猿が今考えている内容を標準出力せよ。

246:232
13/04/05 05:10:26.49
>>234
例がまずかったでしょうか?
N=13、1+3+1+3+1+3+1=13
なども真のつもりです。

247:デフォルトの名無しさん
13/04/05 18:03:31.68
お題:a * b * c の直方体がある。 a + b = c とする。この直方体の一つの頂点と
これに隣接する三つの頂点からなる四面体の表面積を求めよ。

248:デフォルトの名無しさん
13/04/05 22:03:03.35
>>246
足す順序は上位桁から?
それとも入れ替えてもいいの?

249:デフォルトの名無しさん
13/04/05 22:45:49.74
>>248
> 足す順序は上位桁から?
はい。

> それとも入れ替えてもいいの?
入れ替えはなしです。

250:デフォルトの名無しさん
13/04/05 23:22:58.96
>>247
=(a+b)^2
っぽい

251:デフォルトの名無しさん
13/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

252:デフォルトの名無しさん
13/04/08 00:01:45.01
お題:0より大きく1より小さい循環小数を分数に変換せよ。
循環小数は循環する部分を丸括弧でくくった表記とする。

0.08(3) -> 1/12
0.(142857) -> 1/7
0.2(36) -> 13/55

253:デフォルトの名無しさん
13/04/08 06:58:18.64
>>252
スレリンク(tech板:655番)
丸括弧じゃなくて [ ] だけれども


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

4187日前に更新/61 KB
担当:undef