プログラミングのお題スレ Part4

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part3
http://peace.2ch.net/test/read.cgi/tech/1390525149/
プログラミングのお題スレ
http://toro.2ch.net/test/read.cgi/tech/1357191974/
出されたお題をコーディングして罵られるスレ
http://toro.2ch.net/test/read.cgi/tech/1354393458/

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文

【ソースコードが長くなったら】
http://codepad.org/
http://ideone.com/

宿題は宿題スレがあるのでそちらへ。
2デフォルトの名無しさん:2014/06/13(金) 10:17:20.80 ID:Q8FRmQS5
>>1
乙。
3デフォルトの名無しさん:2014/06/13(金) 10:52:12.91 ID:Q8FRmQS5
ニュースの時間です。
最近、問題の出題者が是非を問わず失踪する事件が相次いでおり続報が待たれます。
それではおやすみなさい。
4デフォルトの名無しさん:2014/06/13(金) 14:04:49.30 ID:kccJ4S5h
破問失踪
5デフォルトの名無しさん:2014/06/13(金) 15:31:39.26 ID:71nCtwZM
前スレの問題
abc
c
abd
?
abe
b
ae?
a
???

これはある規則に沿って表示されている
?の部分の文字を埋めよ
6デフォルトの名無しさん:2014/06/13(金) 15:34:44.97 ID:71nCtwZM
回答

abc ←スタート
c ← 直前の文字列からcを引く
abd ←お尻にcの次の文字が追加する
d ←dを引く
abe ←dの次の文字のeをお尻に追加する
b ←bを引く
aec ←bが引かれてeが繰り上がり、bの次の文字cをお尻に追加する
a
ecb
7デフォルトの名無しさん:2014/06/13(金) 15:46:01.59 ID:71nCtwZM
アルファベットの小文字から成り立つ、文字列S(length=3)と文字Cがある
Sの左辺の文字をS1,中央の文字をS2,右辺の文字をS3とする
例)S=xyz, S1=x, S2=y, S3=z
SからCを引くと、Sに含まれるCを削除し、Sの語尾にCの次の文字(アルファベット順)を加える。
例)S=abc, C=cなら、S-C="abd"となる
また、SにCが存在しない場合は何も引かれない・足されない。
'z'の次の文字は'a'とする。
10回目の文字の足し算でS1=S2=S3となるSとCの組み合わせを全て求めよ
8デフォルトの名無しさん:2014/06/13(金) 15:47:22.93 ID:71nCtwZM
あ、まって書きなおす
9デフォルトの名無しさん:2014/06/13(金) 15:48:11.71 ID:Q8FRmQS5
>>5-6
俺解けなかったけど、あんたはいい出題者だ。またなんか考えてもってきて〜。
文句言うなら。パターン認識するために、お膳立てをもうちょっとしてほしかったかな。

さて、睡眠継続〜。
10デフォルトの名無しさん:2014/06/13(金) 15:51:03.50 ID:71nCtwZM
アルファベットの小文字から成り立つ、文字列S(length=3)と文字Cがある
Sの左辺の文字をS1,中央の文字をS2,右辺の文字をS3とする
例)S=xyz, S1=x, S2=y, S3=z
SからCを引くと、Sに含まれるCを削除し、Sの語尾にCの次の文字(アルファベット順)を加える。
例)S=abc, C=cなら、S-C="abd"となる
また、SにCが存在しない場合は何も引かれない・足されない。
'z'の次の文字は'a'とする。
ループの初めはC=S3とする。SにCを足した後はC=S3とする。
9回目の文字の足し算でS1=S2=S3となるSとCの組み合わせを1つ求めよ
11デフォルトの名無しさん:2014/06/13(金) 15:53:53.60 ID:Q8FRmQS5
>>10
足し算の法則性は自分で考えろってこと?
12デフォルトの名無しさん:2014/06/13(金) 17:03:55.52 ID:CyA6OO09
>>10
S=aabは考えなくていいのか
13デフォルトの名無しさん:2014/06/13(金) 17:44:01.09 ID:24IwXXBF
>>10の問題の元ネタを忘れたから取り消し
14デフォルトの名無しさん:2014/06/13(金) 17:47:54.41 ID:24IwXXBF
N(0<N<10000)は2で割り切れる整数である
1からNまでの整数を右回りの渦巻きで出力せよ
標準入力から以下の形式で与えられる
N

(例)
[input]
9
[result]
1 2 3
8 9 4
7 6 5
15デフォルトの名無しさん:2014/06/13(金) 18:01:10.51 ID:FrjLIVoM
訂正

N(0<N<10000)は2で"割り切れない"整数である
1からNまでの整数を右回りの渦巻きで出力せよ
標準入力から以下の形式で与えられる
N

(例)
[input]
9
[result]
1 2 3
8 9 4
7 6 5
16デフォルトの名無しさん:2014/06/13(金) 19:15:03.54 ID:ZlYpURCX
>>15
9以外の場合の出力は?
17デフォルトの名無しさん:2014/06/13(金) 20:06:38.85 ID:MtxIaOIX
Nが整数の二乗じゃない場合が謎だね
18デフォルトの名無しさん:2014/06/13(金) 21:31:09.60 ID:Q8FRmQS5
k==Nはとてもじゃないが計算できないので打ち切り。うちのアトムじゃ不適当だな。
TimeUsing:357Min@31905732CountCalced
見つかったかどうかはわからん。かーたーつーむーりー。
19デフォルトの名無しさん:2014/06/13(金) 23:48:18.14 ID:xctJNyBf
20デフォルトの名無しさん:2014/06/14(土) 00:05:44.14 ID:MgRt7LMK
Helloを一番短いコードで出力しろ
21デフォルトの名無しさん:2014/06/14(土) 00:20:09.07 ID:MgRt7LMK
お題を出してコードを投稿する海外のサイトってない?
コードゴルフに特化してないのがいいんだけどない?
22デフォルトの名無しさん:2014/06/14(土) 01:14:50.13 ID:SwBFDyk2
前スレ >>973
筆算
  ______
237)18472...

をやりながらコードを見るんだ
23デフォルトの名無しさん:2014/06/14(土) 02:32:41.23 ID:owGByNif
>>22
あのでかい数筆算するんか。精度的に自信ない。
筆算なんか十何年やってないからねぇ。Orz

>>15
寝不足とサイオン足りないので今日はパスするかも。
NをSqrtしてX^2あまりYでいいよね。適当だけど。
Sqrt重たいのわかるけどこの問題ならアリかなと思う。
24デフォルトの名無しさん:2014/06/14(土) 04:50:00.40 ID:owGByNif
>>15
ttp://ideone.com/X1WsTo
ほぼC。綺麗さ重視であまり出しながらも形は作る感じ。
>>19とは対称ですねぃ。
サイオン回復したので一応作ってみた。
・・・。標準入力・・・だ・・・と・・・。
ttp://ideone.com/XCZXGb
対応した。さて、飯食うか。
25デフォルトの名無しさん:2014/06/14(土) 08:43:09.91 ID:wNU/NJPK
>>1 おっ
>>5
たとえばabcの次にcが来る理由を考えてた。
問題文をよく読め。
26デフォルトの名無しさん:2014/06/15(日) 21:35:27.50 ID:lBQJsMnk
地球の周りを3つの衛星が回っています
衛星Aは1時間23分かけて地球一周できます
衛星Bは3時間9分かけて地球一周できます
衛星Cは5時間45かけて地球一周できます
衛星は同じ位置にくると自動的によけてくれるので衝突して故障することはありません。速度も一定に移動します。
衛星Aは60度の位置、衛星Bは192度の位置、衛星Cは265の位置からスタートする。
3つの衛星が同じ位置に重なりあうのは何時間後か求めて出力せよ。また、重なりあうまで何周したかそれぞれ出力せよ。
27デフォルトの名無しさん:2014/06/15(日) 22:07:52.18 ID:wjE+lkrG
>>22
多バイト長÷短バイト長はわりあいと楽ですね
http://peace.2ch.net/test/read.cgi/tech/1313183984/610
http://ideone.com/as7Jow
28デフォルトの名無しさん:2014/06/15(日) 22:14:35.24 ID:wjE+lkrG
>>26
仮に円軌道かつ赤道面上を周回するとしても、それでも、人工衛星の周回軌道は高度と一対一に結びついている
なんだか非常に無理のある設定だ、というか「衛星は同じ位置にくると自動的によけてくれるので衝突して故障することはありません」はいらない文

誰の出題だ?
29デフォルトの名無しさん:2014/06/16(月) 01:45:11.10 ID:MERkKOKe
お題: 麻雀における向聴数を数え上げる


実装例:
http://tenhou.net/2/

麻雀ルール等:
http://mahjong.nomaki.jp/
http://mahjong.ara3.net/lecture/shanten.htm
http://dora12.net/modules/dic/syantensu.html
30デフォルトの名無しさん:2014/06/16(月) 05:10:53.21 ID:eNuyf1Ao
>>28
全ての衛星は赤道上を回る高度の違う衛星です、とかでいいだろというか、
角度合わせないと重ならないよな…出題者は1次元で考えてんだろうけど。
31 ◆0qAv26otVI :2014/06/16(月) 11:29:18.56 ID:2sGj4NhO
t分後の衛星の位置
衛星A:(60/360+t/83) mod 1.0
衛星B:(192/360+t/189) mod 1.0
衛星C:(265/360+t/345) mod 1.0
衛星Aと衛星Bが重なる周期と、衛星Aと衛星Cが重なる周期の最小公倍数を
求める方向でいいかな? >>28
32デフォルトの名無しさん:2014/06/16(月) 12:47:07.47 ID:9OUnGSWw
宝石店のアルバイト(a1...a5)と客(k1...k5)が各5人います。
宝石店には輪になったカウンターがあり、そこに客は座っています。
宝石店には10個の色が異なる宝石(h1...h10)があります。
1人の客に一度に見せられる宝石は2つまでで、5人同時に異なる宝石を見せます。
一度見た宝石を2度も見せることはしません。
ただし、客に見せた2つの宝石のうちの1個はとなりの客に見せます。
例)k3の隣はk2とk4, k5の隣はk4とk1

全ての客に全ての宝石を見せ終わるまで何回かかるか調査しなさい。
33デフォルトの名無しさん:2014/06/16(月) 18:21:58.44 ID:lnWmJsSA
>>32
組み合わせの問題苦手だけど、これだったら10回あれば回せないか?9回かもな。
普通に一周させて4回目で右と左をスワップしてもう一周と思ったけど、
これ、一回一個を2周させるより早い手順ある?2個必ず見せるとは書いてない。
うーん。
34デフォルトの名無しさん:2014/06/16(月) 18:25:53.76 ID:lnWmJsSA
っていうか、一回に両方を右回りと左回り一周すれば、全部見たことになるんじゃないか?
一個はなので二個でもおk?
35デフォルトの名無しさん:2014/06/16(月) 18:39:59.16 ID:lnWmJsSA
>>32
ttp://ideone.com/lWeDh6
ほぼC。めちゃくちゃ適当に書いたけど、こういうことだよね?
36 ◆0qAv26otVI :2014/06/17(火) 14:36:05.05 ID:yl/QxhYO
>>28 tが整数という制限(ガクッ)
t=499 (minute) EPSILON=1.000000e-002
A=0.178715 B=0.173545 C=0.182488 (360 degree=1.0)
AB=1.861159 BC=-3.219462 CA=1.358303 (degree)
A=7 B=3 C=2 (times)
- - - - - - - - - - - - - - - - - - - - - - - - - - -
t=538444 (minute) EPSILON=1.000000e-003
A=0.443775 B=0.443386 C=0.443357 (360 degree=1.0)
AB=0.139989 BC=0.010352 CA=-0.150341 (degree)
A=6488 B=2849 C=1561 (times)
37デフォルトの名無しさん:2014/06/17(火) 17:27:01.98 ID:DkLyoDX2
片山MZすごいじゃん
今日の窓の杜に日本語で計算させるソフトが載ってる
38デフォルトの名無しさん:2014/06/18(水) 23:43:02.82 ID:xlveYer0
標準入力から与えられたフォーマットを元に年齢を求めて出力せよ
標準入力から以下の形式で与えられます
YYYY/MM/dd

年齢は誕生日の前日に歳を重ねることに注意せよ。4/1生まれの場合は3/31に歳が増えることになる。
39デフォルトの名無しさん:2014/06/18(水) 23:44:54.58 ID:TxeGU8JJ
C/C++の宿題片付けます 167代目
http://peace.2ch.net/test/read.cgi/tech/1392388003/
40デフォルトの名無しさん:2014/06/18(水) 23:54:31.17 ID:DFxPJl2r
>>38
未来の日付が与えられた時の仕様は?
41デフォルトの名無しさん:2014/06/18(水) 23:56:27.56 ID:xlveYer0
-1を返して
42デフォルトの名無しさん:2014/06/19(木) 00:09:32.23 ID:+j7TYHbL
4/1の午前0時生まれは、次の年の4/1の午前0時にならないと満一年にならないけど
43デフォルトの名無しさん:2014/06/19(木) 00:29:42.44 ID:lwMZS3uy
>>38
ruby

require 'date'
y, m, d = gets.split('/').map{|e|e.to_i}
day2 = Date.today + 1
age = day2.year - y
age -= 1 if Date::new(day2.year, m, d) > day2
p age
44デフォルトの名無しさん:2014/06/19(木) 00:33:56.29 ID:td7zSXVn
3月31日が終わった時点で年が増える。時刻は関係ない。
45デフォルトの名無しさん:2014/06/19(木) 02:04:17.89 ID:D7BmUZOO
>>42
日本の法律では前日に歳が増える
46デフォルトの名無しさん:2014/06/19(木) 02:05:16.48 ID:D7BmUZOO
4/1生まれの人は4/2の人と同じ学年にはならない
47デフォルトの名無しさん:2014/06/19(木) 06:47:37.65 ID:gzfpEmrh
>>26 Python
http://ideone.com/8DPtbc
答えは自信ない...
48デフォルトの名無しさん:2014/06/19(木) 15:08:54.60 ID:UADYZqLi
1から10000000000000000000000000000000000000000000000000000000000000000000までの和を求めよ
言語に実装された和を求める為の関数やライブラリの使用は禁止とする
49デフォルトの名無しさん:2014/06/19(木) 15:10:04.69 ID:UADYZqLi
書く人はいないと思うけどループで1から順に足していくのは10点
50デフォルトの名無しさん:2014/06/19(木) 16:48:56.36 ID:EHpEAUer
問題の意図がよくわからない
51デフォルトの名無しさん:2014/06/19(木) 16:57:22.80 ID:OLf00bFf
先頭と末尾を足して、個数掛けて、2で割る。
52デフォルトの名無しさん:2014/06/19(木) 16:59:02.04 ID:OLf00bFf
高2レベルの数学の基本。
53デフォルトの名無しさん:2014/06/19(木) 17:05:35.80 ID:EHpEAUer
anが偶数の時
(a1 + an ) * (an / 2)

以外の答えを求めてるの?
意図が分からん
54デフォルトの名無しさん:2014/06/19(木) 17:07:50.58 ID:a/a0+n9Y
バカには無理
55デフォルトの名無しさん:2014/06/19(木) 17:08:16.01 ID:OLf00bFf
>>53
奇数でも問題なく通用するよ
56デフォルトの名無しさん:2014/06/19(木) 17:11:32.58 ID:EHpEAUer
>>51
これは二つの点で良くない
ひとつめ
結果を得るための計算としては有効であるが
そのように計算可能となるアルゴリズムが直接的に表現されていない
ふたつめ
不要な大きな数の計算をする事になる

数学とプログラミングはイコールではないし
計算とアルゴリズムもイコールではない

高校数学!話にならん話
57デフォルトの名無しさん:2014/06/19(木) 17:12:29.20 ID:EHpEAUer
>>55
計算としてなら通用する
58デフォルトの名無しさん:2014/06/19(木) 17:16:39.01 ID:BcmtgtjI
昔、1からnまでの和を簡単に計算する方法として読んだな、小学生向けの本だったぞ
59デフォルトの名無しさん:2014/06/19(木) 17:21:28.32 ID:OLf00bFf
んーアルゴリズムとしてなら、1と10の計算として扱って、残りの0の個数で調整する。
60デフォルトの名無しさん:2014/06/19(木) 17:21:49.32 ID:up+oEz5h
わからない人はまず1から10までの和を求めるところから練習すればいいよ
61デフォルトの名無しさん:2014/06/19(木) 17:23:23.05 ID:up+oEz5h
桁を大きくしたのはループを使わないでほしい意味を込めた優しさのつもりだったんだけどね
62デフォルトの名無しさん:2014/06/19(木) 17:25:22.03 ID:OLf00bFf
An/2 + An**2/2 てことで
63デフォルトの名無しさん:2014/06/19(木) 18:01:30.86 ID:x9PjgZWi
>>56
意味不明
64デフォルトの名無しさん:2014/06/19(木) 18:44:20.51 ID:nGqFEu9y
>>56
n(n+1)/2で求めるのも立派なアルゴリズムなんだけど?
65デフォルトの名無しさん:2014/06/19(木) 18:56:35.57 ID:fgOwoOKT
いかに速く計算できるかしかこだわる点はないだろ。
多桁だから少しは工夫できる。
66デフォルトの名無しさん:2014/06/19(木) 19:25:38.20 ID:Brdb8B0I
条件は
>>48
> 言語に実装された和を求める為の関数やライブラリの使用は禁止とする
なので、
・n(n+1)/2 はok
・多倍長整数計算を実装せよ
って意図では
67デフォルトの名無しさん:2014/06/19(木) 20:00:43.15 ID:Lgo8NLIN
多倍長実装するの大変なのでパス。@逆襲してた人。
っていうか、多倍長理解してないんだよな。だから無理。
68デフォルトの名無しさん:2014/06/19(木) 20:03:04.89 ID:fgOwoOKT
多桁は多項式計算の実装すればいいんだ。
69デフォルトの名無しさん:2014/06/19(木) 20:13:33.99 ID:Lgo8NLIN
>>68
そうだけど、Ideonで証明できないからなぁ。
すまんけど、ちょっとつまらん。
70デフォルトの名無しさん:2014/06/19(木) 22:54:19.34 ID:gzfpEmrh
>>48 Python
#2進数 (b+1)*b/2
b = "10000000000000000000000000000000000000000000000000000000000000000000"
#print b[:-1] + "1" + b[1:-1]
#print b[:-1] + b[:-1]
print b[:-1] * 2
71デフォルトの名無しさん:2014/06/19(木) 23:11:17.83 ID:4S5DOub9
[:-1] ←顔っぽい
72デフォルトの名無しさん:2014/06/19(木) 23:23:18.13 ID:qa8nBQ3x
>>48
入力された値の総和を求めるプログラムじゃなくて固定値なんだから・・・

1から10なら55、1から100なら5050,1から1000なら500500なわけだ
つまり、ゼロの数をxとして
5を出力、改行せずにゼロをx-1回出力、5を出力、改行せずにゼロをx-1回出力、改行
ってな感じでやったら石投げられるかなwww

ttp://codepad.org/G7rWZhu4
73デフォルトの名無しさん:2014/06/19(木) 23:39:40.48 ID:2ortrccs
>>72
その結果あってるのか?
49999999999999999136838789195927991586198914377904661392885735751680000000000000000000000000000000000000000000000000000000000000000000
74デフォルトの名無しさん:2014/06/19(木) 23:45:09.27 ID:7NaVp+xv
>>48
> 言語に実装された和を求める為の関数やライブラリの使用は禁止とする
足し算から定義するか・・・そのためにまず自然数から定義してっと・・・
75デフォルトの名無しさん:2014/06/19(木) 23:54:33.92 ID:qa8nBQ3x
>>73
その怪しい解をおかしいと思わないあなたが心配です。。。
76デフォルトの名無しさん:2014/06/20(金) 00:02:20.04 ID:MNvGdz/i
例えば
(10000+1)*10000/2
=(10000+1)*5000
=10000*5000 + 5000
だからな。
77デフォルトの名無しさん:2014/06/20(金) 00:04:13.95 ID:rmN2sG+2
>>48 bc
変な改行になってしまうから勝手に桁を減らした
http://ideone.com/JI1T1W
78デフォルトの名無しさん:2014/06/20(金) 00:13:10.06 ID:rNGAsf/H
>>48は自然数の和の公式でいけるんじゃないの?
((10000000000000000000000000000000000000000000000000000000000000000000)+(10000000000000000000000000000000000000000000000000000000000000000001))/2
79デフォルトの名無しさん:2014/06/20(金) 00:13:36.94 ID:rNGAsf/H
間違えた
((10000000000000000000000000000000000000000000000000000000000000000000)*(10000000000000000000000000000000000000000000000000000000000000000001))/2
80デフォルトの名無しさん:2014/06/20(金) 00:14:34.33 ID:rNGAsf/H
1〜nまでの和は n*(n+1)/2
81デフォルトの名無しさん:2014/06/20(金) 00:35:34.20 ID:eyF0lSTD
お題:0から9のうち8種類の数字を使って4桁の10進数を2個つくり、その積をとると
4桁の2個の数に使用した8種類の数字はひとつも現れなかった。
この4桁の2個の10進数を求める。
82デフォルトの名無しさん:2014/06/20(金) 00:40:46.54 ID:HuhJSpav
既出
83デフォルトの名無しさん:2014/06/20(金) 00:41:28.00 ID:HuhJSpav
84デフォルトの名無しさん:2014/06/20(金) 01:28:45.54 ID:G5yuErw/
>>81
結構重いなぁ。
85デフォルトの名無しさん:2014/06/20(金) 01:39:12.16 ID:G5yuErw/
>>81
サンプルプリーズ。
86デフォルトの名無しさん:2014/06/20(金) 01:51:48.40 ID:fqUiErnm
>>81
確認だけど積は2種類の数字からなるってこと?
87デフォルトの名無しさん:2014/06/20(金) 02:17:34.18 ID:MNvGdz/i
そういうことになるな。
4つ+4つを選んで、掛け算したあとの下位1桁目のあり得るパターンから探してくとかか?
88デフォルトの名無しさん:2014/06/20(金) 02:33:39.39 ID:ZcO8mb2F
javascriptでfizz buzzを書け
禁止ワード: false true if % !
89デフォルトの名無しさん:2014/06/20(金) 02:46:06.40 ID:G5yuErw/
>>81
http://ideone.com/6IAX6X
ほぼC。ideonはえー。うちで計算したら2時間くらいかかったんだが。
そこはかとなくバグってるがキニシナイ。
6712*5049=33888888
5132*867=4449444
143*5796=828828
1924*357=686868
1274*539=686686
5796*143=828828
357*1924=686868
457*2869=1311133
867*5132=4449444
539*1274=686686
5049*6712=33888888
2869*457=1311133
90デフォルトの名無しさん:2014/06/20(金) 03:00:01.61 ID:C6Xti4O4
下2桁同士の掛け算で積の下2桁も決まるから
そこで異なる数字が出たら上2桁を縛れる
91デフォルトの名無しさん:2014/06/20(金) 03:06:18.32 ID:C6Xti4O4
ちなみに下一桁は
奇奇・偶偶がそれぞれ3通り
奇偶が4*4の16通り 計22通りだと思う

>>89
つまり最終的に1組しかないのね
92デフォルトの名無しさん:2014/06/20(金) 03:13:32.41 ID:G5yuErw/
>>91
俺、なんか間違ってる?
余計な計算してるだけだったら、解説頼む。
4桁*4桁はそういえば一組か。
0もちゃんと扱えないとなーと思って3ケタも混ぜたんだが。
93デフォルトの名無しさん:2014/06/20(金) 03:14:52.47 ID:09C2glzp
力技C
http://ideone.com/kFMnzH

celeronM1.86GHzで0.2sくらいで終わった
94デフォルトの名無しさん:2014/06/20(金) 03:29:53.62 ID:G5yuErw/
>>93
超速いな。ふむふむ・・・。Orz
95デフォルトの名無しさん:2014/06/20(金) 05:25:41.18 ID:09C2glzp
>>93
60行目
> for (a[4] = 1; a[4] < 10; a[4]++) { if (check(a, 4)) continue;
        ↓
> for (a[4] = 5; a[4] < 10; a[4]++) { if (check(a, 4)) continue;

と変更したら、1.5倍くらい速くなった
96デフォルトの名無しさん:2014/06/20(金) 05:27:48.00 ID:09C2glzp
ああ、1789 x 2345 が答えの可能性もあるので>>95は間違い
97デフォルトの名無しさん:2014/06/20(金) 06:59:37.63 ID:Xn/NpwsD
>>89
うちのi7では0.76s
exeやvectorがL3キャッシュに乗ると滅茶苦茶速くなるんじゃね

>>93
こちらは31ms
chrono便利だな
98デフォルトの名無しさん:2014/06/20(金) 08:38:36.31 ID:+x3ndtqK
>>95
for (a[4] = a[0]+1; a[4] < 10; a[4]++) { if (check(a, 4)) continue;

で良いと思う。
aa<bbのチェックが不要になる。
99デフォルトの名無しさん:2014/06/20(金) 09:41:40.85 ID:2EQ+l0AP
◎2chスレッド勢いランキングサイトリスト◎

★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi

※ 要タイトル検索
※ 2chブラウザ併用推奨
100デフォルトの名無しさん:2014/06/20(金) 12:42:12.58 ID:C6Xti4O4
>>89 ってもしかして最適化一切してないんじゃね?
Debugのままで実行してたりとか
101デフォルトの名無しさん:2014/06/20(金) 18:20:40.40 ID:QPzcx6bM
?.#########.########
......#####.....####
..##.######.########
#.##.###.....##...##
#....###.##......###
#.##.###.##.##?#####
####.....#.......###
##########..########

左上の?の位置から右下の?までの最短距離と再長距離を求めよ
102デフォルトの名無しさん:2014/06/20(金) 18:32:03.52 ID:QPzcx6bM
訂正

?.#########.########
......#####.....####
..##..#####.###.####
#.##.###.....##...##
#....###.##.......##
#.##.###.##.##?##.##
#........#.........#
##########..####...#

左上の?の位置から右下の?までの最短距離と再長距離を求めよ
103デフォルトの名無しさん:2014/06/20(金) 20:52:46.31 ID:mZs9ZBuX
>>91は途中式を書き下していないため、減点。
104デフォルトの名無しさん:2014/06/20(金) 21:28:13.37 ID:kSpxa/vA
最短 距離25

?1#########.########
.2345.#####.....####
..##6.#####.###.####
#.##7###78901##...##
#...8###6##.234...##
#.##9###5##.##?##.##
#...01234#.........#
##########..####...#

最大 距離61

?.#########.########
145678#####23456####
23##09#####1###7####
#.##1###7890.##812##
#5432###6##7890903##
#6##.###5##6##?##4##
#78901234#.54321056#
##########..####987#
105デフォルトの名無しさん:2014/06/20(金) 21:37:22.86 ID:kSpxa/vA
106デフォルトの名無しさん:2014/06/20(金) 21:52:18.47 ID:09C2glzp
>>98
なるほど、そうですね。

>>93http://ideone.com/kFMnzH に以下の 4変更
 ・23行目 〜 keisan();の aa > bb を無くした
 ・56行目 〜
    for (a[0] = 1; a[0] < 10; a[0]++) {
  → for (a[0] = 1; a[0] < 9; a[0]++) {
 ・60行目 〜
    for (a[4] = 1; a[4] < 10; a[4]++) { if (check(a, 4)) continue;
  → for (a[4] = a[0] + 1; a[4] < 10; a[4]++) { if (check(a, 4)) continue;
 ・64行目 〜 switch の判定を無くした
を加え、更にアルゴリズムによる速度差計測のためを考え gcc -O0 の
最適化なしで比較したら 410ms → 227ms (8割増) になりました。
http://ideone.com/bYzWM9
107デフォルトの名無しさん:2014/06/20(金) 22:10:06.39 ID:G5yuErw/
>>100
VCリリースです。しかし、CPUがATOMだ!!Orz
108デフォルトの名無しさん:2014/06/21(土) 01:19:30.31 ID:oxWL7iix
それで2時間かかるの?
うちだとlinuxで、g++コンパイラに最適化の-O3とC++11コンパイルするための
-std=c++11オプションを付けただけだけど、3.6秒で計算終わる。-O0でも12.0秒。
109デフォルトの名無しさん:2014/06/21(土) 02:13:08.89 ID:Qlvgm7Ik
え?アトムで??
いや、アトムBTだからさ、CORE2の7割しかシングル性能でないんですよ。
今の最新と比べるべくもない。環境はVSドノーマルなんだけどね。
110デフォルトの名無しさん:2014/06/21(土) 02:56:30.10 ID:oxWL7iix
ああ、ごめん。celeronM1.86GHzなので同じくらいだと思って
111デフォルトの名無しさん:2014/06/21(土) 03:52:49.10 ID:Qlvgm7Ik
どんなもんやろうね。
ブーストして2.4Ghzくらいまで上がるけどアーキテクチャがあれ何でね。
コンパイラの最適化もこっち向けじゃないのもあると思う。むー。
112デフォルトの名無しさん:2014/06/21(土) 05:42:11.03 ID:/fMJIWig
>>81 J
f =: 3 : 0
a =. ~.'* '(4 5)}"1(i.!10) A.'0123456789'
a =. a #~ *./"1 '0' ~: 0 6 {"1 a
a =. a #~ (-:(-.":@".))"1 a
~. /:~"1 ". ' '4}"1 a
)

f''
5049 6712
113デフォルトの名無しさん:2014/06/21(土) 08:44:10.71 ID:osxplvy7
>>81
https://ideone.com/J2NBtX

>>112
なるほどね〜。
114デフォルトの名無しさん:2014/06/21(土) 18:36:45.72 ID:/fMJIWig
お題:文字列Aを1回以上繰り返した文字列Bが与えられたとき
文字列Aを求める。ただしAの候補が複数ある場合は最短のものとする。

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> a
123412312341231234123123412312341231234123 -> 1234123
oxoxoxoxoxoxoxoxxoxoxoxoxoxoxoxoxx -> oxoxoxoxoxoxoxoxx
115デフォルトの名無しさん:2014/06/21(土) 18:53:17.85 ID:JBvb3h4t
116デフォルトの名無しさん:2014/06/21(土) 19:11:07.28 ID:JBvb3h4t
繰り返しがなかった時に元の文字列を返すように修正した
117デフォルトの名無しさん:2014/06/21(土) 20:00:18.20 ID:FX+q3pzw
D
http://dpaste.dzfl.pl/c6e20183386e
逆に、対象文字列を繰り返したものと全体とを比較してみる
118デフォルトの名無しさん:2014/06/21(土) 20:59:37.62 ID:5st0+XMl
119デフォルトの名無しさん:2014/06/21(土) 22:12:20.68 ID:a//TlJVm
120デフォルトの名無しさん:2014/06/21(土) 22:52:10.32 ID:FX+q3pzw
>>119
func("axaxa") // repeat = ax

strlen(a) == (int)(a - b)でないとaとbが重なる
http://ideone.com/OHLuSr
121デフォルトの名無しさん:2014/06/21(土) 22:58:10.07 ID:FX+q3pzw
いや、そもそも2回だけ連続してる場合しか考慮されてないな……
122デフォルトの名無しさん:2014/06/21(土) 23:07:07.47 ID:FX+q3pzw
連投してすまん

正しくはこうかな、ドヤ顔で間違った指摘して恥ずかしいです……
http://ideone.com/jWkZrz
123デフォルトの名無しさん:2014/06/21(土) 23:34:52.08 ID:1rwRXb7k
>>114 Python
>>119のまねをいたしました

def f114(s):
  for i in range(1,len(s)):
    if s[:len(s)-i] == s[i:]:
      break
  print "{} -> {}".format(s, s[:i])

q = """
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
123412312341231234123123412312341231234123
oxoxoxoxoxoxoxoxxoxoxoxoxoxoxoxoxx
""".split()
for s in q:
  f114(s)
124デフォルトの名無しさん:2014/06/21(土) 23:36:28.88 ID:a//TlJVm
>>119
>>114
文字列長の因数の長さ(例:24文字の場合、1,2,3,4,6,8,12)で比較する方法に変更。
ttps://ideone.com/f4DiSl
125デフォルトの名無しさん:2014/06/22(日) 02:28:12.07 ID:qas3Gn4R
>>114
http://ideone.com/jmDmeB
ほぼC。環境変わってちょっと頭がおバカになってしまったので問題を解くことを最優先した。
あってるかな?でもいろいろバグがあると思う。とりあえず、動いてるようにみえるだけと・・・。Orz
もしかしたらこの条件なら尻尾から検索した方が効率いいかもなー???と思った。
126デフォルトの名無しさん:2014/06/22(日) 04:15:33.61 ID:EYYBBLS5
>>114
なんの工夫もないHaskell http://ideone.com/kSsFHC
127デフォルトの名無しさん:2014/06/22(日) 08:50:48.27 ID:fDsJnYZI
>>114 Io
f := method(s,
a := s size
for(i, 1, a - 1,
if(a % i == 0 and (s slice(0, a - i)) == s slice(i),
return s slice(0, i)
)
)
s
)

Io> f("abab"repeated(100000))
==> ab
Io> f("1234123")
==> 1234123
Io> d:=("1234123"repeated(10000).."x");d==f(d)
==> true
128デフォルトの名無しさん:2014/06/22(日) 18:47:42.88 ID:t7qk0ITT
>>114 Prolog

'文字列Aを1回以上繰り返した文字列Bが与えられたとき文字列Aを求める。
ただしAの候補が複数ある場合は最短のものとする。'('',_) :- !.
'文字列Aを1回以上繰り返した文字列Bが与えられたとき文字列Aを求める。
ただしAの候補が複数ある場合は最短のものとする。'(_文字列B,_文字列A) :-
    先頭からの文字列パターン(_文字列B,_文字列A,_残り文字列),
    '文字列Aを1回以上繰り返した文字列Bが与えられたとき文字列Aを求める。
ただしAの候補が複数ある場合は最短のものとする。'(_残り文字列,_文字列A),!.


先頭からの文字列パターン(_文字列,_先頭からの文字列パターン,_残り文字列) :-
    sub_atom(_文字列,0,Len,_残り文字数,_先頭からの文字列パターン),
    \+(Len = 0),
    sub_atom(_文字列,_,_残り文字数,0,_残り文字列).
129デフォルトの名無しさん:2014/06/22(日) 19:45:04.68 ID:8dyb2xfW
Prologの宿題片付けます 第二編
http://peace.2ch.net/test/read.cgi/tech/1350893602/
130デフォルトの名無しさん:2014/06/22(日) 19:53:33.54 ID:r6hyP6ZK
>>129
ここはどんなバットで打ってもいいのです
131デフォルトの名無しさん:2014/06/23(月) 13:34:27.38 ID:BsRgtYHO
>>128 が解答ではなく出題に見えるとな
132デフォルトの名無しさん:2014/06/23(月) 19:19:11.14 ID:Utaqz1fC
お題:ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。

110, 119 -> 2
1234, 214 -> 2
567, 23 -> 0
133デフォルトの名無しさん:2014/06/23(月) 20:34:26.27 ID:+5UJW/yX
>>132
例2がよくわかりません。
134デフォルトの名無しさん:2014/06/23(月) 21:39:08.83 ID:/w+ap15x
135デフォルトの名無しさん:2014/06/23(月) 23:14:11.51 ID:LKXrXOru
while (a && b) でええやん
136デフォルトの名無しさん:2014/06/23(月) 23:33:47.36 ID:Yz5J3/fn
>>132 Python

def func(*args):
  ss = [reversed(str(d)) for d in args]
  n = sum(1 for p in zip(*ss) if len(set(p)) == 1)
  print "{} -> {}".format(str(args).strip("()"), n)

func(110, 119)
func(1234, 214)
func(567, 23)
137デフォルトの名無しさん:2014/06/24(火) 06:48:21.25 ID:3fEyMdRl
138デフォルトの名無しさん:2014/06/24(火) 07:50:21.11 ID:+d9rugo5
>>132 Prolog

'ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。'(_数_1,_数_2,_数字が一致している桁の個数) :-
    ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2),
    '数字が一致している桁の個数を求める。'(_数字文字列_1,_数字文字列_2,_数字が一致している桁の個数).

ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2) :-
    atom_number(_数文字列_1,_数_1),
    atom_number(_数文字列_2,_数_2).

'数字が一致している桁の個数を求める。'(_数字文字列_1,_数字文字列_2,_数字が一致している桁の個数) :-
    '個数を求める。'('数字が一致している桁の'(_数字文字列_1,_数字文字列_2),_数字が一致している桁の個数).

'数字が一致している桁の'(_数字文字列_1,_数字文字列_2) :-
    sub_atom(_数字文字列_1,_,1,_残り文字数,_数字),
    sub_atom(_数字文字列_2,_,1,_残り文字数,_数字).

'個数を求める。'(P,_個数) :-
    findall(1,P,L),
    length(L,_個数).
139138:2014/06/24(火) 08:10:25.14 ID:+d9rugo5
>>138
% 間違えた。

ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2) :-
    atom_number(_数字文字列_1,_数_1),
    atom_number(_数字文字列_2,_数_2).

% でした。第一引数の _数文字列_1 と _数文字列_2 は間違いです。
140デフォルトの名無しさん:2014/06/24(火) 09:25:25.06 ID:+d9rugo5
>>132 Prolog もう一箇所間違っていたから、書き直しさせてください。

'ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。'(_数_1,_数_2,_数字が一致している桁の個数) :-
    ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2),
    '数字が一致している桁の個数を求める。'(_数字文字列_1,_数字文字列_2,_数字が一致している桁の個数).

ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2) :-
    atom_number(_数字文字列_1,_数_1),
    atom_number(_数字文字列_2,_数_2).

'数字が一致している桁の個数を求める。'(_数字文字列_1,_数字文字列_2,_数字が一致している桁の個数) :-
    '個数を求める。'('数字が一致している桁の'(_数字文字列_1,_数字文字列_2),_数字が一致している桁の個数).

'数字が一致している桁の'(_数字文字列_1,_数字文字列_2) :-
    sub_atom(_数字文字列_1,_,1,_残り文字数,_数字),
    sub_atom(_数字文字列_2,_,1,_残り文字数,_数字),
    \+(_数字 = '-').

'個数を求める。'(P,_個数) :-
    findall(1,P,L),
    length(L,_個数).
141デフォルトの名無しさん:2014/06/24(火) 10:10:50.59 ID:AAHBTYvg
hit & brow 思い出すな
142デフォルトの名無しさん:2014/06/24(火) 12:04:35.52 ID:prMa5jfi
>>132 J
f =: [: +/ [: =/ ":@,:

110 f 119
2
1234 f 214
2
2142112322 f 1111111111
3
143デフォルトの名無しさん:2014/06/24(火) 18:23:54.57 ID:prMa5jfi
>>132 Io
f:=method(a,b,if(a==0 or b==0,if(a%10==b%10,1,0)+f(a/10|0,b/10|0)))

Io> f(110,119)
==> 2
Io> f(1234,214)
==> 2
Io> f(567,12)
==> 0
144デフォルトの名無しさん:2014/06/24(火) 18:28:07.01 ID:prMa5jfi
>>143
間違えました。訂正します。
f:=method(a,b,if(a==0 or b==0,0,if(a%10==b%10,1,0)+f(a/10|0,b/10|0)))
145デフォルトの名無しさん:2014/06/24(火) 18:40:34.83 ID:nNYqUb+/
>>132
ttp://ideone.com/TItId9
ほぼC。問題があいまいなので変な仕様で作ってみた。
言い分は満たしてるはず。えぇ、めんどくさかったんですよ。
ほとんど標準関数に投げました。
146デフォルトの名無しさん:2014/06/24(火) 18:44:13.79 ID:6pATSNEw
+?++++++?+++++++?+++
+++?++?+++++++?++?++
+++++++?++++?+++++++
?++?+++++++???++++?+
+?++++++?++++?++++++
++++?+++++?+++++?++?
+++?+++++?++?++++++?
+?+++?+++++?+++?++++
++++?+++++?+++++++++
?+?++++?+++++?++++?+

同じ道を通らずに全ての ? を通過する最短経路を求めよ
開始地点は+ 終了地点は?であればスタートとゴールは自由に決めて良い
147デフォルトの名無しさん:2014/06/24(火) 18:47:36.73 ID:6pATSNEw
20分以内に解ければSランク
勉強家で最速7分で解け他人あり
148デフォルトの名無しさん:2014/06/24(火) 19:05:53.33 ID:nNYqUb+/
>>145を書き直した。
ttp://ideone.com/KOPHTa
あってるかなー??
149デフォルトの名無しさん:2014/06/24(火) 19:09:22.59 ID:prMa5jfi
>>145
たとえば>>132の問題文はどう書けばあいまいじゃないの?
150デフォルトの名無しさん:2014/06/24(火) 19:12:37.57 ID:nNYqUb+/
>>146
空白が壁?
151デフォルトの名無しさん:2014/06/24(火) 19:17:32.84 ID:miiJpTHR
空白は壁
152デフォルトの名無しさん:2014/06/24(火) 19:21:36.38 ID:nNYqUb+/
>>149
たとえばねー。

お題:ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。
ただし、
・不同順ok
・2つの整数の桁数は少ない方に合わせる。合わせた時の多い方の末尾は削除される。
・同じ数字が続く場合の処理は、ほげほげ。(書いてないから知らんよ。)
等々。

110, 119 -> 2
1234, 214 -> 2
567, 23 -> 0

といった感じで、但し書きをすることで条件をちゃんと絞ってほしいんだよ。
こういうのは、自己参照ちゃんとできないとできないんだけどね。
153デフォルトの名無しさん:2014/06/24(火) 19:22:31.48 ID:nNYqUb+/
>>151
了解。
154デフォルトの名無しさん:2014/06/24(火) 19:24:55.48 ID:nNYqUb+/
もしくは、テストケースを凝ったものにして、こけやすいデータがほしい。
155デフォルトの名無しさん:2014/06/24(火) 19:28:28.25 ID:prMa5jfi
>>152
ひええ
凡人にはまねできません
156デフォルトの名無しさん:2014/06/24(火) 19:28:49.85 ID:+d9rugo5
>>149
整数だから、剰余の絶対値でないとうまく行かない筈だけれど、例だけ見ていると、そんなことが窺えないということかな。
157デフォルトの名無しさん:2014/06/24(火) 19:40:13.89 ID:nNYqUb+/
>>155
じゃー、マネしなくてもいいけど、バグってても出題者の自己責任ね。
158デフォルトの名無しさん:2014/06/24(火) 19:44:15.76 ID:+d9rugo5
>>157
3つの例で桁の定義問題は解決しているように思えるが。
159デフォルトの名無しさん:2014/06/24(火) 19:46:52.99 ID:nNYqUb+/
>>146
ttp://ideone.com/RFgqBx
マップこれであってるの?
一通のはずが、小島がいくつか見られるが。
そういう場合どうするの?
160デフォルトの名無しさん:2014/06/24(火) 19:50:30.27 ID:nNYqUb+/
>>158
俺バカだからわからなかったんだよ。
質問したけど無視されたし。
コード書き始めて割り切っていってやっと理解したような気がしたんだけどねぇ。
設計時さっぱりだった。
161デフォルトの名無しさん:2014/06/24(火) 20:10:18.97 ID:nNYqUb+/
こうやって馬鹿の相手はしてられんと逃げられる。Orz
162デフォルトの名無しさん:2014/06/24(火) 20:12:21.98 ID:ESPrt6pD
>>132
@Mathematica

numberOfAgreement[n1_,n2_]:=Module[{d1,d2,maxlen},

  {d1,d2}={n1,n2}//
    Map[IntegerDigits,#]&;

  maxlen={d1,d2}//
    Map[Length,#]&//
    Max;

  {d1,d2}//
    Map[PadLeft[#,maxlen]&,#]&//
    MapThread[List,#]&//
    Map[If[#[[1]]==#[[2]],1,0]&,#]&//
    Total
];
163デフォルトの名無しさん:2014/06/24(火) 20:38:49.47 ID:nNYqUb+/
>>158
俺、>>148で2パターン書いたけど、どっちが正解っていえるか?または間違いを指摘できるか?
164 ◆0qAv26otVI :2014/06/24(火) 22:21:28.24 ID:x7MmALRG
333,233 -> 3 がわかりません。
11,110 -> 2 とかなら、ああ左から比較するんだなとか。
165デフォルトの名無しさん:2014/06/24(火) 22:25:42.63 ID:nNYqUb+/
>>164
でしょ。情報が圧倒的に足りない。
こういう仕様のいざこざはむっかしから絶えないんだよね。
166デフォルトの名無しさん:2014/06/24(火) 22:34:58.79 ID:6LnPDmO+
「桁」って言ってるから、必要十分だと思う。
それが数学というより一般的な「桁」という用語。
何「番目」とかなら、左からとか右からという話になる。
何も言わずに回答している人たちは当然桁という言葉を当然のように踏まえて受け取っている。
167デフォルトの名無しさん:2014/06/24(火) 22:37:13.63 ID:nNYqUb+/
>>166
じゃー、例2の解法を言葉で説明してほしいなぁ。できたら全力で誤る。
168デフォルトの名無しさん:2014/06/24(火) 22:39:59.03 ID:6LnPDmO+
1桁目と3桁目が一致しているから2
169デフォルトの名無しさん:2014/06/24(火) 22:43:56.45 ID:nNYqUb+/
1桁目は、1と2で、3桁目は3と1じゃないか?それとも二個目の数字の前に一桁あるのか?
170デフォルトの名無しさん:2014/06/24(火) 22:47:28.09 ID:UpeRHjTe
>>159
空白を入れてるのはなに?子島とは?
171デフォルトの名無しさん:2014/06/24(火) 22:49:53.79 ID:nNYqUb+/
>>170
空白は壁って言ってたから、末尾はデータ調整のために空白入れました。
それ以外はこのスレからのコピペです。
172デフォルトの名無しさん:2014/06/24(火) 22:50:41.71 ID:6LnPDmO+
>>169
国語力に難があるようだね
173デフォルトの名無しさん:2014/06/24(火) 22:56:02.69 ID:nNYqUb+/
>>172
俺には君の認識能力が特殊に見えるよ。
174 ◆0qAv26otVI :2014/06/24(火) 23:02:03.29 ID:x7MmALRG
1234,214 -> 2
169>>1桁目は、1と2で、3桁目は3と4じゃないか?それとも二個目の数字の前に一桁あるのか?
合ってるか?
175デフォルトの名無しさん:2014/06/24(火) 23:04:53.29 ID:6LnPDmO+
>>174
大間違い
176デフォルトの名無しさん:2014/06/24(火) 23:05:33.48 ID:+d9rugo5
>>173 多分 >>132 のコピーをし間違えているのだと思うけれど、

> お題:ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。
> 例
> 110, 119 -> 2
> 1234, 214 -> 2
> 567, 23 -> 0

例の2

1234
214
^ ^
| |
| 1の 桁
|
100の桁

この二桁だけが同じ数字だから -> 2
177デフォルトの名無しさん:2014/06/24(火) 23:09:42.24 ID:nNYqUb+/
1234
214
ちがってるか?
178176:2014/06/24(火) 23:11:22.97 ID:+d9rugo5
>>176
スペースを入れ損なった。失敗。すみません、無視してください。
179デフォルトの名無しさん:2014/06/24(火) 23:12:06.14 ID:WID+irzQ
自分も>>132わかりにくいと思った
こういう場合もっと例が何パターンかないとね
180デフォルトの名無しさん:2014/06/24(火) 23:13:47.21 ID:nNYqUb+/
>>176
N番目まで厳密に規定してなくて並びが同じものを探す話?
181 ◆0qAv26otVI :2014/06/24(火) 23:14:13.24 ID:x7MmALRG
1234.
 214.
1桁目を左から数えないという命題が俺には見つからん。
182デフォルトの名無しさん:2014/06/24(火) 23:16:41.04 ID:nNYqUb+/
あ!やーっと理解した。
これ、分割した数字を右から左に精査するんか。
183デフォルトの名無しさん:2014/06/24(火) 23:17:24.35 ID:+d9rugo5
>>177
例2が意味するところは、
1) 1の桁と100の桁が4と2で揃っているから-->2
2) 上位桁から揃えるルールではない。それだと-->0 となるはず。
3) 桁の小さい方の整数を自由に移動できるルールだとしたら答えは 0または2になるが、
 -->2と答えているから、自由に移動できるルールではない。
184デフォルトの名無しさん:2014/06/24(火) 23:20:10.30 ID:hFZ0LSQg
つ位
185デフォルトの名無しさん:2014/06/24(火) 23:23:51.66 ID:9vAhTnrq
1桁目=一の位
2桁目=十の位
3桁目=百の位
186デフォルトの名無しさん:2014/06/24(火) 23:26:16.35 ID:nNYqUb+/
PG脳だから、1234分割したら1がIndex=0だわ。
これはすまんかった。算数だったな。根本的に失念していた。
俺のミスだわ。本当にごめんなさい。

しばらく反省するために書くのやめるか。
なんてこった。こんな基本的なこと忘れてるなんて。あいたたたたた。

どう誤ればいいのかよくわからんけど、ほんとにすまんかった。
187デフォルトの名無しさん:2014/06/24(火) 23:28:49.66 ID:+d9rugo5
>>185
そうですね。位というのだった。
188デフォルトの名無しさん:2014/06/24(火) 23:29:46.27 ID:nNYqUb+/
ってわけで、コードはめちゃくちゃ間違ってマース。
なぜ動いてるのかもわかりませーん。たまたま答えだけ合わせました。
ってことになるな。アー怖い。
189デフォルトの名無しさん:2014/06/24(火) 23:30:51.58 ID:+d9rugo5
それはともかく、

-1112,110 などがほとんど解答は上手く行かないのではないか。
190デフォルトの名無しさん:2014/06/24(火) 23:31:51.46 ID:WID+irzQ
誤る→謝る
191189:2014/06/24(火) 23:32:35.09 ID:+d9rugo5
「ほとんどの解答は」ですね。
192デフォルトの名無しさん:2014/06/24(火) 23:33:27.52 ID:TXJiobF4
>>179
そうかー?むしろ例は必要十分じゃね
>>132は問題文にちょっと不備があるけど、例で補えてると思うけどな

「数字が一致している桁の個数を求める」じゃなくて
「同じ位同士の数字を比較し、一致している個数を求める」
とかだったら例がなくても解けそう。
193デフォルトの名無しさん:2014/06/24(火) 23:35:30.49 ID:nNYqUb+/
>>189
俺のuint64_tなので、裏返って何億とかの数字になっちゃうー。
194デフォルトの名無しさん:2014/06/24(火) 23:36:32.98 ID:6LnPDmO+
>>186
今回の件で、どちらかというと認識が特殊な状態に陥ってたのは君の方だったね。
(相手が特殊と考えるより自分が先に特殊ではないのかと疑う)謙虚な態度でいた方が、一旦陥った罠から脱出はしやすいと思う。

IQテストとかだと、君のようにこういう「桁」という言葉の常識に囚われない見方も、大切ではある。
195デフォルトの名無しさん:2014/06/24(火) 23:42:11.14 ID:X3HExdh5
23:45に投稿するので構えてて
一番早く正解できるのは誰かな
196デフォルトの名無しさん:2014/06/24(火) 23:46:10.56 ID:nNYqUb+/
>>194
うん、ごめんね。
プログラムやってると、常識がうっとおしくなって忘却しちゃったんだよ。
それでうまくいってたしなぁ。うーん。こんな罠が・・・。Orz
気を付けてたはずなのに。うーむ。

いい経験になった。あいたたたたた・・・。
197デフォルトの名無しさん:2014/06/24(火) 23:49:11.40 ID:X3HExdh5
アルファベットの小文字aからzで成り立つS(0≦S≦100)が標準入力から与えられる。
例に沿って連続する文字をカウントするプログラムを作成せよ。

出力の最後に改行を挿入すること。
標準入力から以下の形式で与えられる。
S

例)
In:
aaaaaaaaaabbbbbbbbbbbbcccccccddddddddddeeeeeeefffffffffghiiiiiiiii

Out:
a10b12c7d10e7f9ghi9

In:

Out:
0
198デフォルトの名無しさん:2014/06/24(火) 23:49:41.62 ID:+d9rugo5
さらにいうと、
>>132は数字の比較を求めていて、

-123,-3423 の場合、剰余数が -2 と -2、-3 と -3 で --> 2 となるのでも間違ってはいないが、

何か仕様と遠い気がする。 -2 と 数字の'2'は同じものではない。
199デフォルトの名無しさん:2014/06/24(火) 23:50:24.19 ID:X3HExdh5
In:
abcddd

Out:
abcd3
200デフォルトの名無しさん:2014/06/24(火) 23:51:06.51 ID:X3HExdh5
似た問題がAtCoderでも出たから余裕かな
201デフォルトの名無しさん:2014/06/25(水) 00:11:17.61 ID:H0BLkDsi
>>197
なんか不格好になっちゃったw
C
http://ideone.com/jtFVPF
202デフォルトの名無しさん:2014/06/25(水) 00:20:29.98 ID:B1Ok+FAF
>>197
http://ideone.com/B0eki7
ほぼC。2番目か。残念。あってるかな?
結構ヤケになって書いたので間違ってるかも。
さて、しばらくミュートします。みなさま、また逢う日まで!
203デフォルトの名無しさん:2014/06/25(水) 01:05:21.52 ID:R/pd8eJN
第2問:2つの整数が与えられたとき、桁数が同じ場合を求める。 指数関数は使わないこと。
例:
110, 119 -> T
-110, -119 -> T
-110, 119 -> F
1234, 214 -> F
567, 23 -> F
567, -23 -> F
204デフォルトの名無しさん:2014/06/25(水) 01:52:18.87 ID:WPdQrCl7
文字列としての長さと富豪の有無を確認するだけ
205デフォルトの名無しさん:2014/06/25(水) 04:22:41.38 ID:/nsw1r0I
206デフォルトの名無しさん:2014/06/25(水) 04:48:41.24 ID:/nsw1r0I
>>197
http://peace.2ch.net/test/read.cgi/tech/1313183984/758
ideone の runtime error ってなんだろう?
207デフォルトの名無しさん:2014/06/25(水) 07:21:14.49 ID:f3dQ4AsB
>>197 Prolog

'アルファベットの小文字aからzで成り立つS(0≦S≦100)が標準入力から与えられる。連続する文字をカウントする。出力の最後に改行を挿入すること。' :-
    write('In: '),read(_文字列),
    '連続する文字をカウントする'(_文字列,'',_出力文字列),
    writef('Out:\n%t\n',[_出力文字列]).

'連続する文字をカウントする'('','') :- !.
'連続する文字をカウントする'(_文字列,_出力文字列) :-
    文字列の先頭から同一文字を切り取る(_文字列,_連続文字,_連続文字数,_残り文字列),
    '連続する文字をカウントする'(_残り文字列,_残り出力文字列),
    atomic_list_concat([_連続文字,_連続文字数,_残り出力文字列],_出力文字列).

文字列の先頭から同一文字を切り取る(_文字列,_連続文字,_連続文字数,_残り文字列) :-
    sub_atom(_文字列,0,1,_,_連続文字),
    連続文字数と残り文字列を得る(_文字列,_連続文字,_連続文字数,_残り文字列).

連続文字数と残り文字列を得る(_文字列,_連続文字,_連続文字数,_残り文字列) :-
    sub_atom(_文字列,_連続文字数,1,_,_文字),
    \+(_連続文字 = _文字),
    sub_atom(_文字列,_連続文字数,_,0,_残り文字列),!.
連続文字数と残り文字列を得る(_文字列,_連続文字,_連続文字数,'') :-
    atom_length(_文字列,_連続文字数).
208デフォルトの名無しさん:2014/06/25(水) 07:33:17.91 ID:5ZruJZzN
209208:2014/06/25(水) 07:51:38.73 ID:5ZruJZzN
210デフォルトの名無しさん:2014/06/25(水) 08:00:42.64 ID:f3dQ4AsB
>>203 Prolog

'2つの整数が与えられたとき、桁数が同じ場合を求める。 指数関数は使わないこと。'(_整数_1,_整数_2) :-
    number_chars(_整数_1,_数字ならび_1),
    number_chars(_整数_2,_数字ならび_2),
    length(_数字ならび_1,_桁数),
    length(_数字ならび_2,_桁数).
211デフォルトの名無しさん:2014/06/25(水) 08:24:39.87 ID:8w+cRTmX
>>197 Io
a := 0
c := 0
File standardInput foreach(v,
if(v != a,
write(if(c > 1, c, ""), v asCharacter)
c = 1
,
c = c + 1
)
a = v
)
c println
212132:2014/06/25(水) 09:30:08.51 ID:8w+cRTmX
負の数については考えていなかったので整数ではなく自然数に変えさせてください。
それから>>203は別の人の出題です。
213デフォルトの名無しさん:2014/06/25(水) 09:35:34.23 ID:mgUMoqXV
214デフォルトの名無しさん:2014/06/25(水) 12:27:10.04 ID:8w+cRTmX
>>197 J
f=:[:;('1'-.~":)(L:0)@(~. (;"_1) (#/.)~)
echo f stdin''


f'aassd'
a2s2d
215207:2014/06/25(水) 16:49:42.18 ID:f3dQ4AsB
>>207 これ間違っていた。最初の述語の

    '連続する文字をカウントする'(_文字列,'',_出力文字列),

% これ3引数で呼び出しているが、これは第二引数を削除し忘れ。

'アルファベットの小文字aからzで成り立つS(0≦S≦100)が標準入力から与えられる。連続する文字をカウントする。出力の最後に改行を挿入すること。' :-
    write('In: '),read(_文字列),
    '連続する文字をカウントする'(_文字列,_出力文字列),
    writef('Out:\n%t\n',[_出力文字列]).

% が正しい。
216デフォルトの名無しさん:2014/06/25(水) 19:09:52.11 ID:AAkwOzRQ
平面上に二つの長方形PとQが与えられた時に、
それらの共通部分の長方形を求めたいのですが、お手軽な方法はありますか?
P、Qは、以下のように4つの頂点座標が与えられているとして。
座標は整数値とします。
P12(x1p,y2p)    P22(x2p,y2p)
P11(x1p,y1p)    P21(x2p,y1p)

Q12(x1q,y2q)    Q22(x2q,y2q)
Q11(x1q,y1q)    Q21(x2q,y1q)
217デフォルトの名無しさん:2014/06/25(水) 19:15:34.66 ID:G8i3M3G9
Blogopolisから学ぶ計算幾何
第9回 凸多角形の交差計算(前編)
http://gihyo.jp/dev/serial/01/geometry/0009


凸多角形の共通部分
http://www.prefield.com/algorithm/geometry/convex_intersect.html
218デフォルトの名無しさん:2014/06/25(水) 20:11:25.97 ID:AAkwOzRQ
情報ありがとうございます。でもちょっと難しそうですね。
長方形の場合に限定して、誰かプログラム作ってください。
219片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/06/25(水) 20:28:19.98 ID:n7E3MpSB
bool is_rect_empty(const rect* rc)
{
return rc->x0 >= rc->x1 || rc->y0 >= rc->y1;
}

bool intersect_rect(rect *dst,const rect*src1,const rect*src2)
{
if (is_rect_empty(src1) || is_rect_empty(src2) ||
src1->x0 >= src2->x1 || src2->x0 >= src1->x1 ||
src1->y0 >= src2->y1 || src2->y0 >= src1->y1)
return false;

dst->x0 = max(src1->x0,src2->x0);
dst->x1 = min(src1->x1,src2->x1);
dst->y0 = max(src1->y0,src2->y0);
dst->y1 = min(src1->y1,src2->y1);
return true;
}
220デフォルトの名無しさん:2014/06/25(水) 20:36:42.95 ID:QX6G9n4a
>>216
2つの線分(x1p, x2p)、(x1q, x2q)が重なる場合は、
(x1p - x2q) * (x2p - x1) < 0
となる。
例えば下図のとおり。
x1p----------x2p
    x1q---------------x2q

yについても同様に、重なり有無を判定出来る。
x, yの両方に重なりがあれば、重なる長方形エリアが有る、という事。

重なるエリアの座標の求め方。
まずxについては
(x1p, x2p, x1q, x2q)をソートした結果が(x1, x2, x3, x4)とすると
(x2, x3)が重なるエリアのx座標。

yも同様に求める。
221デフォルトの名無しさん:2014/06/25(水) 20:58:06.95 ID:fIlVvDUl
>>197
@Mathematica

countSerialCharacter[s_]:=s//
  Characters//
  Tally//
  Flatten//
  Map[If[#==1,"",#]&,#]&//
  Map[ToString,#]&//
  StringJoin//
  #<>"\n"&;
222デフォルトの名無しさん:2014/06/25(水) 21:13:44.19 ID:8w+cRTmX
>>217
関係ないけど「凸多角形」をみると凸という字は凸多角形じゃないと思ってしまう
223デフォルトの名無しさん:2014/06/25(水) 21:30:53.24 ID:kfu/Y8iA
>>197 Python

import re, sys
s = "aaaaaaaaaabbbbbbbbbbbbcccccccddddddddddeeeeeeefffffffffghiiiiiiiii"
if len(sys.argv) >= 2:
  s = sys.argv[1]
print "".join(["{}{}".format(m.group(1),len(m.group(0))) for m in re.finditer(r"([a-z])\1*", s)])
224デフォルトの名無しさん:2014/06/26(木) 06:49:20.73 ID:3bBuyKJI
お題:自然数nが偶数なら2で割り、奇数なら1を足して3を掛ける操作を値が3になるまで繰り返す。10000以下でこの操作の繰り返し回数が最大となる自然数nを求める。
225デフォルトの名無しさん:2014/06/26(木) 09:15:51.05 ID:anyqRfvP
>>224 Common Lisp
(format t "~{n=~D, ~D steps.~}~%"
(loop for n from 1 upto 10000
collect (loop for count upfrom 0
for i = n then (if (evenp i) (/ i 2) (* (+ i 1) 3))
until (= i 3)
finally (return (list n count)))
into seq
finally (return (first (sort seq #'> :key #'second)))))

出力:
n=7421, 239 steps.
226デフォルトの名無しさん:2014/06/26(木) 09:47:24.38 ID:jelhdoL6
>>219
有難うございました。
たいへん感謝しております。さっそく利用させて頂きます。
>>220
解説ありがとうございました。理解できました。
皆さん頭いいですね。
227デフォルトの名無しさん:2014/06/26(木) 11:06:46.24 ID:j1I0ttpi
>>226
x0<=x1かつy0<=y1を前提にしていますのでご注意を。
228デフォルトの名無しさん:2014/06/26(木) 11:47:23.22 ID:SC8QqvR3
≧とか≦ってかけよ機種依存文字じゃないんだぞ
229デフォルトの名無しさん:2014/06/26(木) 12:26:30.27 ID:a5DVBYeG
実際のコーディングには使えないじゃんか
230デフォルトの名無しさん:2014/06/26(木) 12:43:55.13 ID:b6/TNK68
231デフォルトの名無しさん:2014/06/26(木) 18:05:42.04 ID:oxBW6fYk
>>220
これはひどい
232デフォルトの名無しさん:2014/06/26(木) 18:25:17.39 ID:3bBuyKJI
>>231
ちゃんと理由も書かずにそんなことを言う方がひどい
233デフォルトの名無しさん:2014/06/26(木) 21:02:03.97 ID:UtgvthMy
>>224
@Mathematica

g[nmax_]:=Module[{f},

  f[n_]:=NestWhileList[
    Which[
      EvenQ[#],#/2,
      True,3*(#+1)]&,
    n,
    #!=3&];

  nmax//
    Range[1,#]&//
    Map[{#,Length[f[#]]-1}&,#]&//
    Sort[#,#1[[2]] > #2[[2]]&]&//
    First//
    "n="<>ToString[#[[1]]]<>", "<>ToString[#[[2]]]<>" steps"&
];
234デフォルトの名無しさん:2014/06/27(金) 01:15:21.35 ID:z83xp8mB
235デフォルトの名無しさん:2014/06/27(金) 06:05:09.55 ID:6gnfhLnK
>>234
とってもわかりやすく美しいコーディングだな
236デフォルトの名無しさん:2014/06/27(金) 06:15:11.42 ID:/tBLbKnn
オブジェクト指向は愚かな考え。
http://peace.2ch.net/test/read.cgi/tech/1393660194/
237デフォルトの名無しさん:2014/06/27(金) 08:13:07.91 ID:6gnfhLnK
>>224
Scheme
ステップ数を求める関数を再帰にしてみた。
Schemeなので末尾再帰の最適化が効いているとはいえシンプルなループより20%ほど遅い
http://codepad.org/Kv6PMM5u
238デフォルトの名無しさん:2014/06/27(金) 08:13:34.08 ID:6gnfhLnK
>>236
そんな君は硬直頭乙
239デフォルトの名無しさん:2014/06/27(金) 09:47:14.96 ID:cYIjyZKJ
ここでは解が一個だから結果してよいのだが、その保証はどのように得るのかな。
240デフォルトの名無しさん:2014/06/27(金) 10:25:12.24 ID:+d6mrCHp
>>237
すごくSchemeっぽくない
241224:2014/06/27(金) 12:00:59.02 ID:WBIkvaOn
>>239
>>224
複数解の可能性はありますね。
後追いですが、複数解の場合はnの最大値としてください。
242デフォルトの名無しさん:2014/06/27(金) 13:16:22.62 ID:1+Sp/Gzh
>>240
まあ、超初心者だし
Schemeぽくかくとどうなるの?
243デフォルトの名無しさん:2014/06/27(金) 13:18:34.88 ID:T6qhwk5c
S(1≦S≦10)
L(100≦L≦100)
標準入力から以下の形式で与えられる
S L

例を参考にoとxを配置せよ


3 2
oooxxx
oooxxx
oooxxx
xxxooo
xxxooo
xxxooo

2 3
ooxxoo
xxooxx
ooxxoo

1 1
o

2 1
oo
244デフォルトの名無しさん:2014/06/27(金) 13:19:07.70 ID:T6qhwk5c
その言語で一番短いコードを書いた奴が勝ち
245デフォルトの名無しさん:2014/06/27(金) 13:40:40.34 ID:1+Sp/Gzh
俺は反対
ていうか、俺は勉強中だし短く書かない
246デフォルトの名無しさん:2014/06/27(金) 14:03:08.81 ID:TynlDK3k
考えてみたけど、「3 2」と「2 3」から発展させることが俺には無理だwww
247デフォルトの名無しさん:2014/06/27(金) 14:13:23.67 ID:IIJLJhWZ
発展どころか規則がさっぱりわからない
「出力例から仕様を推測せよ」というお題は苦手
248デフォルトの名無しさん:2014/06/27(金) 14:18:03.91 ID:6gnfhLnK
規則は解った、コーディングしてくる
249デフォルトの名無しさん:2014/06/27(金) 14:29:40.92 ID:jrf75mY1
そもそもLが(100≦L≦100)を満たしてないよね?
250デフォルトの名無しさん:2014/06/27(金) 14:32:19.40 ID:6gnfhLnK
func(S L)で
規則1 一つのブロックの長さはS
規則2 一列の長さはS*L
規則3 げ・・わからなくなった
251デフォルトの名無しさん:2014/06/27(金) 14:34:06.26 ID:6gnfhLnK
>>249
そこは(1≦L≦100)の間違いだろ(と見なした)
252デフォルトの名無しさん:2014/06/27(金) 14:34:31.27 ID:6gnfhLnK
寝る
253デフォルトの名無しさん:2014/06/27(金) 14:36:22.75 ID:TynlDK3k
>>250
単純に考えても上手くいかないよねぇ
AとBとかじゃなくて、SとLにしたことに何か意味があるのかとか考えてるけど思いつかないwww
254デフォルトの名無しさん:2014/06/27(金) 14:38:49.94 ID:SKslXSwB
small/largeじゃね?
255デフォルトの名無しさん:2014/06/27(金) 14:44:59.82 ID:+d6mrCHp
>>242
ループカウンタなどを累積引数として関数の引数に追加すれば、破壊的代入を使わずに末尾再帰できる
そもそもループを破壊的代入を使って表現する必要があるのは
末尾再帰最適化が仕様にないCommonLispやEmacsLispで
それらもループマクロとして表現しているので破壊的代入は隠蔽されている
http://ideone.com/aSVmkC
256デフォルトの名無しさん:2014/06/27(金) 15:02:39.50 ID:6gnfhLnK
>>255
サンキュ
勉強する
257デフォルトの名無しさん:2014/06/27(金) 15:15:30.76 ID:gfNg5K0F
>>243はL(1≦L≦100)のミス
某コードゴルフの英文を和訳しただけだからできない奴がレベルが低いんだお
258デフォルトの名無しさん:2014/06/27(金) 15:21:08.06 ID:mP/api6Q
ここってクイズスレ?

出題に対していくつも間違っていない回答例が出るけど正解は出題者の回答だけって。
259デフォルトの名無しさん:2014/06/27(金) 15:24:38.32 ID:gfNg5K0F
言い訳はするな見苦しいぞ
260デフォルトの名無しさん:2014/06/27(金) 15:26:52.92 ID:gfNg5K0F
2番めの例だけ訂正


3 2
oooxxx
oooxxx
oooxxx
xxxooo
xxxooo
xxxooo

2 3
ooxxoo
ooxxoo
xxooxx
xxooxx
ooxxoo
ooxxoo

1 1
o

2 1
oo
261デフォルトの名無しさん:2014/06/27(金) 15:27:29.92 ID:TynlDK3k
>>260
それなら解けるわアホwwww
262デフォルトの名無しさん:2014/06/27(金) 15:34:33.43 ID:mP/api6Q
ID:gfNg5K0F が見苦しいわwww
263デフォルトの名無しさん:2014/06/27(金) 15:36:07.74 ID:+d6mrCHp
>>260
> 2 1
> oo
解く気ないけどこれあってる?
264デフォルトの名無しさん:2014/06/27(金) 15:43:33.76 ID:gfNg5K0F
あってる
265デフォルトの名無しさん:2014/06/27(金) 16:01:18.23 ID:6gnfhLnK
>>260
ゲゲゲ!!!!
出題みすだらけ!
ちゃんと見直してほしい
266デフォルトの名無しさん:2014/06/27(金) 16:47:02.93 ID:6gnfhLnK
>>263
それ、
○○
○○
じゃないかね
267デフォルトの名無しさん:2014/06/27(金) 16:48:22.91 ID:hZLtHGAA
268デフォルトの名無しさん:2014/06/27(金) 17:16:12.97 ID:6gnfhLnK
>>260
>>243
Scheme

(make-matrix 3 2)
(0 0 0 1 1 1)
(0 0 0 1 1 1)
(0 0 0 1 1 1)
(1 1 1 0 0 0)
(1 1 1 0 0 0)
(1 1 1 0 0 0)

(make-matrix 2 3)
(0 0 1 1 0 0)
(0 0 1 1 0 0)
(1 1 0 0 1 1)
(1 1 0 0 1 1)
(0 0 1 1 0 0)
(0 0 1 1 0 0)

(make-matrix 1 1)
(0)

(make-matrix 2 1)
(0 0)
(0 0)

相変わらずSchemeぽくないだろうけど
ttp://codepad.org/R7MYVzCy
269デフォルトの名無しさん:2014/06/27(金) 17:18:58.08 ID:6gnfhLnK
>>268
S=2 L=1がちがうんだあ
うーむ、ねる
270デフォルトの名無しさん:2014/06/27(金) 17:23:14.06 ID:7YjTFkej
271デフォルトの名無しさん:2014/06/27(金) 17:55:21.82 ID:WBIkvaOn
>>260 J
2 1 のケースがわからないので特別扱い。
f =: 4 : 0
c =. (y = 1) { x , 1
a =. 'o' $~ c , x
b =. 'x' $~ c , x
,./,./>(b ; a) {~ =/~ 0 1 $~ y
)

2 f 1
oo
1 f 1
o
3 f 1
ooo
1 f 3
oxo
xox
oxo
2 f 2
ooxx
ooxx
xxoo
xxoo
272デフォルトの名無しさん:2014/06/27(金) 18:42:03.89 ID:tVuv5STr
273デフォルトの名無しさん:2014/06/27(金) 19:00:49.15 ID:/cFHuc2v
すまない気づかなかった例を訂正

2 1

oo
oo
274デフォルトの名無しさん:2014/06/27(金) 19:01:54.76 ID:2pAWE6po
275デフォルトの名無しさん:2014/06/27(金) 19:24:07.88 ID:1+Sp/Gzh
>>273
やっぱりそうかあ
じゃ>>268でよしと
276デフォルトの名無しさん:2014/06/27(金) 19:33:03.23 ID:WBIkvaOn
>>260 >>273 J
f =: 4 : 0
a =. 'o' $~ x , x
b =. 'x' $~ x , x
,./,./>(b ; a) {~ =/~ 0 1 $~ y
)

2 f 1
oo
oo
3 f 1
ooo
ooo
ooo
277デフォルトの名無しさん:2014/06/27(金) 21:23:50.23 ID:0NE+vhQD
>>243 >>260 >>273 Python

def f(S,L):print"\n".join(["".join(["ox"[(i/S+j/S)&1]for j in range(S*L)])for i in range(S*L)]+[""])
f(3,2),f(2,3),f(1,1),f(2,1)
278デフォルトの名無しさん:2014/06/28(土) 01:53:06.97 ID:/hGDVenf
「綺麗さなんて興味ねえよ、この世で一番短いコードを書いた奴が海賊王だ」
279デフォルトの名無しさん:2014/06/28(土) 06:02:00.78 ID:ceaE8o9R
>>278
もう、ド底辺ドカタの発想やめてくんない?
280デフォルトの名無しさん:2014/06/28(土) 06:38:06.40 ID:8fzSy6NM
土方じゃなくてゴルファーだよ
281デフォルトの名無しさん:2014/06/28(土) 08:12:09.23 ID:hS2Ud4cQ
>>273
C言語で。
#include <stdio.h>
int main()
{
int s, l;
scanf("%d %d", &s, &l);
for (int i = s * l; i--;)
{
for (int j = s * l; j--;)
putchar((i / s + j / s) % 2 ? 'x' : 'o');
putchar('¥n');
}
return 0;
}
282デフォルトの名無しさん:2014/06/28(土) 09:05:02.55 ID:yP1KNiEz
>>243 >>260 >>273
@Mathematica

makeMatrix[s_,l_]:=Module[{makeBaseMatrix,elementExpander},

  makeBaseMatrix[lx_]:=Table[If[EvenQ[i+j-1],1,0],{i,1,lx},{j,1,lx}];

  elementExpander[sx_,bx_]:=Table[bx,{i,1,sx},{j,1,sx}];

  makeBaseMatrix[l]//
    Map[Map[elementExpander[s,#]&,#]&,#]&//
    Map[MapThread[List,#]&,#]&//
    Map[Map[Flatten,#]&,#]&//
    Flatten[#,1]&
];
283デフォルトの名無しさん:2014/06/28(土) 09:34:41.79 ID:nE8Pthav
>>243 Haskell
check [n,m] = f [f "ox", f "xo"] where f = (replicate n =<<) . take m . cycle
main = putStrLn . unlines . check . map read . words =<< getLine
284デフォルトの名無しさん:2014/06/29(日) 10:00:12.32 ID:6bSP0Nqn
double val(double a){
return (long int)a *10;
}
-------------------
void swap(int *p, *q){
int tmp;
temp = *p;
*p = *q;
*q = temp;
return
}
下の、ポインタのやつは分かるんですが、上のやつはポインタ使ってないのに
値を返すのは、どうしてですか?
285デフォルトの名無しさん:2014/06/29(日) 10:31:01.83 ID:zjmbmtCs
>>284
大きな構造体を返す関数を書いてコンパイルしてデバッグしてみなよ
面白いコード吐くから
286ああああああああああ:2014/06/29(日) 11:09:24.69 ID:NFKC3os6
1)(上の)は、ポインタ使をわないで値を返すために return 戻り値;と書く。
戻り値の変数型 関数名(){}
287デフォルトの名無しさん:2014/06/29(日) 12:33:06.51 ID:SODsEjjY
1. doubleなのに(long int)
2. tmpなのかtempなのか
3.returnのあとに;をつけましょう
4.こんなもんにはつられんぞ
288デフォルトの名無しさん:2014/06/29(日) 19:13:53.32 ID:f0WIPed4
https://codeiq.jp/magazine/2014/06/11860/

これの問題わかる?
289デフォルトの名無しさん:2014/06/29(日) 19:19:33.40 ID:lFZ15VQI
そのページに答え書いてあるけど
290デフォルトの名無しさん:2014/06/29(日) 19:27:46.92 ID:f0WIPed4
いや、別にそういう意味で聞いたんじゃないんだけど…
291デフォルトの名無しさん:2014/06/29(日) 20:24:14.45 ID:XIYpqSXL
>>288
こういうこと?
http://codepad.org/BCSvsDU0
292デフォルトの名無しさん:2014/06/29(日) 20:33:04.86 ID:XIYpqSXL
>>291 訂正
+ #define N (8 * sizeof(int))
- #define N sizeof(int)
293デフォルトの名無しさん:2014/06/29(日) 20:41:08.47 ID:s1CDyW9K
>>291
確かにオーバーフローしたらうまくいかないけど、
このあたりは問題文の記述が不足している感じがする。
C言語としても未定義だし

>>【前提】
>>扱う数値は全てNビットの整数

だけでは符合無しのNビットの数とも読めるし
294デフォルトの名無しさん:2014/06/29(日) 23:47:01.23 ID:zB0X93p/
オーバーフロー対策
int a = ((y - x) & (~x ^ y) | (~x & y)) >> (N - 1); // (x > y) ? -1 : 0
int z = y ^ ((x ^ y) & a);
295デフォルトの名無しさん:2014/06/30(月) 00:00:41.64 ID:t2QY93Gt
1から481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447580までの総和を求めよ
見やすさなんてしらねえよ、一番短いコードを書いた奴が海賊王だ
296デフォルトの名無しさん:2014/06/30(月) 00:26:08.54 ID:+bYHVEuQ
>>295 Perl

use 5.18.2;
use bigint;
my $last = 481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447580;
say (++$last) * $last / 2;

結果:481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447581
297デフォルトの名無しさん:2014/06/30(月) 00:35:17.59 ID:CGk8SAom
say ($last + 1) * $last / 2;
298デフォルトの名無しさん:2014/06/30(月) 00:36:32.30 ID:+bYHVEuQ
>>296 失敗、sayのバカ!

use 5.18.2;
use bigint;

my $last = 481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447580;

say ((++$last) * $last / 2);

結果:
115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579815724530711698507413079937558286807046061562081164567035924479985814641465025169002222375780
299デフォルトの名無しさん:2014/06/30(月) 00:39:33.15 ID:+bYHVEuQ
>>297>>298
つうか何もカッコ付けない方が良かったぽい
say ++$last * $last / 2;
300デフォルトの名無しさん:2014/06/30(月) 00:45:19.88 ID:q3ApJOlF
お題:与えられた数値列の数字を先頭から順に使って数列を作り、隣り合う数の「差の二乗」の合計が最大になるような分割を求めよ。
例:123は、1,23 1,2,3 12,3のように分割出来る。
1,23 ---> 23*23-1 ---> 528
1,2,3 ---> 1*1+1*1 ---> 2
12,3 ---> 12*12-3*3 ---> 135
よって1,23が答え。
301デフォルトの名無しさん:2014/06/30(月) 00:47:36.71 ID:3F05CPDt
>>298
7580*(7580+1)/2 = 28731990
下4桁は 1990 じゃね?
302デフォルトの名無しさん:2014/06/30(月) 00:48:51.19 ID:q3ApJOlF
>>300
訂正します。
1,23 ---> 22*22 ---> 484
1,2,3 ---> 1*1+1*1 --> 2
12,3 ---> 9*9 ---> 81
です。
303デフォルトの名無しさん:2014/06/30(月) 00:56:34.66 ID:1re/oN4f
>>295
115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579575211243625269821893824789712416737726474921561932652343069235804990490541883466083413151990
304デフォルトの名無しさん:2014/06/30(月) 01:10:02.22 ID:+bYHVEuQ
>>301
なんでだろう?
Perlのバグ?
インクリメント止めたら
say (($last + 1) * $last / 2);
115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579575211243625269821893824789712416737726474921561932652343069235804990490541883466083413151990
になった。
bigintでインクリメントは使っては駄目なんだろうか?
ちょっとでもコードを短くと思ったんだけど……
305片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/06/30(月) 01:14:22.20 ID:CGk8SAom
$lastを前置インクリメントしたら、その後の$lastも+1増えてるだろ
306デフォルトの名無しさん:2014/06/30(月) 01:15:53.22 ID:+bYHVEuQ
>>305
そっか。それは確かにそうだ。thanx!
307デフォルトの名無しさん:2014/06/30(月) 02:26:07.66 ID:by3cNm9P
>>302
これ
>>273
とおなじひと?
どうも出題が曖昧だな
308デフォルトの名無しさん:2014/06/30(月) 06:36:05.99 ID:76lBVk6p
>>295 Common Lisp
90文字
http://ideone.com/Z2iJQd
309デフォルトの名無しさん:2014/06/30(月) 08:44:41.68 ID:FpyV2Xga
>>300
与えられた数値の数字列を先頭から順に使って
310309:2014/06/30(月) 08:47:59.05 ID:FpyV2Xga
>>309
間違え。無視してください。
311デフォルトの名無しさん:2014/06/30(月) 08:51:40.06 ID:FpyV2Xga
やっぱり題意は>>309かな・・・?
312デフォルトの名無しさん:2014/06/30(月) 09:00:48.60 ID:YKYlOP4w
ひとりごとのようなので迷惑です。考えをまとめてからいうように。はい、次の人。
>>300 与えられた数字を先頭から順に桁ごとに区切って使って数列を作り、>>295 use bigint; say
240513287086428685519255147845870069319586640519231914692855244180824150923141702918809223790 *
481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447581 ;
313☆☆☆☆☆:2014/06/30(月) 12:13:05.64 ID:J2AJY7m0
----------------------
目標3分以内
25秒以内で書ければ優秀
----------------------

田中君はアイテムを合成して別のものを作る能力を持っています
銅を3個合成すると銀が1個作れます
銀を3個合成すると金が1個作れます
各アイテムの個数を銅=D, 銀=G, 金=Kとします
標準入力から与えられる個数の範囲を0≦(D, G, K)≦10000とします
お客さんから必要なアイテムのオーダーを受けるので、全て作成するのに必要最低限の銅の数を求めなさい

標準入力から以下の書式で与えられます
K G D

-------------------
テストケース

0 0 1 => 1
0 2 1 => 7
1 0 3 => 30
314デフォルトの名無しさん:2014/06/30(月) 12:16:06.92 ID:J2AJY7m0
テストケース修正

0 0 1 => 1
0 2 1 => 7
1 0 3 => 10
315片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/06/30(月) 12:30:03.52 ID:T7TvcWS5
お題:次のBNF記法で与えられた文の真偽を判定するプログラムを作れ。

<文> ::= <領域> "は" <領域> "か。".
<領域> ::= <制約> <基本領域>.
<基本領域> ::= "自然数" | "整数" | "実数".
<制約> ::= <OR制約> "でない" | <OR制約>.
<数> ::= [0-9]+ "." [0-9]+ | [0-9]+.
<OR制約> ::= <OR制約> "または" <AND制約> | <OR制約> "か" <AND制約> | <AND制約>.

<AND制約> ::= <数> "以下で" <AND制約>
| <数> "以下" <AND制約>
| <数> "以上で" <AND制約>
| <数> "以上" <AND制約>
| <数> "より小さく" <AND制約>
| <数> "より大きく" <AND制約>
| <AND制約> "かつ" <基本制約>.
| <基本制約>.

<基本制約> ::= <数> "以下"
| <数> "以上"
| <数> "より小さい"
| <数> "より大きい"
| "(" <OR制約> ")".
316片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/06/30(月) 12:34:07.72 ID:T7TvcWS5
修正。
<領域> ::= <制約> <基本領域> | <基本領域>.
317片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/06/30(月) 13:03:21.85 ID:CGk8SAom
……さあ、超難問の前で底のない絶望に悶え苦しむのだ……
318デフォルトの名無しさん:2014/06/30(月) 13:09:27.46 ID:YKYlOP4w
>>314
K*9+G*3+D じゃあだめなのか。
319デフォルトの名無しさん:2014/06/30(月) 13:37:41.95 ID:26x9m6sz
てか、>>314合ってんの?
320デフォルトの名無しさん:2014/06/30(月) 13:49:24.84 ID:7FoUPvVO
なんでいい加減な出題が三個もほぼ連続するんだ
ほんと、迷惑なのでやめてほしい

人の迷惑考えてる?

問題解けないからせめて出題したいのか?
それは考え違い
解けない人が出すと
いいかげんな問題についてなるのがおち

なんて書くとプッツンきてあらしになりそうだな
321デフォルトの名無しさん:2014/06/30(月) 14:09:43.48 ID:CGk8SAom
いい加減さを指摘して、よりよいお題を提案すればいいじゃん
322デフォルトの名無しさん:2014/06/30(月) 14:15:48.78 ID:7FoUPvVO
やったけど、認めなかったな
その後、修正してたけど
いちいち、問題自体の妥当性検討なんかきてられるか

ここは
「それは妥当な問題か健闘するスレ」
なのか?

話にならん
323デフォルトの名無しさん:2014/06/30(月) 14:16:19.50 ID:7FoUPvVO
誤変換は適当に読み替えろ
324デフォルトの名無しさん:2014/06/30(月) 14:18:31.19 ID:7FoUPvVO
バグだらけの問題出さずにロムってろ
325デフォルトの名無しさん:2014/06/30(月) 14:20:23.15 ID:9okftfsw
間違い探しになってるな
326デフォルトの名無しさん:2014/06/30(月) 14:20:33.33 ID:CGk8SAom
×なんかきてられるか
○なんかしてられるか

×健闘するスレ
○検討するスレ
327デフォルトの名無しさん:2014/06/30(月) 14:27:55.81 ID:CGk8SAom
バグは感染する
328デフォルトの名無しさん:2014/06/30(月) 14:34:02.54 ID:l9aKrYN2
ID:7FoUPvVO
どうした?学校でいじめられてるのか?落ち着け
329デフォルトの名無しさん:2014/06/30(月) 14:36:43.37 ID:7FoUPvVO
はあ?
やれやれ
ぞくぞくとあほーが
仕方ないな、こんなスレだし
330デフォルトの名無しさん:2014/06/30(月) 14:38:58.43 ID:9SMqmnH2
>>318
それが多分一番いいと思う
var tax = 1.05みたいな税率固定で後で修正が生まれる感じなので俺はやらないけど
331デフォルトの名無しさん:2014/06/30(月) 14:40:46.01 ID:CGk8SAom
派遣は大変だねえ、いろいろストレスを抱えて
332デフォルトの名無しさん:2014/06/30(月) 14:55:46.28 ID:7FoUPvVO
>>331
おまえ、精神病か?
それとも妄想即現実視の形而上学馬鹿か?
ん?馬鹿だから意味わかんないってか?
アハハ
333デフォルトの名無しさん:2014/06/30(月) 15:13:31.69 ID:CGk8SAom
>>332
別に君のことを言った訳じゃないからね
334デフォルトの名無しさん:2014/06/30(月) 15:19:53.80 ID:by3cNm9P
やっぱり荒れたな

わかりやすいくず
335デフォルトの名無しさん:2014/06/30(月) 17:08:30.97 ID:26x9m6sz
こいつがあまりにもヒドかったからなぁ・・・
>>243-244
>>257
>>259-260
>>263-264
>>273
336デフォルトの名無しさん:2014/06/30(月) 17:19:43.81 ID:EYDR7xk5
それあるけど>>319はさすがにねえわw
337デフォルトの名無しさん:2014/06/30(月) 17:35:05.85 ID:26x9m6sz
>>336
見ただけで分かるような間違いを平気でそのまんまにしておくやつにかける言葉としちゃ優しい方だろ
338デフォルトの名無しさん:2014/06/30(月) 17:37:24.22 ID:j9QoncGa
出題するなら、一度自分で解いて、テストケースやサンプルは出力結果をコピペしてくれ。
339デフォルトの名無しさん:2014/06/30(月) 19:00:30.67 ID:OP+eMRFG
313とか315とかはスルーしようよ
340デフォルトの名無しさん:2014/06/30(月) 19:01:07.51 ID:HhKWif/x
お前に指図はされたくはない
341片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/06/30(月) 20:17:07.31 ID:CGk8SAom
>1以上の整数は自然数か?
はい

>2より大きく4より小さい整数は実数か?
はい
342片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/06/30(月) 20:20:42.31 ID:CGk8SAom
>0より小さい整数は自然数か?
いいえ

>実数は整数か?
いいえ
343デフォルトの名無しさん:2014/06/30(月) 23:19:47.83 ID:HxSDp0H8
2chの中でまで、学校や職場のように、仕様が曖昧だから出来ませんって虚しくないか?
344デフォルトの名無しさん:2014/06/30(月) 23:29:15.07 ID:uUajdWw8
>>343
>>243-273までの流れみて同じこと言えるなら、お前はそれでやってけば?
345デフォルトの名無しさん:2014/06/30(月) 23:54:15.75 ID:649AII3X
俺今日あの人の誕生日会なんて聞いてないっすよ
アニメ見るので帰りますよ
346デフォルトの名無しさん:2014/06/30(月) 23:57:26.99 ID:E06QCwsR
>>345
全録レコーダーくらい用意しておくのが社畜のたしなみとゆうものだろう!
347デフォルトの名無しさん:2014/07/01(火) 02:23:35.61 ID:hWpKdQkT
   |=番兵|_
  ( ・ω・) <ステンバーイ
  ○={=}〇
   |:::::::::\
、、、、し 、、、(((.@)/30 7/1 7/2
348デフォルトの名無しさん:2014/07/01(火) 04:38:27.43 ID:BVpg6CTG
仕様が曖昧だからできません
ではなくて
問題になっていないものを出し続ける馬鹿が一人いるということ
適当すぎ
349デフォルトの名無しさん:2014/07/01(火) 05:20:54.74 ID:otDDn24O
問題の不備なんだよなぁ
350デフォルトの名無しさん:2014/07/01(火) 07:56:48.98 ID:3GABGLyQ
スキルアップのスレじゃ無いからしゃーない。
351デフォルトの名無しさん:2014/07/01(火) 11:30:25.93 ID:5MgriEGv
引き続き根暗の攻防戦をお楽しみください
352デフォルトの名無しさん:2014/07/01(火) 14:43:38.36 ID:J4eryFJG
p, q - prime number
n = p*q - modulo
(e, n) - public parameters of cryptosystem
(d, n) or (d, p,q) - private parameters of cryptosystem

m - message
m^e = c (mod n) - cipher text
m^(e*d) = m (mod n)

So, your task to find d parameter having p,q,e numbers.
I'm guarantee that the number e is valid.

Input: p q e
Output: d

テストケース
------------
IN
5
7
5

Out
5
353 ◆0qAv26otVI :2014/07/01(火) 15:56:19.17 ID:aHhEQ2XO
>>352 .jp
素数pと素数qから(p-1)と(q-1)の最小公倍数を求める。
最大p*qまでの数で、n*最小公倍数+1の集合を求める。
この集合の中から、eで割り切れる数を探す。
例:p=5,q=7:(5-1)と(7-1)つまり4と6の最小公倍数は12。
例:p*q=35なので12+1,24+1,36+1(>35)つまり13と25。
例:25/5=5=dとなる。eは割り切れる数があらかじめ入力される。
354デフォルトの名無しさん:2014/07/01(火) 18:21:19.43 ID:XPXTuhdJ
流れがピタッと止まったなwwwwwwwwwww
偉そうにコメント書き込んでた奴らは英語読めないんだなwwwwwwwwwwwww
355デフォルトの名無しさん:2014/07/01(火) 18:43:09.30 ID:AM6RIy0R
>>352
日本語で出題してください
356デフォルトの名無しさん:2014/07/01(火) 19:33:07.79 ID:ZUAu2eXQ
>>353 Perl
http://ideone.com/guv4YD

> この集合の中から、eで割り切れる数を探す。

なら、

Out
25

じゃなくていいの?
357デフォルトの名無しさん:2014/07/01(火) 19:37:05.97 ID:4ksOGHD/
>>354
きみなの?馬鹿な問題出し続けてたの
で、>>352 これまたはるかにお馬鹿な問題だしたの?
英語になってないよ
358 ◆0qAv26otVI :2014/07/01(火) 19:57:38.99 ID:aHhEQ2XO
356>>eで割って、dを求めるの間違いです。
これとは別に、(p-1)と(q-1)の最小公倍数を素因数分解して、eの候補を全て列挙したいです。

357>>英語読める人?
359デフォルトの名無しさん:2014/07/01(火) 20:27:22.80 ID:l9yjQtpJ
>>352
So, your task to find d parameter having p,q,e numbers.

So, your task is to find d parameter having p,q,e numbers.
360デフォルトの名無しさん:2014/07/01(火) 20:28:18.25 ID:l9yjQtpJ
>>352
I'm guarantee that the number e is valid.

I guarantee that the number e is valid.
361デフォルトの名無しさん:2014/07/01(火) 21:46:09.01 ID:0frJXIds
>>359-360
帰っていいよ
362デフォルトの名無しさん:2014/07/01(火) 21:48:58.23 ID:gE7BozM3
>>361
お前恥ずかしいなww
363デフォルトの名無しさん:2014/07/01(火) 21:52:03.48 ID:l9yjQtpJ
実際英語になってなかったので…。
364 ◆0qAv26otVI :2014/07/01(火) 21:54:14.54 ID:aHhEQ2XO
課題は与えられたp,qからe,dを求める事です。p,qは2個の素数、e,dはp*q以下の数。
eおよびdは、(p-1)と(q-1)の最小公倍数を求めてそれを整数倍して、1を足した数の素因数です。

p, q ... 素数
n = p*q ... 2個の素数の積
(e, n) ... eとnは暗号化の公開鍵
(d, n) or (d, p, q) ... dとnまたは、dとpとqは暗号化の秘密鍵

m ... 暗号化する文(平文)
m^e = c (mod n) ... cはmをe乗した値{をnで割った余り}、cはmを暗号化した暗号文
m^(e*d) = m (mod n) ... 暗号文をさらにd乗した値{をnで割った余り}がm(平文)である

Input:
p
q
Output:
e d
e d

Test case.
------------
Input:
29
37
Output:
11 23
5 101

英語のハードルは低いと思うけど、問題を変えてみた。
365デフォルトの名無しさん:2014/07/01(火) 21:55:01.85 ID:0frJXIds
>>362
お前の力じゃ読めても解けなさそう
366デフォルトの名無しさん:2014/07/01(火) 22:33:20.39 ID:ZVl2H7Qp
なんか煽りあいのところ申し訳ないが、一気に悪化しましましたなー。
もうちょっと言葉選ぼうぜー。
367デフォルトの名無しさん:2014/07/01(火) 22:59:25.44 ID:Y7RI/8xm
>>365
ほら原文貼ってやるから解いてみろって
世の中にはお前みたいなカスだらけじゃないんだよ
http://jagc.org/task/52bd90bb2735ee4a6a080000
368デフォルトの名無しさん:2014/07/01(火) 23:00:02.76 ID:Y7RI/8xm
>>365じゃなくて>>362
はい解いてね〜wwwwwwwwwwwwwwwww
369デフォルトの名無しさん:2014/07/01(火) 23:13:35.98 ID:8OIckluf
麻雀の実装は難しいが、人狼を実装してアルゴリズムで対戦。
370デフォルトの名無しさん:2014/07/01(火) 23:18:11.17 ID:AM6RIy0R
螺旋の問題は>>14-15よりもこっちの方がまともだね

spiral

Build a matrix of numbers, which will be presented in the form of a spiral.
The input is the size of the matrix. Use tabs as a delimeter.

IN
3

OUT
1 2 3
8 9 4
7 6 5

IN
5

OUT
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
371デフォルトの名無しさん:2014/07/01(火) 23:41:43.01 ID:5GRPRLAI
何がまともなのか何がダメなのか書かないと結局ただ悔しくてレスしただけの感情論先行型人間だって思われるぞ
372デフォルトの名無しさん:2014/07/01(火) 23:53:59.31 ID:AM6RIy0R
>>371
・入出力例が一つしかなくどう並べるのかわからない((√n,√n)なのか(3,n/3)なのかそれ以外なのか)
・平方数ならわかるが、なぜ奇数に限定するのか
・もし正方形に並べさせたい場合、平方数以外が与えられた場合どう処理するのか

問題文には右回りとしか書かれていない
373 ◆0qAv26otVI :2014/07/02(水) 00:11:23.83 ID:Wa71T36d
最大値チェックは、なんかチョット要らなかった。>>353 ごめんなさい。
Input:
5
7
7
Output: 7
374デフォルトの名無しさん:2014/07/02(水) 00:49:39.62 ID:QdENQKEN
>>370 Python

def f(n):
  a = [[0,]*n for y in range(n)]
  (x,y), d = (0,0), complex(1,0)
  for i in range(1,1+n*n):
    if a[y][x] == 0:
      break
    a[y][x] = i
    x1,y1 = x+int(d.real), y+int(d.imag)
    if not all([0 <= z < n for z in (x1,y1)]) or a[y1][x1] != 0:
      d *= complex(0,1)
    x,y = x+int(d.real), y+int(d.imag)
  for s in a:
    print ("{:<{width}}"*n).format(*s, width=len(str(n*n))+1)

f(3), f(5), f(20)
375 ◆0qAv26otVI :2014/07/02(水) 02:34:12.43 ID:Wa71T36d
>>353
http://ideone.com/7kt72X 
>>356 参考にさせていただきました。
return の中には納まりませんでした。
376 ◆0qAv26otVI :2014/07/02(水) 12:46:46.91 ID:Wa71T36d
>>353 走行(倉庫)証明は今回いらないだろう。
#!/usr/bin/perl
use 5.016;
use warnings;

sub gcd { $_[1] ? gcd($_[1], $_[0] % $_[1]) : $_[0] }
sub lcm { $_[0] * $_[1] / gcd($_[0], $_[1]) }

sub rca {
  my ($p, $q, $e) = @_;

  my $lcm = lcm($p - 1, $q - 1);

  for (1 .. $p * $q) {
    $_ = $_ * $lcm + 1;
    if(!($_ % $e) && ($_ != $e)) {
      return $_ / $e;
    }
  }
}

say rca(map{ <STDIN> }(1 .. 3));
377デフォルトの名無しさん:2014/07/03(木) 00:00:24.39 ID:Dsf0pQuE
378デフォルトの名無しさん:2014/07/03(木) 06:56:25.40 ID:vG38XDPk
>>313 >>314 J
f =: 3 & #.

f 0 0 1
1
f 0 2 1
7
f 1 0 3
12
f 100 100 100
1300
379デフォルトの名無しさん:2014/07/03(木) 07:31:11.16 ID:zQnvFAz4
>>313 このひと?最近、出題のたびにいいかげんな問題出してる人?
また、
1,テストケース間違ってるし。
2,日本語もいい加減だし
「 お客さんから必要なアイテムのオーダーを受けるので 」
なんじやこりゃ。文脈から意味は分かるが
3,銅、銀、金をD,G,Kで表すし、参るな
C,S,Gかcu,ag,auにしろよ、恥ずかしい

変数 c, s , gにそれぞれの必要個数を入力
必要な銅の数は
c = c + s*3 * g*3*3

出題すべき問題ではない
380デフォルトの名無しさん:2014/07/03(木) 08:51:38.30 ID:LiPjrIzD
>>379
随分と銅が必要になりそうだね。
381デフォルトの名無しさん:2014/07/03(木) 10:17:24.07 ID:T6nbxnRY
なーに、こないだ茨城の高校から盗(ry
382デフォルトの名無しさん:2014/07/03(木) 14:26:26.95 ID:Lygb4FeS
DGKとCSGは別に重要なことでもないな
383デフォルトの名無しさん:2014/07/03(木) 14:29:00.16 ID:9jCbUWE0
c = c + s*3 * g*3*3
揚げ足取ったつもりなのに算数が出来もできないバカは来るなよ
384デフォルトの名無しさん:2014/07/03(木) 14:38:44.95 ID:M7lcZRBS
算数の問題か国語の問題か

それを知る機会は二度と来ないだろう
385デフォルトの名無しさん:2014/07/03(木) 14:50:12.53 ID:/sivhkNE
何でC,S,Gになるのか分からん。
B,S,Gなら分かるけど。
cu,ag,auのように無駄に文字数使うのは競技プログラミングのお題では使わないほうが良いかと。
386デフォルトの名無しさん:2014/07/03(木) 15:12:18.67 ID:G+zVYNAC
>>385
>何でC,S,Gになるのか分からん。
>B,S,Gなら分かるけど。

オリンピックのメダルじゃないんだし
ブロンズは合金だから、この場合、銅はカッパーで良いと思うけど
387デフォルトの名無しさん:2014/07/03(木) 15:14:32.46 ID:T6nbxnRY
どんどん脱線していってるなw
388デフォルトの名無しさん:2014/07/03(木) 15:21:16.37 ID:zQnvFAz4
>>383
まず、揚げ足ではない
つぎに、入力みすとさえ気づけない、バカ頭
よほどの知的底辺だな、おまえ
389デフォルトの名無しさん:2014/07/03(木) 15:38:35.80 ID:G+zVYNAC
それが通るなら、件のテストケースの間違いもタイプミスだから気付け、って話しになる
390デフォルトの名無しさん:2014/07/03(木) 18:59:58.98 ID:l3BrPpEm
>>388
落ち着け、恥の上塗りだぞ
391デフォルトの名無しさん:2014/07/03(木) 19:09:32.77 ID:zQnvFAz4
>>390
は?どこが?
指摘してみな
揶揄するようなバカはどうしていするかな
さあ、やってみよう
そら、やれ
392デフォルトの名無しさん:2014/07/03(木) 19:38:15.32 ID:n2StL5yI
暑苦しいのはNGでございますわ。
ここが2chということをお忘れなのでしょうか。
393デフォルトの名無しさん:2014/07/04(金) 02:08:14.20 ID:ZrYbNryy
文字列A(2≦N≦100000)が与えられる
どうしていするかな
うどうしていするか
していするかなどう
ていするかなどうし
いするかなどうして
するかなどうしてい
るかなどうしていす
かなどうしていする
などうしていするか
394デフォルトの名無しさん:2014/07/04(金) 02:10:48.43 ID:0VZOuSag
左にシフトしてくの?
2行目が分からん
395デフォルトの名無しさん:2014/07/04(金) 02:35:29.13 ID:ZrYbNryy
あれ書き込むのやめたつもりが書き込まれてた
396デフォルトの名無しさん:2014/07/04(金) 02:36:29.78 ID:ZrYbNryy
どうしていするかな
うしていするかなど
していするかなどう
ていするかなどうし
いするかなどうして
するかなどうしてい
るかなどうしていす
かなどうしていする
などうしていするか
397デフォルトの名無しさん:2014/07/04(金) 07:05:12.13 ID:1DYmAe4B
398デフォルトの名無しさん:2014/07/04(金) 07:17:08.89 ID:1DYmAe4B
399デフォルトの名無しさん:2014/07/04(金) 09:23:08.90 ID:F/X2iHEQ
400デフォルトの名無しさん:2014/07/04(金) 11:22:41.01 ID:G+5TPOno
検索)シーザー暗号
401デフォルトの名無しさん:2014/07/04(金) 12:11:59.18 ID:1jMYhAsm
>>396 Io
f := method(s,
a := s size
for(i, 0, a - 1, writeln((s .. s) slice(i, i + a)))
)

Io> f("wxyz")
wxyz
xyzw
yzwx
zwxy
402デフォルトの名無しさん:2014/07/04(金) 15:40:46.18 ID:hGvq3ws9
403デフォルトの名無しさん:2014/07/04(金) 16:57:10.42 ID:JCAFfbJv
>>396
import Control.Monad
import Data.List (inits, tails)

f396 :: [a] -> [[a]]
f396 = init . liftM2 (zipWith (++)) tails inits

main :: IO ()
main = mapM_ putStrLn $ f396 "どうしていするかな"
404デフォルトの名無しさん:2014/07/04(金) 17:13:12.54 ID:1jMYhAsm
>>396 J
f =: i.&# |."0 1 ]

f 'abcd'
abcd
bcda
cdab
dabc
405デフォルトの名無しさん:2014/07/04(金) 19:13:05.09 ID:QAtT59Qe
406デフォルトの名無しさん:2014/07/04(金) 19:29:59.00 ID:1jMYhAsm
>>396 Octave
> s="abcd";a=length(s);for i=0:(a-1) disp(shift(s,i))end
abcd
dabc
cdab
bcda
407デフォルトの名無しさん:2014/07/04(金) 21:05:11.02 ID:F/X2iHEQ
>>396 ワンライナー(Ruby)
ruby -e '$*.each{|a|a=a.split(//);a.each{puts a.join; a<<a.shift}}' プログラミングのお題スレ Part4
408デフォルトの名無しさん:2014/07/05(土) 05:16:38.23 ID:x6TWxlZJ
>>396 十進Basic
LET s$="abcd"
LET a = LEN(s$)
FOR i=1 TO a
PRINT s$(i:a) & s$(1:i-1)
NEXT I
END
409デフォルトの名無しさん:2014/07/05(土) 12:48:24.38 ID:hiPyt9OR
47の都道府県をなるべく少ない距離で横断していく為のルートを求めなさい。
隣接する都道府県への移動にかかる距離は1になります。
例えば埼玉から東京までの最短距離は1、埼玉から神奈川への最短距離は東京を経由して2になります。
徒歩で移動するので隣接する都道府県を飛び越して移動・ワープはできません。
どこからスタートしても良いですが最初と最後の地点は沖縄のほうが良いでしょう。
410デフォルトの名無しさん:2014/07/05(土) 12:52:54.31 ID:73ZHJ04l
沖縄と隣接する県ってどこになる?
411デフォルトの名無しさん:2014/07/05(土) 13:51:51.29 ID:NUdHoME9
北海道や四国や九州は、どう取り扱う?
412デフォルトの名無しさん:2014/07/05(土) 14:34:08.23 ID:kvjkUDCD
徒歩で行けない場合は例外として船・自動車の使用を許可
413デフォルトの名無しさん:2014/07/05(土) 15:40:17.15 ID:NUdHoME9
>>412
その場合「隣接」をどう定義する?
414デフォルトの名無しさん:2014/07/05(土) 15:40:19.47 ID:+HA1XJwR
>>412の例外を使うと、沖縄や北海道は任意の沿岸と距離1で隣接してる事になるのか。
兵庫県とかで詰まっても海を渡れば重複なしで移動できそうな気がするが…大丈夫か?
415デフォルトの名無しさん:2014/07/05(土) 16:16:37.19 ID:DUAZ7FzQ
>>412
沖縄以外は実際に徒歩で行けるかは別にして、橋やトンネルで繋がってるから、繋がってたら距離 1 でいいんじゃね。
沖縄は鹿児島と距離 1 で繋がってるからことにするしかないかな。
416デフォルトの名無しさん:2014/07/05(土) 17:08:43.54 ID:W9RgS5SL
北海道に隣接してるのは青森でしょ
417デフォルトの名無しさん:2014/07/05(土) 18:21:19.99 ID:/+0/ZnD9
問題解くより地図のデータ作る方が面倒だな
418デフォルトの名無しさん:2014/07/05(土) 18:38:27.54 ID:rJnPLDkM
>>409
都道府県数 + 端点数(沖縄、長崎、北海道) + 2次端点数? + 隘路数(福岡・山口)
=47 + 3 + 0 + 1
=51
でいいと思うんだが、隘路の検出が面倒そうだ。
419デフォルトの名無しさん:2014/07/05(土) 18:48:51.38 ID:XGIu+p0v
青森->[北海道, 秋田, 岩手]
みたいなテーブル作るのが先だな
頑張ってくれ >>409
420デフォルトの名無しさん:2014/07/05(土) 20:00:02.53 ID:NUdHoME9
>>415
>繋がってたら距離 1
どことつながっているかをとりあえず定義しないとね。
北海道-青森
兵庫-徳島
山口-福岡

さて沖縄は?
421デフォルトの名無しさん:2014/07/05(土) 20:56:58.86 ID:v1GnvGtI
船経由で隣接がありなら、飛行機経由もありだな
422デフォルトの名無しさん:2014/07/05(土) 21:02:03.83 ID:rJnPLDkM
>>409
データ作った。
ttp://ideone.com/rOtagj
423デフォルトの名無しさん:2014/07/05(土) 21:17:10.33 ID:DUAZ7FzQ
>>420
> どことつながっているかをとりあえず定義しないとね。

接していない都道府県を繋ぐ橋とかトンネルってそんなに多くないよ。

> 北海道-青森 ... 青函トンネル
> 兵庫-徳島 ... 明石海峡大橋、大鳴門橋
> 山口-福岡 ... 関門トンネル (実際は三本ある)

以外には、

岡山-香川 ... 瀬戸大橋
広島-愛媛 ... しまなみ海道

が、ある。

あと、忘れがちだけど

千葉-神奈川 ... 東京湾アクアライン

なんてのもある。

> さて沖縄は?

>> 沖縄は鹿児島と距離 1 で繋がってるからことにするしかないかな。

以外に、妙案ある?

>>421
船とか飛行機は繋がり多すぎるし、不定期便とかまで入れると収拾つかなくなるよ。
424デフォルトの名無しさん:2014/07/06(日) 00:05:41.94 ID:Xcdpas3C
>>409
問題があいまいなので整理しよう

沖縄から始めて、沖縄に戻ってくるルートのうち、もっとも短いものを探す
(日本一周する)というが基本ルールだと思うが、

47都道府県を必ず一回ずつ踏むのか?
一回しか踏めない場合、>>422の隣接に従うと、北海道や鹿児島で折り返せない。
複数回踏んでもいいなら、問題はない。

あるいは47都道府県を全て踏まなくてもいいのか?
その場合、どうであれば横断であるのか定義が必要。
例えば、沖縄から北海道を経由して、沖縄に戻ってくるルートとか


で、とりあえず、沖縄から出て、2回まで踏んでいい条件で、沖縄に戻ってくる
ルートを表示するもの(最短じゃない)
http://ideone.com/zDUA12

最短にするには計算時間が増えすぎて、自分のPCでも無理・・・・
425デフォルトの名無しさん:2014/07/06(日) 01:56:13.19 ID:ns4lB4b9
とりあえず青森から北海道と
岩手から青森、秋田から青森が足りないと思う。
>>422 >>424
426デフォルトの名無しさん:2014/07/06(日) 04:48:25.53 ID:5Cg0EMMK
以前、使ったものに少し橋による隣接を加えた。地図で確かめていないから間違っているかも。
肝心のプログラムはあまりに爆発的な計算量でやる気がしない。
http://nojiriko.asia/prolog/rinsetsu_todoufuken.html
427デフォルトの名無しさん:2014/07/06(日) 11:12:42.27 ID:h47gFyyv
これはサラリーマン巡回問題を内包しているように思えるから最適解は存在しないのでは。
総当りになっちゃうんじゃね?
428デフォルトの名無しさん:2014/07/06(日) 11:45:57.63 ID:PmG1bj5r
サラリーマン巡回問題
429デフォルトの名無しさん:2014/07/06(日) 11:48:51.38 ID:pe5rXydm
>409
出題者の解答例は?
430デフォルトの名無しさん:2014/07/06(日) 12:52:49.67 ID:6HIamfN5
>>409
グラフ簡約(クリティカルパスを簡約毎に2ステップ)でいける筈だが、実装の仕方を忘れたw
431425:2014/07/06(日) 15:52:12.83 ID:ns4lB4b9
data>>426 algorithm>>424
急に和歌山に飛んだぜ?
http://ideone.com/x8lNS5
432425:2014/07/06(日) 15:56:02.08 ID:ns4lB4b9
http://ideone.com/APGYLT
取る物もとりあえず、ごめん。
433デフォルトの名無しさん:2014/07/07(月) 12:06:21.10 ID:l/o7L2gj
お題:文字列の平均情報量を求める。

"Hello, world!" -> 3.18
"abcd" -> 2.00
"abcde" -> 2.32
434デフォルトの名無しさん:2014/07/07(月) 12:11:25.92 ID:sxx7xYnm
平均情報量ってなに
435デフォルトの名無しさん:2014/07/07(月) 14:59:37.42 ID:KVV+Bfca
>>433 Common Lisp
(dolist (s '("Hello, world!"
"abcd"
"abcde"))
(format t "~S -> ~F~%"
s
(- (loop for c across (remove-duplicates s)
for P = (/ (count c s) (length s))
sum (* (log P 2) P)))))

出力:
"Hello, world!" -> 3.1808329
"abcd" -> 2.0
"abcde" -> 2.321928
436デフォルトの名無しさん:2014/07/07(月) 21:14:45.38 ID:YcuGRz//
>>433 Python
import math
def f(s):
  P = [1.0*s.count(c)/len(s) for c in set(s)]
  H = -sum([p * math.log(p,2) for p in P])
  print '"{}" -> {}'.format(s, H)

ss = ["Hello, world!", "abcd", "abcde", "12345678"]
for s in ss:
  f(s)
---
"Hello, world!" -> 3.18083298721
"abcd" -> 2.0
"abcde" -> 2.32192809489
"12345678" -> 3.0
437地理A ◆0qAv26otVI :2014/07/07(月) 21:59:38.42 ID:sIMWWGl+
>>422(424は間違い) >>426の隣接都道府県.html
http://codepad.org/MCFLVWSL
438426:2014/07/08(火) 04:22:09.04 ID:+Qt3m9hV
>>437
ありがとうございます。直しました。
ご足労かけました。すみません。
439デフォルトの名無しさん:2014/07/08(火) 19:12:28.93 ID:cYjPRTX9
お題:2進数リストが与えられたら10進数に変換し, 10進数が与えられたら2進数リストに変換する.
なお,最上位ビットは符号ビットとする.また、2進数は最小ビット数で表現.ただし,ビット数指定がある場合はそれに従う.


f(10) -> [0 1 0 1 0]
f(10,8) -> [0 0 0 0 1 0 1 0]
f(-8) -> [1 0 0 0]
f(-8 8) -> [1 1 1 1 1 0 0 0]
f(-1) -> [1 1]

f([0 1 1 1]) ->7
f([1 1 1 1]) ->-1
f([1 0 0 0]) ->-8
440デフォルトの名無しさん:2014/07/08(火) 21:07:38.60 ID:/SVoRUsP
10進数と2進数の違いを判別する方法をまず説明して下さい
441デフォルトの名無しさん:2014/07/08(火) 23:04:09.67 ID:7TvrG/Ck
判別する必要はありません
442デフォルトの名無しさん:2014/07/08(火) 23:09:11.73 ID:/SVoRUsP
10が10進数なのか2進数7日どうやって判断すればいいですか
443デフォルトの名無しさん:2014/07/08(火) 23:19:09.74 ID:7TvrG/Ck
リストと数値が区別できないような言語使ってるのか?
444デフォルトの名無しさん:2014/07/08(火) 23:20:17.15 ID:7/DIpLvv
C++は?
445デフォルトの名無しさん:2014/07/08(火) 23:34:07.23 ID:75xXWCXL
二進数リテラルが無くて数値型のリストで二進数を表現するような言語を使ってるのか?
446デフォルトの名無しさん:2014/07/08(火) 23:44:00.08 ID:/SVoRUsP
秀丸マクロ使ってます
447デフォルトの名無しさん:2014/07/09(水) 00:01:38.36 ID:rGuOP1J0
2進数リテラルはカミングスーン。
448デフォルトの名無しさん:2014/07/09(水) 00:02:43.58 ID:rGuOP1J0
C++ね。ID変わってた。
449デフォルトの名無しさん:2014/07/09(水) 00:30:05.43 ID:xRBjxmPo
>>439 Python
def f(x,n=0):
  if isinstance(x, int):
    d = x
    ss = bin(abs(d))[2:]
    if d < 0:
      ss = bin((abs(d) ^ (2**len(ss)-1)) + 1)[-len(ss):]
    else:
      ss = "0" + ss
    if len(ss) < n:
      ss = ss[0] * (n-len(ss)) + ss
    x = map(int, ss)
    if n:
      print "f({},{}) -> {}".format(d,n,x)
    else:
      print "f({}) -> {}".format(d,x)
  else:
    ss = "".join(map(str, x))
    d = int(ss,2)
    if x[0] == 1:
      d = -((d ^ (2**len(x)-1)) + 1)
    print "f({}) -> {}".format(x,d)
---
f(-1) -> [1]
f(-1,2) -> [1, 1]
450デフォルトの名無しさん:2014/07/09(水) 04:13:46.70 ID:cyCbt8rM
>>439
Scheme

(decibin 10) ->(0 1 0 1 0)
(decibin 10 8) ->(0 0 0 0 1 0 1 0)
(decibin -8) ->(1 0 0 0 )
(decibin -8 8) ->(1 1 1 1 1 0 0 0)
(decibin -1 ) ->(1 1)
(decibin '(0 1 1 1)) ->7
(decibin '(1 1 1 1)) ->-1
(decibin '(1 0 0 0 )) ->-8

ttp://codepad.org/JvIfQLjV
451デフォルトの名無しさん:2014/07/09(水) 04:55:09.87 ID:cyCbt8rM
>>450
メイン関数を整理

;;;解答関数
(define decibin
(lambda (src . bits)
(cond
;;2進数を10進数に変換
((pair? src) (2to10 src))
;;10進数を2進数に変換(bit長指定可)
((number? src)
(if (null? bits) (10to2 src)
(10to2 src (car bits))))
;;error
(else #f))))
452デフォルトの名無しさん:2014/07/09(水) 13:03:06.30 ID:asIXKjCG
453デフォルトの名無しさん:2014/07/09(水) 13:07:51.90 ID:rH0/Zsa/
1から100000までの重複しない整数を使って、4つの数字を加減乗除した時に100になるパターンを教えてください
演算子+/*-は全部使ってください
454デフォルトの名無しさん:2014/07/09(水) 13:20:10.26 ID:u2kQRDew
>>453
意味が分からんので例を
455デフォルトの名無しさん:2014/07/09(水) 13:36:34.23 ID:IIXAtXmv
>>453
12*-34はOK?
2/3=0としてOK?
456デフォルトの名無しさん:2014/07/09(水) 14:35:50.36 ID:l3PH0YRn
1<=N<=100000だから負数はだめでしょ
457デフォルトの名無しさん:2014/07/09(水) 14:38:30.00 ID:IIXAtXmv
>>456は出題者?
458デフォルトの名無しさん:2014/07/09(水) 14:40:06.77 ID:IIXAtXmv
>>453
2/3*6=0?
2/3*6=4?
459デフォルトの名無しさん:2014/07/09(水) 14:41:14.23 ID:l3PH0YRn
>>457
違うけどそれがどうした?
460デフォルトの名無しさん:2014/07/09(水) 14:43:40.43 ID:fijwNKcD
出題者が決めることだと言いたいんじゃ?
数字にマイナスをつけるのは演算子かどうか、いう話だろ
461デフォルトの名無しさん:2014/07/09(水) 17:01:06.07 ID:QPJQuFnp
4つの数値に4つの演算子だと、
どれか一つを符号にしないと数が合わないよね
462デフォルトの名無しさん:2014/07/09(水) 17:56:35.80 ID:BLsKU9h7
>>439 Common Lisp
http://ideone.com/Ww1vvV

-1 を例外扱いせずに f(-1) -> [1 1] 且つ f(-8) -> [1 0 0 0] とする方法が分からなかった
463デフォルトの名無しさん:2014/07/09(水) 20:06:58.49 ID:ztVLGCNc
>>433 Io
f := method(s,
a := list
b := s size
s foreach(c, a push(c)
) uniqueCount map(v,(p := v last / b) log2 * p
) sum * -1
)
464デフォルトの名無しさん:2014/07/09(水) 21:56:16.02 ID:e6NcC5AN
+(-1)これと-1は同じなの?
465デフォルトの名無しさん:2014/07/09(水) 22:22:20.70 ID:tJbpL3+F
>>453
// 方針案
// X-Y=100となるようなX、Yを求める。
// X,Yについて、以下の6通りが有り得る。
// 1.A*B/C=X ===> A*B/C-Y
// 2.A/B*C=X ===> A/B*C-Y
// 3.A*B=X,C/D=Y ===> A*B-C/D
// 4.A/B=X,C*D=Y ===> A/B-C*D
// 5.B*C/D=Y ===> A-B*C/D
// 6.B/C*D=Y ===> A-B/C*D
466デフォルトの名無しさん:2014/07/10(木) 02:35:06.94 ID:W+p4qrtw
お題
昇順の数列A[a0,a1,..,an]とAの要素amを一つ指定する
Aの要素からなる数列Bを与えて[am,am+1,..,an,a0,a1,..,am-1]の順番で整列させよう

入: A = [2,3,5,7,9], a = 2, B = [9,2,5]
出: [2,5,9]
入: A = [2,3,5,7,9], a = 9, B = [9,2,5]
出: [9,2,5]
入: A = [2,3,5,7,9], a = 5, B = [9,2,5]
出: [5,9,2]
入: A = [2,3,5,7,9], a = 3, B = [9,2,5,5,2]
出: [5,5,9,2,2]
467デフォルトの名無しさん:2014/07/10(木) 04:30:36.67 ID:+OU7A57A
>>466 Prolog

'昇順の数列A[a0,a1,..,an]とAの要素amを一つ指定する
Aの要素からなる数列Bを与えて[am,am+1,..,an,a0,a1,..,am-1]の順番で整列させよう'(A,_am,B,_整列したならび) :-
    '[am,am+1,..,an,a0,a1,..,am-1]の順番で'(A,_am,_順番で),
    整列させよう(B,_順番で,_整列したならび).

'[am,am+1,..,an,a0,a1,..,am-1]の順番で'(A,_am,_順番で) :-
    append(L1,[_am|L2],A),
    append([_am|L2],L1,_順番で),!.

整列させよう(B,_順番で,_整列したならび) :-
    findall(_a,(
          append(L0,[_a|_],_順番で),
          \+(member(_a,L0)),
          member(_a,B)),
        _整列したならび).
468デフォルトの名無しさん:2014/07/10(木) 06:25:26.98 ID:KiWPbMvu
469 ◆0qAv26otVI :2014/07/10(木) 07:08:40.17 ID:wLmZR570
>>461
>演算子+/*-は全部使ってください
全部使わなくても、好きなの使えばいいよね。
470デフォルトの名無しさん:2014/07/10(木) 08:29:35.13 ID:W5aGcVmQ
471デフォルトの名無しさん:2014/07/10(木) 13:12:03.14 ID:4V+vxH6Q
472デフォルトの名無しさん:2014/07/10(木) 17:55:09.45 ID:G1rqgd7K
縦H * 横W ( 10≦(H, W)≦100 )のサイズの床に地雷を設置した
---**
--*--
-*---
--*--
*--*-
以下のように地雷に隣接する床の上に、隣合う地雷の数を調べて出力できるプログラムを作成せよ
地雷をランダムに配置せよ
002**
02*21
1*300
12*20
*12*1
473デフォルトの名無しさん:2014/07/10(木) 19:18:34.32 ID:D7NRMVb2
>>466 Common Lisp
http://ideone.com/YYNCfv

cl:sortを使う版(f)と使わない版(g)を書いた
474デフォルトの名無しさん:2014/07/10(木) 21:11:38.52 ID:D7NRMVb2
>>470
f([2,3,5,7,9], 3, [9,2,5,5,2]) の結果が合っていない
5行目よりも上のどこかに b.sort! があるはずなのでは
475デフォルトの名無しさん:2014/07/10(木) 21:30:24.93 ID:D7NRMVb2
>>474
あ、b.sort! はだめか
呼出側の配列を壊してしまう
b = b.sort だね
476デフォルトの名無しさん:2014/07/10(木) 23:18:17.52 ID:7hx1yjTE
>>472
paizaで似たようなのが出た気がするけど難しい・・・
477デフォルトの名無しさん:2014/07/10(木) 23:25:52.08 ID:KiWPbMvu
478デフォルトの名無しさん:2014/07/10(木) 23:25:58.58 ID:1QBBoJFm
479デフォルトの名無しさん:2014/07/11(金) 01:55:16.31 ID:mTredRn+
480デフォルトの名無しさん:2014/07/11(金) 07:57:05.22 ID:+0oXrHdH
481デフォルトの名無しさん:2014/07/12(土) 09:01:15.80 ID:qrHUnFxI
4x4盤タイルゲーム for Windows
対戦するたびに学習して次第に強くなる「最善手探索+対戦学習型知能ゲーム」
http://www.vector.co.jp/soft/win95/game/se370530.html
482デフォルトの名無しさん:2014/07/13(日) 01:11:13.21 ID:BzOhvb9Q
   |=番兵|_
  ( ・ω・) <ステンバーイ
  ○={=}〇
   |:::::::::\
、、、、し 、、、(((.@)5.3 35.4 36.3
483デフォルトの名無しさん:2014/07/13(日) 09:53:26.77 ID:yLlLSvPV
a*b=c
cが分かるときaとbの組み合わせを全て求めよ
484デフォルトの名無しさん:2014/07/13(日) 11:32:51.30 ID:oUim7CZz
やだ
485デフォルトの名無しさん:2014/07/13(日) 12:29:30.76 ID:zSV3XHBM
同じく
実数なら無限個のペアあるし
486デフォルトの名無しさん:2014/07/13(日) 12:32:00.22 ID:98eeNzbJ
整数限定でも約数を列挙するのと同じだしね
487デフォルトの名無しさん:2014/07/13(日) 12:35:53.18 ID:V0uAqOsf
無理数、複素数も混ぜてあげて
488デフォルトの名無しさん:2014/07/13(日) 12:40:13.61 ID:6sD1pyHJ
わーい!3Pだね
前から後ろから
489デフォルトの名無しさん:2014/07/13(日) 15:16:56.57 ID:OfL9oG5/
問題:小町算 http://peace.2ch.net/test/read.cgi/tech/1313183984/219
加算・減算だけ試してみた例:http://ideone.com/PINwx

>>453
もう少し問題を検討すれば面白いものだったかもね
490デフォルトの名無しさん:2014/07/13(日) 15:41:28.25 ID:ktOqAI16
>>488
四元数をお忘れかな?
491デフォルトの名無しさん:2014/07/13(日) 18:21:29.28 ID:2/vm2xCB
この3*3、4*4、5*5、6*6の先後どちらが必勝かもとめる。


タイル・ゲームの紹介
3x3(あるいは4x4など)の盤上で遊ぶゲームです。

(1) 先に連絡すれば勝ち
盤面の空いたところに交互に自分の色のタイルを置き、向かい合った自分の辺と辺を、先に連絡した方が勝ちです。
「連絡する」とは、タイルの辺が縦・横に接した状態にすることです。斜めに並んでいても連絡したことになりません。

これは□が連絡しています。(□の勝ち)
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help01.png

これは■が連絡しています。(■の勝ち)
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help02.png

この■は連絡したことになりません。斜めはダメ。
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help03.png

(2) 「切り違え」ると、相手のタイルを取り除く

□が★の場所に、斜めに並んだ相手のタイルを切るように打つ(切り違える)と、■の2枚は盤上から取り除かれます。
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help04.png
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help04.png

この場合、□が★の場所に打つと、3枚の■が除かれます。
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help/tilegame_help05.png

(3) パスはできない
http://www2u.biglobe.ne.jp/~shunbook/omocha/tilegame_help.htm
492デフォルトの名無しさん:2014/07/13(日) 18:27:45.64 ID:gE/LTmAc
直リンしねよカス
493デフォルトの名無しさん:2014/07/14(月) 01:08:12.99 ID:IlNIyuqu
直リンするなってまだ言ってる人居るの
494デフォルトの名無しさん:2014/07/14(月) 01:11:54.38 ID:aONiiMtw
語尾に?つけてほしい
495デフォルトの名無しさん:2014/07/14(月) 01:34:05.10 ID:NObUc+/C
直リンはマナー違反
496デフォルトの名無しさん:2014/07/14(月) 07:45:09.84 ID:GNzEXKnI
素材の無断使用でないし(作者ページのリンクも貼ってる)、
ウェブブラウザ開いたら自動で画像がロードされるわけでもない。
どういったマナーに抵触するんだ。
497デフォルトの名無しさん:2014/07/14(月) 07:52:28.22 ID:IlNIyuqu
個人ウェブサイト時代の残留思念がだな…
498デフォルトの名無しさん:2014/07/14(月) 08:35:40.41 ID:v6rlvCBe
かまってチャンのネタでしょ。放置推奨。
499デフォルトの名無しさん:2014/07/14(月) 11:21:46.56 ID:kZuhMpyl
ゆとり世代はなんでもありだな
500デフォルトの名無しさん:2014/07/14(月) 12:29:44.25 ID:GDE1GNrp
問題文が公開されているページがあるならそのページを貼ればいいのでわざわざに転載する必要もないわな
501デフォルトの名無しさん:2014/07/14(月) 14:06:42.48 ID:qMOjTsVj
盗作に興味なし
次の問題はよ
502片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/07/14(月) 14:54:45.87 ID:BcwFLIWO
お題:幅x[cm]高さy[cm]の長方形の内部に
z[cm]×w[cm]の長方形をできるだけ多く敷き詰める。
敷き詰められる長方形の個数の最大値を求めよ。
503デフォルトの名無しさん:2014/07/14(月) 17:26:52.10 ID:0IODtz6F
x*y/2
504デフォルトの名無しさん:2014/07/14(月) 18:07:24.19 ID:sUkwPb8A
>>503
全て整数なら、X*Y
実数なら、無限。
505デフォルトの名無しさん:2014/07/14(月) 18:16:36.10 ID:0IODtz6F
x*yだと正方形も含まれるよ
506デフォルトの名無しさん:2014/07/14(月) 19:06:25.78 ID:EEvf9Gev
wiki
長方形(ちょうほうけい)、矩形(くけい)(英: rectangle)は、4つの角がすべて等しい四角形である。4つの角はすべて直角となる。
この定義により、長方形の向かい合う2辺は長さが等しくなる。
すなわち、長方形は平行四辺形である。
正方形は長方形の特殊な形で、4つの辺がすべて等しい長さの四角形である。
つまり、正方形は長方形であり菱形である。
口語で長方形といえば正方形ではない長方形を指すことが多い。
507片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/07/14(月) 20:49:39.26 ID:BcwFLIWO
お題:実数xで割り切れる数のうち、実数y以上の最小値をg(x,y)と表す。
xとyが与えられたとき、g(x,y)を求めるプログラムを作れ。
508デフォルトの名無しさん:2014/07/14(月) 21:16:27.42 ID:n4kA1gB9
一行で書けるけど
普通にやったら負数がどうとか正確な実数じゃないとか
しょーもないことごちゃごちゃ言うんだろ
騙されないぞ
509片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/07/14(月) 21:33:25.90 ID:BcwFLIWO
実数が負の数を含んでいるのは自明。何を言っているんだ?
510デフォルトの名無しさん:2014/07/14(月) 22:22:40.24 ID:PJHN9zyW
>>507 Python
from decimal import *
def g(x,y):
  x,y = map(Decimal,(x,y))
  z = int(y/x)*x
  if z < y:
    z += abs(x)
  print "x={}, y={} -> {}".format(x,y,z)
  return z

g("1.1","3.14")
g("1.1","-3.14")
g("-1.1","3.14")
g("-1.1","-3.14")
---
x=1.1, y=3.14 -> 3.3
x=1.1, y=-3.14 -> -2.2
x=-1.1, y=3.14 -> 3.3
x=-1.1, y=-3.14 -> -2.2
511デフォルトの名無しさん:2014/07/14(月) 22:55:32.88 ID:5duasKc4
>>507
実数の世界観と整数の世界観が妙に交じり合って気持ちが悪いんだが‥
512デフォルトの名無しさん:2014/07/14(月) 23:31:08.99 ID:VFiVEdln
>>507
xとyを取って、yを返す関数?
513デフォルトの名無しさん:2014/07/14(月) 23:47:54.79 ID:caGHL+SV
>>507
実数で割り切れるってどういうこと?
無限小数にならないってことか?
514デフォルトの名無しさん:2014/07/14(月) 23:59:00.24 ID:5duasKc4
>>491
「切り違え」の定義が難しいきがする
515デフォルトの名無しさん:2014/07/15(火) 01:38:54.79 ID:NrEcFehV
>>496
迷惑なのでもうやめろ
516 ◆0qAv26otVI :2014/07/15(火) 01:48:31.22 ID:70z77viJ
n個の埴輪をm個入りの蔵に全て入れるには蔵を少なくとも幾つ用意すればよいか?
nは0または自然数、mは自然数とする。
nがmで割り切れるかどうかを調べる関数を使え!
10 3 -> 4
517デフォルトの名無しさん:2014/07/15(火) 02:43:05.88 ID:adxF9Nhd
C言語の入門書が終わったのですが
中身を完璧には覚えていないです。
何度も読むよりかは何かを作るか
もう一段階上げた本を読んだほうがいいでしょうか?
518デフォルトの名無しさん:2014/07/15(火) 02:48:11.18 ID:oHpwW4pa
>>517
> 何かを作るか

こっちに一票
519デフォルトの名無しさん:2014/07/15(火) 03:19:04.41 ID:1i78TI8o
ていうか、あまりにもスレチ
俺がいうんだからそうとうなスレチ
520 ◆0qAv26otVI :2014/07/15(火) 11:10:54.44 ID:70z77viJ
お題: nをmで割って余りを切り上げる関数を作れ!
n個の埴輪をm個入りの蔵に全て入れるには蔵を少なくとも幾つ用意すればよいか?
nは0または自然数、mは自然数とする。
10 3 -> 4
521デフォルトの名無しさん:2014/07/15(火) 11:41:12.14 ID:Wc/hF9eS
return (n + m - 1) / m;
522デフォルトの名無しさん:2014/07/15(火) 12:31:00.74 ID:YWdU6hVJ
あーあ、クソ問題連発君に解答しちゃったよこの人
523デフォルトの名無しさん:2014/07/15(火) 20:40:51.99 ID:9hHqcu7I
裏庭に埴輪取りが
524 ◆0qAv26otVI :2014/07/15(火) 22:43:34.70 ID:70z77viJ
>>507 thx>>521
if( y != (z = int(y/x)*x)) if(z >= 0) return z+abs(x);
return z;

他人の指摘するのはいいかどうかわからないけど。
>>510
// if( y > (z = int(y/x)*x)) return z+abs(x);
// return z;
0.14 1.1 -> 1.1
525片山博文MZ悪魔崇拝 ◆T6xkBnTXz7B0 :2014/07/17(木) 21:54:30.22 ID:NnUGLSxr
お題:バイトごとに固定値とのXORでバイナリが暗号化される。正しい
バイナリを引数として指定するとtrueを返すような関数examがある。
正しいバイナリを暗号化した後、examを使って暗号化されたバイナ
リを解読するプログラムを作れ。正しいバイナリは{0x20,0x11,0x03,0x11}とし、
暗号化に使う固定値はプログラムの起動時にランダムに選ぶものとする。
526デフォルトの名無しさん:2014/07/17(木) 22:48:41.72 ID:PzVhwRo+
   |=番兵|_
  ( ・ω・) <ステンバーイ
  ○={=}〇
   |:::::::::\
、b、eし 、、、(((.@)nesse 7,600,000
527デフォルトの名無しさん:2014/07/18(金) 07:46:25.61 ID:hD5lgyjz
お題:引数に1を足した値を返すカメ関数と引数に2を掛けた値を返すウサギ関数を
使って自然数mを自然数nにする(m<n)。この時、ふたつの関数の使用回数の合計の
最小値を求める。

m=3, n=10 -> 3
m=3, n=95 -> 10
m=666, n=2014 -> 342
528デフォルトの名無しさん:2014/07/18(金) 11:04:38.51 ID:x9tj4BSU
Hello Worldを次の条件に従って出力せよ

・文字H,e,l,o,W,r,dの使用禁止
・1つ以上のクラス、3つ以上のメソッドを使うこと
529デフォルトの名無しさん:2014/07/18(金) 11:37:19.76 ID:gVBZQHXV
やめてください!クラスとメソッドがない言語だってあるんですよ!
530デフォルトの名無しさん:2014/07/18(金) 12:06:28.34 ID:YVo5FHQe
C++だとincludeでldeが引っかかるしreturn/char/void/cout/cerr/clog/iostream/printfも使用不能か。
プロトタイプ宣言自力でやってputsをint引数扱いで使うとかになりそうだな。大変そう(やる気はない)
C++標準ライブラリを自力宣言とか色々めんどくさそう…というかputsもextern "C" がrで駄目だった。
531デフォルトの名無しさん:2014/07/18(金) 12:11:47.55 ID:47agln0f
532デフォルトの名無しさん