ニュースの時間です。
最近、問題の出題者が是非を問わず失踪する事件が相次いでおり続報が待たれます。
それではおやすみなさい。
破問失踪
前スレの問題
abc
c
abd
?
abe
b
ae?
a
???
これはある規則に沿って表示されている
?の部分の文字を埋めよ
回答
abc ←スタート
c ← 直前の文字列からcを引く
abd ←お尻にcの次の文字が追加する
d ←dを引く
abe ←dの次の文字のeをお尻に追加する
b ←bを引く
aec ←bが引かれてeが繰り上がり、bの次の文字cをお尻に追加する
a
ecb
アルファベットの小文字から成り立つ、文字列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の組み合わせを全て求めよ
あ、まって書きなおす
>>5-6 俺解けなかったけど、あんたはいい出題者だ。またなんか考えてもってきて〜。
文句言うなら。パターン認識するために、お膳立てをもうちょっとしてほしかったかな。
さて、睡眠継続〜。
アルファベットの小文字から成り立つ、文字列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つ求めよ
N(0<N<10000)は2で割り切れる整数である
1からNまでの整数を右回りの渦巻きで出力せよ
標準入力から以下の形式で与えられる
N
(例)
[input]
9
[result]
1 2 3
8 9 4
7 6 5
訂正
N(0<N<10000)は2で"割り切れない"整数である
1からNまでの整数を右回りの渦巻きで出力せよ
標準入力から以下の形式で与えられる
N
(例)
[input]
9
[result]
1 2 3
8 9 4
7 6 5
Nが整数の二乗じゃない場合が謎だね
k==Nはとてもじゃないが計算できないので打ち切り。うちのアトムじゃ不適当だな。
TimeUsing:357Min@31905732CountCalced
見つかったかどうかはわからん。かーたーつーむーりー。
Helloを一番短いコードで出力しろ
お題を出してコードを投稿する海外のサイトってない?
コードゴルフに特化してないのがいいんだけどない?
前スレ
>>973 筆算
______
237)18472...
をやりながらコードを見るんだ
>>22 あのでかい数筆算するんか。精度的に自信ない。
筆算なんか十何年やってないからねぇ。Orz
>>15 寝不足とサイオン足りないので今日はパスするかも。
NをSqrtしてX^2あまりYでいいよね。適当だけど。
Sqrt重たいのわかるけどこの問題ならアリかなと思う。
>>1 おっ
>>5 たとえばabcの次にcが来る理由を考えてた。
問題文をよく読め。
地球の周りを3つの衛星が回っています
衛星Aは1時間23分かけて地球一周できます
衛星Bは3時間9分かけて地球一周できます
衛星Cは5時間45かけて地球一周できます
衛星は同じ位置にくると自動的によけてくれるので衝突して故障することはありません。速度も一定に移動します。
衛星Aは60度の位置、衛星Bは192度の位置、衛星Cは265の位置からスタートする。
3つの衛星が同じ位置に重なりあうのは何時間後か求めて出力せよ。また、重なりあうまで何周したかそれぞれ出力せよ。
>>26 仮に円軌道かつ赤道面上を周回するとしても、それでも、人工衛星の周回軌道は高度と一対一に結びついている
なんだか非常に無理のある設定だ、というか「衛星は同じ位置にくると自動的によけてくれるので衝突して故障することはありません」はいらない文
誰の出題だ?
>>28 全ての衛星は赤道上を回る高度の違う衛星です、とかでいいだろというか、
角度合わせないと重ならないよな…出題者は1次元で考えてんだろうけど。
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
宝石店のアルバイト(a1...a5)と客(k1...k5)が各5人います。
宝石店には輪になったカウンターがあり、そこに客は座っています。
宝石店には10個の色が異なる宝石(h1...h10)があります。
1人の客に一度に見せられる宝石は2つまでで、5人同時に異なる宝石を見せます。
一度見た宝石を2度も見せることはしません。
ただし、客に見せた2つの宝石のうちの1個はとなりの客に見せます。
例)k3の隣はk2とk4, k5の隣はk4とk1
全ての客に全ての宝石を見せ終わるまで何回かかるか調査しなさい。
>>32 組み合わせの問題苦手だけど、これだったら10回あれば回せないか?9回かもな。
普通に一周させて4回目で右と左をスワップしてもう一周と思ったけど、
これ、一回一個を2周させるより早い手順ある?2個必ず見せるとは書いてない。
うーん。
っていうか、一回に両方を右回りと左回り一周すれば、全部見たことになるんじゃないか?
一個はなので二個でもおk?
>>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)
片山MZすごいじゃん
今日の窓の杜に日本語で計算させるソフトが載ってる
標準入力から与えられたフォーマットを元に年齢を求めて出力せよ
標準入力から以下の形式で与えられます
YYYY/MM/dd
年齢は誕生日の前日に歳を重ねることに注意せよ。4/1生まれの場合は3/31に歳が増えることになる。
-1を返して
4/1の午前0時生まれは、次の年の4/1の午前0時にならないと満一年にならないけど
>>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
3月31日が終わった時点で年が増える。時刻は関係ない。
4/1生まれの人は4/2の人と同じ学年にはならない
1から10000000000000000000000000000000000000000000000000000000000000000000までの和を求めよ
言語に実装された和を求める為の関数やライブラリの使用は禁止とする
書く人はいないと思うけどループで1から順に足していくのは10点
問題の意図がよくわからない
先頭と末尾を足して、個数掛けて、2で割る。
高2レベルの数学の基本。
anが偶数の時
(a1 + an ) * (an / 2)
以外の答えを求めてるの?
意図が分からん
バカには無理
>>51 これは二つの点で良くない
ひとつめ
結果を得るための計算としては有効であるが
そのように計算可能となるアルゴリズムが直接的に表現されていない
ふたつめ
不要な大きな数の計算をする事になる
数学とプログラミングはイコールではないし
計算とアルゴリズムもイコールではない
高校数学!話にならん話
昔、1からnまでの和を簡単に計算する方法として読んだな、小学生向けの本だったぞ
んーアルゴリズムとしてなら、1と10の計算として扱って、残りの0の個数で調整する。
わからない人はまず1から10までの和を求めるところから練習すればいいよ
桁を大きくしたのはループを使わないでほしい意味を込めた優しさのつもりだったんだけどね
An/2 + An**2/2 てことで
>>56 n(n+1)/2で求めるのも立派なアルゴリズムなんだけど?
65 :
デフォルトの名無しさん:2014/06/19(木) 18:56:35.57 ID:fgOwoOKT
いかに速く計算できるかしかこだわる点はないだろ。
多桁だから少しは工夫できる。
条件は
>>48 > 言語に実装された和を求める為の関数やライブラリの使用は禁止とする
なので、
・n(n+1)/2 はok
・多倍長整数計算を実装せよ
って意図では
多倍長実装するの大変なのでパス。@逆襲してた人。
っていうか、多倍長理解してないんだよな。だから無理。
68 :
デフォルトの名無しさん:2014/06/19(木) 20:03:04.89 ID:fgOwoOKT
多桁は多項式計算の実装すればいいんだ。
>>68 そうだけど、Ideonで証明できないからなぁ。
すまんけど、ちょっとつまらん。
>>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
[:-1] ←顔っぽい
>>48 入力された値の総和を求めるプログラムじゃなくて固定値なんだから・・・
1から10なら55、1から100なら5050,1から1000なら500500なわけだ
つまり、ゼロの数をxとして
5を出力、改行せずにゼロをx-1回出力、5を出力、改行せずにゼロをx-1回出力、改行
ってな感じでやったら石投げられるかなwww
ttp://codepad.org/G7rWZhu4
>>72
その結果あってるのか?
49999999999999999136838789195927991586198914377904661392885735751680000000000000000000000000000000000000000000000000000000000000000000
>>48 > 言語に実装された和を求める為の関数やライブラリの使用は禁止とする
足し算から定義するか・・・そのためにまず自然数から定義してっと・・・
>>73 その怪しい解をおかしいと思わないあなたが心配です。。。
76 :
デフォルトの名無しさん:2014/06/20(金) 00:02:20.04 ID:MNvGdz/i
例えば
(10000+1)*10000/2
=(10000+1)*5000
=10000*5000 + 5000
だからな。
>>48は自然数の和の公式でいけるんじゃないの?
((10000000000000000000000000000000000000000000000000000000000000000000)+(10000000000000000000000000000000000000000000000000000000000000000001))/2
間違えた
((10000000000000000000000000000000000000000000000000000000000000000000)*(10000000000000000000000000000000000000000000000000000000000000000001))/2
1〜nまでの和は n*(n+1)/2
お題:0から9のうち8種類の数字を使って4桁の10進数を2個つくり、その積をとると
4桁の2個の数に使用した8種類の数字はひとつも現れなかった。
この4桁の2個の10進数を求める。
既出
>>81 確認だけど積は2種類の数字からなるってこと?
87 :
デフォルトの名無しさん:2014/06/20(金) 02:17:34.18 ID:MNvGdz/i
そういうことになるな。
4つ+4つを選んで、掛け算したあとの下位1桁目のあり得るパターンから探してくとかか?
javascriptでfizz buzzを書け
禁止ワード: false true if % !
>>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
下2桁同士の掛け算で積の下2桁も決まるから
そこで異なる数字が出たら上2桁を縛れる
ちなみに下一桁は
奇奇・偶偶がそれぞれ3通り
奇偶が4*4の16通り 計22通りだと思う
>>89 つまり最終的に1組しかないのね
>>91 俺、なんか間違ってる?
余計な計算してるだけだったら、解説頼む。
4桁*4桁はそういえば一組か。
0もちゃんと扱えないとなーと思って3ケタも混ぜたんだが。
>>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倍くらい速くなった
ああ、1789 x 2345 が答えの可能性もあるので
>>95は間違い
>>89 うちのi7では0.76s
exeやvectorがL3キャッシュに乗ると滅茶苦茶速くなるんじゃね
>>93 こちらは31ms
chrono便利だな
>>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ブラウザ併用推奨
>>89 ってもしかして最適化一切してないんじゃね?
Debugのままで実行してたりとか
?.#########.########
......#####.....####
..##.######.########
#.##.###.....##...##
#....###.##......###
#.##.###.##.##?#####
####.....#.......###
##########..########
左上の?の位置から右下の?までの最短距離と再長距離を求めよ
訂正
?.#########.########
......#####.....####
..##..#####.###.####
#.##.###.....##...##
#....###.##.......##
#.##.###.##.##?##.##
#........#.........#
##########..####...#
左上の?の位置から右下の?までの最短距離と再長距離を求めよ
最短 距離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#
>>98 なるほど、そうですね。
>>93の
http://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
>>100 VCリリースです。しかし、CPUがATOMだ!!Orz
それで2時間かかるの?
うちだとlinuxで、g++コンパイラに最適化の-O3とC++11コンパイルするための
-std=c++11オプションを付けただけだけど、3.6秒で計算終わる。-O0でも12.0秒。
え?アトムで??
いや、アトムBTだからさ、CORE2の7割しかシングル性能でないんですよ。
今の最新と比べるべくもない。環境はVSドノーマルなんだけどね。
ああ、ごめん。celeronM1.86GHzなので同じくらいだと思って
どんなもんやろうね。
ブーストして2.4Ghzくらいまで上がるけどアーキテクチャがあれ何でね。
コンパイラの最適化もこっち向けじゃないのもあると思う。むー。
>>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
お題:文字列Aを1回以上繰り返した文字列Bが与えられたとき
文字列Aを求める。ただしAの候補が複数ある場合は最短のものとする。
例
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> a
123412312341231234123123412312341231234123 -> 1234123
oxoxoxoxoxoxoxoxxoxoxoxoxoxoxoxoxx -> oxoxoxoxoxoxoxoxx
繰り返しがなかった時に元の文字列を返すように修正した
いや、そもそも2回だけ連続してる場合しか考慮されてないな……
>>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)
>>114 http://ideone.com/jmDmeB ほぼC。環境変わってちょっと頭がおバカになってしまったので問題を解くことを最優先した。
あってるかな?でもいろいろバグがあると思う。とりあえず、動いてるようにみえるだけと・・・。Orz
もしかしたらこの条件なら尻尾から検索した方が効率いいかもなー???と思った。
>>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
>>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 ここはどんなバットで打ってもいいのです
お題:ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。
例
110, 119 -> 2
1234, 214 -> 2
567, 23 -> 0
while (a && b) でええやん
>>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)
>>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,_個数).
139 :
138:2014/06/24(火) 08:10:25.14 ID:+d9rugo5
>>138 % 間違えた。
ふたつの整数をふたつの数字文字列に変換(_数_1,_数_2,_数字文字列_1,_数字文字列_2) :-
atom_number(_数字文字列_1,_数_1),
atom_number(_数字文字列_2,_数_2).
% でした。第一引数の _数文字列_1 と _数文字列_2 は間違いです。
>>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,_個数).
hit & brow 思い出すな
>>132 J
f =: [: +/ [: =/ ":@,:
110 f 119
2
1234 f 214
2
2142112322 f 1111111111
3
>>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
>>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)))
+?++++++?+++++++?+++
+++?++?+++++++?++?++
+++++++?++++?+++++++
?++?+++++++???++++?+
+?++++++?++++?++++++
++++?+++++?+++++?++?
+++?+++++?++?++++++?
+?+++?+++++?+++?++++
++++?+++++?+++++++++
?+?++++?+++++?++++?+
同じ道を通らずに全ての ? を通過する最短経路を求めよ
開始地点は+ 終了地点は?であればスタートとゴールは自由に決めて良い
20分以内に解ければSランク
勉強家で最速7分で解け他人あり
空白は壁
>>149 たとえばねー。
お題:ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。
ただし、
・不同順ok
・2つの整数の桁数は少ない方に合わせる。合わせた時の多い方の末尾は削除される。
・同じ数字が続く場合の処理は、ほげほげ。(書いてないから知らんよ。)
等々。
例
110, 119 -> 2
1234, 214 -> 2
567, 23 -> 0
といった感じで、但し書きをすることで条件をちゃんと絞ってほしいんだよ。
こういうのは、自己参照ちゃんとできないとできないんだけどね。
もしくは、テストケースを凝ったものにして、こけやすいデータがほしい。
>>149 整数だから、剰余の絶対値でないとうまく行かない筈だけれど、例だけ見ていると、そんなことが窺えないということかな。
>>155 じゃー、マネしなくてもいいけど、バグってても出題者の自己責任ね。
>>157 3つの例で桁の定義問題は解決しているように思えるが。
>>158 俺バカだからわからなかったんだよ。
質問したけど無視されたし。
コード書き始めて割り切っていってやっと理解したような気がしたんだけどねぇ。
設計時さっぱりだった。
こうやって馬鹿の相手はしてられんと逃げられる。Orz
>>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
];
>>158 俺、
>>148で2パターン書いたけど、どっちが正解っていえるか?または間違いを指摘できるか?
333,233 -> 3 がわかりません。
11,110 -> 2 とかなら、ああ左から比較するんだなとか。
>>164 でしょ。情報が圧倒的に足りない。
こういう仕様のいざこざはむっかしから絶えないんだよね。
「桁」って言ってるから、必要十分だと思う。
それが数学というより一般的な「桁」という用語。
何「番目」とかなら、左からとか右からという話になる。
何も言わずに回答している人たちは当然桁という言葉を当然のように踏まえて受け取っている。
>>166 じゃー、例2の解法を言葉で説明してほしいなぁ。できたら全力で誤る。
1桁目と3桁目が一致しているから2
1桁目は、1と2で、3桁目は3と1じゃないか?それとも二個目の数字の前に一桁あるのか?
>>170 空白は壁って言ってたから、末尾はデータ調整のために空白入れました。
それ以外はこのスレからのコピペです。
1234,214 -> 2
169
>>1桁目は、1と2で、3桁目は3と4じゃないか?それとも二個目の数字の前に一桁あるのか?
合ってるか?
>>173 多分
>>132 のコピーをし間違えているのだと思うけれど、
> お題:ふたつの整数が与えられたとき、数字が一致している桁の個数を求める。
> 例
> 110, 119 -> 2
> 1234, 214 -> 2
> 567, 23 -> 0
例の2
1234
214
^ ^
| |
| 1の 桁
|
100の桁
この二桁だけが同じ数字だから -> 2
1234
214
ちがってるか?
178 :
176:2014/06/24(火) 23:11:22.97 ID:+d9rugo5
>>176 スペースを入れ損なった。失敗。すみません、無視してください。
自分も
>>132わかりにくいと思った
こういう場合もっと例が何パターンかないとね
>>176 N番目まで厳密に規定してなくて並びが同じものを探す話?
1234.
214.
1桁目を左から数えないという命題が俺には見つからん。
あ!やーっと理解した。
これ、分割した数字を右から左に精査するんか。
>>177 例2が意味するところは、
1) 1の桁と100の桁が4と2で揃っているから-->2
2) 上位桁から揃えるルールではない。それだと-->0 となるはず。
3) 桁の小さい方の整数を自由に移動できるルールだとしたら答えは 0または2になるが、
-->2と答えているから、自由に移動できるルールではない。
つ位
1桁目=一の位
2桁目=十の位
3桁目=百の位
PG脳だから、1234分割したら1がIndex=0だわ。
これはすまんかった。算数だったな。根本的に失念していた。
俺のミスだわ。本当にごめんなさい。
しばらく反省するために書くのやめるか。
なんてこった。こんな基本的なこと忘れてるなんて。あいたたたたた。
どう誤ればいいのかよくわからんけど、ほんとにすまんかった。
ってわけで、コードはめちゃくちゃ間違ってマース。
なぜ動いてるのかもわかりませーん。たまたま答えだけ合わせました。
ってことになるな。アー怖い。
それはともかく、
-1112,110 などがほとんど解答は上手く行かないのではないか。
誤る→謝る
191 :
189:2014/06/24(火) 23:32:35.09 ID:+d9rugo5
「ほとんどの解答は」ですね。
>>179 そうかー?むしろ例は必要十分じゃね
>>132は問題文にちょっと不備があるけど、例で補えてると思うけどな
「数字が一致している桁の個数を求める」じゃなくて
「同じ位同士の数字を比較し、一致している個数を求める」
とかだったら例がなくても解けそう。
>>189 俺のuint64_tなので、裏返って何億とかの数字になっちゃうー。
>>186 今回の件で、どちらかというと認識が特殊な状態に陥ってたのは君の方だったね。
(相手が特殊と考えるより自分が先に特殊ではないのかと疑う)謙虚な態度でいた方が、一旦陥った罠から脱出はしやすいと思う。
IQテストとかだと、君のようにこういう「桁」という言葉の常識に囚われない見方も、大切ではある。
23:45に投稿するので構えてて
一番早く正解できるのは誰かな
>>194 うん、ごめんね。
プログラムやってると、常識がうっとおしくなって忘却しちゃったんだよ。
それでうまくいってたしなぁ。うーん。こんな罠が・・・。Orz
気を付けてたはずなのに。うーむ。
いい経験になった。あいたたたたた・・・。
アルファベットの小文字aからzで成り立つS(0≦S≦100)が標準入力から与えられる。
例に沿って連続する文字をカウントするプログラムを作成せよ。
出力の最後に改行を挿入すること。
標準入力から以下の形式で与えられる。
S
例)
In:
aaaaaaaaaabbbbbbbbbbbbcccccccddddddddddeeeeeeefffffffffghiiiiiiiii
Out:
a10b12c7d10e7f9ghi9
In:
Out:
0
さらにいうと、
>>132は数字の比較を求めていて、
-123,-3423 の場合、剰余数が -2 と -2、-3 と -3 で --> 2 となるのでも間違ってはいないが、
何か仕様と遠い気がする。 -2 と 数字の'2'は同じものではない。
In:
abcddd
Out:
abcd3
似た問題がAtCoderでも出たから余裕かな
第2問:2つの整数が与えられたとき、桁数が同じ場合を求める。 指数関数は使わないこと。
例:
110, 119 -> T
-110, -119 -> T
-110, 119 -> F
1234, 214 -> F
567, 23 -> F
567, -23 -> F
文字列としての長さと富豪の有無を確認するだけ
>>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(_文字列,_連続文字数).
209 :
208:2014/06/25(水) 07:51:38.73 ID:5ZruJZzN
>>203 Prolog
'2つの整数が与えられたとき、桁数が同じ場合を求める。 指数関数は使わないこと。'(_整数_1,_整数_2) :-
number_chars(_整数_1,_数字ならび_1),
number_chars(_整数_2,_数字ならび_2),
length(_数字ならび_1,_桁数),
length(_数字ならび_2,_桁数).
>>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
212 :
132:2014/06/25(水) 09:30:08.51 ID:8w+cRTmX
負の数については考えていなかったので整数ではなく自然数に変えさせてください。
それから
>>203は別の人の出題です。
214 :
デフォルトの名無しさん:2014/06/25(水) 12:27:10.04 ID:8w+cRTmX
>>197 J
f=:[:;('1'-.~":)(L:0)@(~. (;"_1) (#/.)~)
echo f stdin''
f'aassd'
a2s2d
215 :
207: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',[_出力文字列]).
% が正しい。
平面上に二つの長方形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
情報ありがとうございます。でもちょっと難しそうですね。
長方形の場合に限定して、誰かプログラム作ってください。
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;
}
>>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も同様に求める。
>>197 @Mathematica
countSerialCharacter[s_]:=s//
Characters//
Tally//
Flatten//
Map[If[#==1,"",#]&,#]&//
Map[ToString,#]&//
StringJoin//
#<>"\n"&;
>>217 関係ないけど「凸多角形」をみると凸という字は凸多角形じゃないと思ってしまう
>>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)])
お題:自然数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.
>>219 有難うございました。
たいへん感謝しております。さっそく利用させて頂きます。
>>220 解説ありがとうございました。理解できました。
皆さん頭いいですね。
>>226 x0<=x1かつy0<=y1を前提にしていますのでご注意を。
≧とか≦ってかけよ機種依存文字じゃないんだぞ
実際のコーディングには使えないじゃんか
>>231 ちゃんと理由も書かずにそんなことを言う方がひどい
>>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 とってもわかりやすく美しいコーディングだな
ここでは解が一個だから結果してよいのだが、その保証はどのように得るのかな。
241 :
224:2014/06/27(金) 12:00:59.02 ID:WBIkvaOn
>>239 >>224 複数解の可能性はありますね。
後追いですが、複数解の場合はnの最大値としてください。
>>240 まあ、超初心者だし
Schemeぽくかくとどうなるの?
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
その言語で一番短いコードを書いた奴が勝ち
俺は反対
ていうか、俺は勉強中だし短く書かない
考えてみたけど、「3 2」と「2 3」から発展させることが俺には無理だwww
247 :
デフォルトの名無しさん:2014/06/27(金) 14:13:23.67 ID:IIJLJhWZ
発展どころか規則がさっぱりわからない
「出力例から仕様を推測せよ」というお題は苦手
規則は解った、コーディングしてくる
そもそもLが(100≦L≦100)を満たしてないよね?
func(S L)で
規則1 一つのブロックの長さはS
規則2 一列の長さはS*L
規則3 げ・・わからなくなった
>>249 そこは(1≦L≦100)の間違いだろ(と見なした)
寝る
>>250 単純に考えても上手くいかないよねぇ
AとBとかじゃなくて、SとLにしたことに何か意味があるのかとか考えてるけど思いつかないwww
small/largeじゃね?
>>242 ループカウンタなどを累積引数として関数の引数に追加すれば、破壊的代入を使わずに末尾再帰できる
そもそもループを破壊的代入を使って表現する必要があるのは
末尾再帰最適化が仕様にないCommonLispやEmacsLispで
それらもループマクロとして表現しているので破壊的代入は隠蔽されている
http://ideone.com/aSVmkC
>>243はL(1≦L≦100)のミス
某コードゴルフの英文を和訳しただけだからできない奴がレベルが低いんだお
ここってクイズスレ?
出題に対していくつも間違っていない回答例が出るけど正解は出題者の回答だけって。
言い訳はするな見苦しいぞ
2番めの例だけ訂正
例
3 2
oooxxx
oooxxx
oooxxx
xxxooo
xxxooo
xxxooo
2 3
ooxxoo
ooxxoo
xxooxx
xxooxx
ooxxoo
ooxxoo
1 1
o
2 1
oo
>>260
それなら解けるわアホwwww
ID:gfNg5K0F が見苦しいわwww
>>260 > 2 1
> oo
解く気ないけどこれあってる?
あってる
>>260 ゲゲゲ!!!!
出題みすだらけ!
ちゃんと見直してほしい
267 :
デフォルトの名無しさん:2014/06/27(金) 16:48:22.91 ID:hZLtHGAA
>>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
>>268 S=2 L=1がちがうんだあ
うーむ、ねる
>>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
すまない気づかなかった例を訂正
2 1
oo
oo
>>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
>>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 もう、ド底辺ドカタの発想やめてくんない?
土方じゃなくてゴルファーだよ
>>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;
}
>>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]&
];
>>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
double val(double a){
return (long int)a *10;
}
-------------------
void swap(int *p, *q){
int tmp;
temp = *p;
*p = *q;
*q = temp;
return
}
下の、ポインタのやつは分かるんですが、上のやつはポインタ使ってないのに
値を返すのは、どうしてですか?
>>284 大きな構造体を返す関数を書いてコンパイルしてデバッグしてみなよ
面白いコード吐くから
1)(上の)は、ポインタ使をわないで値を返すために return 戻り値;と書く。
戻り値の変数型 関数名(){}
1. doubleなのに(long int)
2. tmpなのかtempなのか
3.returnのあとに;をつけましょう
4.こんなもんにはつられんぞ
そのページに答え書いてあるけど
いや、別にそういう意味で聞いたんじゃないんだけど…
>>291 訂正
+ #define N (8 * sizeof(int))
- #define N sizeof(int)
>>291 確かにオーバーフローしたらうまくいかないけど、
このあたりは問題文の記述が不足している感じがする。
C言語としても未定義だし
>>【前提】
>>扱う数値は全てNビットの整数
だけでは符合無しのNビットの数とも読めるし
オーバーフロー対策
int a = ((y - x) & (~x ^ y) | (~x & y)) >> (N - 1); // (x > y) ? -1 : 0
int z = y ^ ((x ^ y) & a);
1から481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447580までの総和を求めよ
見やすさなんてしらねえよ、一番短いコードを書いた奴が海賊王だ
>>295 Perl
use 5.18.2;
use bigint;
my $last = 481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447580;
say (++$last) * $last / 2;
結果:481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447581
say ($last + 1) * $last / 2;
>>296 失敗、sayのバカ!
use 5.18.2;
use bigint;
my $last = 481026574172857371038510295691740138639173281038463829385710488361648301846283405837618447580;
say ((++$last) * $last / 2);
結果:
115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579815724530711698507413079937558286807046061562081164567035924479985814641465025169002222375780
>>297>>298 つうか何もカッコ付けない方が良かったぽい
say ++$last * $last / 2;
お題:与えられた数値列の数字を先頭から順に使って数列を作り、隣り合う数の「差の二乗」の合計が最大になるような分割を求めよ。
例: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が答え。
>>298 7580*(7580+1)/2 = 28731990
下4桁は 1990 じゃね?
>>300 訂正します。
1,23 ---> 22*22 ---> 484
1,2,3 ---> 1*1+1*1 --> 2
12,3 ---> 9*9 ---> 81
です。
>>295 115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579575211243625269821893824789712416737726474921561932652343069235804990490541883466083413151990
>>301 なんでだろう?
Perlのバグ?
インクリメント止めたら
say (($last + 1) * $last / 2);
115693282530237726996241264961497327958334893787747058587669519509857499867560577962302701579575211243625269821893824789712416737726474921561932652343069235804990490541883466083413151990
になった。
bigintでインクリメントは使っては駄目なんだろうか?
ちょっとでもコードを短くと思ったんだけど……
$lastを前置インクリメントしたら、その後の$lastも+1増えてるだろ
>>305 そっか。それは確かにそうだ。thanx!
308 :
デフォルトの名無しさん:2014/06/30(月) 06:36:05.99 ID:76lBVk6p
>>300 与えられた数値の数字列を先頭から順に使って
310 :
309:2014/06/30(月) 08:47:59.05 ID:FpyV2Xga
ひとりごとのようなので迷惑です。考えをまとめてからいうように。はい、次の人。
>>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
テストケース修正
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制約> ")".
修正。
<領域> ::= <制約> <基本領域> | <基本領域>.
……さあ、超難問の前で底のない絶望に悶え苦しむのだ……
>>314 K*9+G*3+D じゃあだめなのか。
なんでいい加減な出題が三個もほぼ連続するんだ
ほんと、迷惑なのでやめてほしい
人の迷惑考えてる?
問題解けないからせめて出題したいのか?
それは考え違い
解けない人が出すと
いいかげんな問題についてなるのがおち
なんて書くとプッツンきてあらしになりそうだな
いい加減さを指摘して、よりよいお題を提案すればいいじゃん
やったけど、認めなかったな
その後、修正してたけど
いちいち、問題自体の妥当性検討なんかきてられるか
ここは
「それは妥当な問題か健闘するスレ」
なのか?
話にならん
誤変換は適当に読み替えろ
バグだらけの問題出さずにロムってろ
間違い探しになってるな
×なんかきてられるか
○なんかしてられるか
×健闘するスレ
○検討するスレ
バグは感染する
ID:7FoUPvVO
どうした?学校でいじめられてるのか?落ち着け
はあ?
やれやれ
ぞくぞくとあほーが
仕方ないな、こんなスレだし
>>318 それが多分一番いいと思う
var tax = 1.05みたいな税率固定で後で修正が生まれる感じなので俺はやらないけど
派遣は大変だねえ、いろいろストレスを抱えて
>>331 おまえ、精神病か?
それとも妄想即現実視の形而上学馬鹿か?
ん?馬鹿だから意味わかんないってか?
アハハ
やっぱり荒れたな
わかりやすいくず
乙
>>336 見ただけで分かるような間違いを平気でそのまんまにしておくやつにかける言葉としちゃ優しい方だろ
出題するなら、一度自分で解いて、テストケースやサンプルは出力結果をコピペしてくれ。
313とか315とかはスルーしようよ
お前に指図はされたくはない
>1以上の整数は自然数か?
はい
>2より大きく4より小さい整数は実数か?
はい
>0より小さい整数は自然数か?
いいえ
>実数は整数か?
いいえ
2chの中でまで、学校や職場のように、仕様が曖昧だから出来ませんって虚しくないか?
俺今日あの人の誕生日会なんて聞いてないっすよ
アニメ見るので帰りますよ
>>345 全録レコーダーくらい用意しておくのが社畜のたしなみとゆうものだろう!
|=番兵|_
( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、、、、し 、、、(((.@)/30 7/1 7/2
仕様が曖昧だからできません
ではなくて
問題になっていないものを出し続ける馬鹿が一人いるということ
適当すぎ
問題の不備なんだよなぁ
スキルアップのスレじゃ無いからしゃーない。
引き続き根暗の攻防戦をお楽しみください
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
>>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は割り切れる数があらかじめ入力される。
流れがピタッと止まったなwwwwwwwwwww
偉そうにコメント書き込んでた奴らは英語読めないんだなwwwwwwwwwwwww
>>354 きみなの?馬鹿な問題出し続けてたの
で、
>>352 これまたはるかにお馬鹿な問題だしたの?
英語になってないよ
356>>eで割って、dを求めるの間違いです。
これとは別に、(p-1)と(q-1)の最小公倍数を素因数分解して、eの候補を全て列挙したいです。
357>>英語読める人?
>>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.
>>352 I'm guarantee that the number e is valid.
↓
I guarantee that the number e is valid.
実際英語になってなかったので…。
課題は与えられた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
英語のハードルは低いと思うけど、問題を変えてみた。
なんか煽りあいのところ申し訳ないが、一気に悪化しましましたなー。
もうちょっと言葉選ぼうぜー。
369 :
デフォルトの名無しさん:2014/07/01(火) 23:13:35.98 ID:8OIckluf
麻雀の実装は難しいが、人狼を実装してアルゴリズムで対戦。
螺旋の問題は
>>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 ・入出力例が一つしかなくどう並べるのかわからない((√n,√n)なのか(3,n/3)なのかそれ以外なのか)
・平方数ならわかるが、なぜ奇数に限定するのか
・もし正方形に並べさせたい場合、平方数以外が与えられた場合どう処理するのか
問題文には右回りとしか書かれていない
最大値チェックは、なんかチョット要らなかった。
>>353 ごめんなさい。
Input:
5
7
7
Output: 7
>>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)
>>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));
>>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
>>313 このひと?最近、出題のたびにいいかげんな問題出してる人?
また、
1,テストケース間違ってるし。
2,日本語もいい加減だし
「 お客さんから必要なアイテムのオーダーを受けるので 」
なんじやこりゃ。文脈から意味は分かるが
3,銅、銀、金をD,G,Kで表すし、参るな
C,S,Gかcu,ag,auにしろよ、恥ずかしい
変数 c, s , gにそれぞれの必要個数を入力
必要な銅の数は
c = c + s*3 * g*3*3
出題すべき問題ではない
なーに、こないだ茨城の高校から盗(ry
DGKとCSGは別に重要なことでもないな
c = c + s*3 * g*3*3
揚げ足取ったつもりなのに算数が出来もできないバカは来るなよ
算数の問題か国語の問題か
それを知る機会は二度と来ないだろう
何でC,S,Gになるのか分からん。
B,S,Gなら分かるけど。
cu,ag,auのように無駄に文字数使うのは競技プログラミングのお題では使わないほうが良いかと。
>>385 >何でC,S,Gになるのか分からん。
>B,S,Gなら分かるけど。
オリンピックのメダルじゃないんだし
ブロンズは合金だから、この場合、銅はカッパーで良いと思うけど
どんどん脱線していってるなw
>>383 まず、揚げ足ではない
つぎに、入力みすとさえ気づけない、バカ頭
よほどの知的底辺だな、おまえ
それが通るなら、件のテストケースの間違いもタイプミスだから気付け、って話しになる
>>390 は?どこが?
指摘してみな
揶揄するようなバカはどうしていするかな
さあ、やってみよう
そら、やれ
暑苦しいのはNGでございますわ。
ここが2chということをお忘れなのでしょうか。
文字列A(2≦N≦100000)が与えられる
どうしていするかな
うどうしていするか
していするかなどう
ていするかなどうし
いするかなどうして
するかなどうしてい
るかなどうしていす
かなどうしていする
などうしていするか
左にシフトしてくの?
2行目が分からん
あれ書き込むのやめたつもりが書き込まれてた
どうしていするかな
うしていするかなど
していするかなどう
ていするかなどうし
いするかなどうして
するかなどうしてい
るかなどうしていす
かなどうしていする
などうしていするか
399 :
デフォルトの名無しさん:2014/07/04(金) 09:23:08.90 ID:F/X2iHEQ
検索)シーザー暗号
>>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
>>396 import Control.Monad
import Data.List (inits, tails)
f396 :: [a] -> [[a]]
f396 = init . liftM2 (zipWith (++)) tails inits
main :: IO ()
main = mapM_ putStrLn $ f396 "どうしていするかな"
>>396 J
f =: i.&# |."0 1 ]
f 'abcd'
abcd
bcda
cdab
dabc
>>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
>>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
47の都道府県をなるべく少ない距離で横断していく為のルートを求めなさい。
隣接する都道府県への移動にかかる距離は1になります。
例えば埼玉から東京までの最短距離は1、埼玉から神奈川への最短距離は東京を経由して2になります。
徒歩で移動するので隣接する都道府県を飛び越して移動・ワープはできません。
どこからスタートしても良いですが最初と最後の地点は沖縄のほうが良いでしょう。
沖縄と隣接する県ってどこになる?
北海道や四国や九州は、どう取り扱う?
徒歩で行けない場合は例外として船・自動車の使用を許可
>>412の例外を使うと、沖縄や北海道は任意の沿岸と距離1で隣接してる事になるのか。
兵庫県とかで詰まっても海を渡れば重複なしで移動できそうな気がするが…大丈夫か?
>>412 沖縄以外は実際に徒歩で行けるかは別にして、橋やトンネルで繋がってるから、繋がってたら距離 1 でいいんじゃね。
沖縄は鹿児島と距離 1 で繋がってるからことにするしかないかな。
北海道に隣接してるのは青森でしょ
問題解くより地図のデータ作る方が面倒だな
>>409 都道府県数 + 端点数(沖縄、長崎、北海道) + 2次端点数? + 隘路数(福岡・山口)
=47 + 3 + 0 + 1
=51
でいいと思うんだが、隘路の検出が面倒そうだ。
青森->[北海道, 秋田, 岩手]
みたいなテーブル作るのが先だな
頑張ってくれ
>>409
>>415 >繋がってたら距離 1
どことつながっているかをとりあえず定義しないとね。
北海道-青森
兵庫-徳島
山口-福岡
さて沖縄は?
船経由で隣接がありなら、飛行機経由もありだな
>>420 > どことつながっているかをとりあえず定義しないとね。
接していない都道府県を繋ぐ橋とかトンネルってそんなに多くないよ。
> 北海道-青森 ... 青函トンネル
> 兵庫-徳島 ... 明石海峡大橋、大鳴門橋
> 山口-福岡 ... 関門トンネル (実際は三本ある)
以外には、
岡山-香川 ... 瀬戸大橋
広島-愛媛 ... しまなみ海道
が、ある。
あと、忘れがちだけど
千葉-神奈川 ... 東京湾アクアライン
なんてのもある。
> さて沖縄は?
>> 沖縄は鹿児島と距離 1 で繋がってるからことにするしかないかな。
以外に、妙案ある?
>>421 船とか飛行機は繋がり多すぎるし、不定期便とかまで入れると収拾つかなくなるよ。
>>409 問題があいまいなので整理しよう
沖縄から始めて、沖縄に戻ってくるルートのうち、もっとも短いものを探す
(日本一周する)というが基本ルールだと思うが、
47都道府県を必ず一回ずつ踏むのか?
一回しか踏めない場合、
>>422の隣接に従うと、北海道や鹿児島で折り返せない。
複数回踏んでもいいなら、問題はない。
あるいは47都道府県を全て踏まなくてもいいのか?
その場合、どうであれば横断であるのか定義が必要。
例えば、沖縄から北海道を経由して、沖縄に戻ってくるルートとか
で、とりあえず、沖縄から出て、2回まで踏んでいい条件で、沖縄に戻ってくる
ルートを表示するもの(最短じゃない)
http://ideone.com/zDUA12 最短にするには計算時間が増えすぎて、自分のPCでも無理・・・・
これはサラリーマン巡回問題を内包しているように思えるから最適解は存在しないのでは。
総当りになっちゃうんじゃね?
サラリーマン巡回問題
>409
出題者の解答例は?
>>409 グラフ簡約(クリティカルパスを簡約毎に2ステップ)でいける筈だが、実装の仕方を忘れたw
431 :
425:2014/07/06(日) 15:52:12.83 ID:ns4lB4b9
432 :
425:2014/07/06(日) 15:56:02.08 ID:ns4lB4b9
お題:文字列の平均情報量を求める。
例
"Hello, world!" -> 3.18
"abcd" -> 2.00
"abcde" -> 2.32
平均情報量ってなに
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
>>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
438 :
426:2014/07/08(火) 04:22:09.04 ID:+Qt3m9hV
>>437 ありがとうございます。直しました。
ご足労かけました。すみません。
お題: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
10進数と2進数の違いを判別する方法をまず説明して下さい
判別する必要はありません
10が10進数なのか2進数7日どうやって判断すればいいですか
リストと数値が区別できないような言語使ってるのか?
C++は?
二進数リテラルが無くて数値型のリストで二進数を表現するような言語を使ってるのか?
秀丸マクロ使ってます
2進数リテラルはカミングスーン。
C++ね。ID変わってた。
>>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]
>>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
>>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))))
1から100000までの重複しない整数を使って、4つの数字を加減乗除した時に100になるパターンを教えてください
演算子+/*-は全部使ってください
>>453 12*-34はOK?
2/3=0としてOK?
1<=N<=100000だから負数はだめでしょ
出題者が決めることだと言いたいんじゃ?
数字にマイナスをつけるのは演算子かどうか、いう話だろ
461 :
デフォルトの名無しさん:2014/07/09(水) 17:01:06.07 ID:QPJQuFnp
4つの数値に4つの演算子だと、
どれか一つを符号にしないと数が合わないよね
>>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
)
+(-1)これと-1は同じなの?
>>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
お題
昇順の数列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]
>>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)),
_整列したならび).
>>461 >演算子+/*-は全部使ってください
全部使わなくても、好きなの使えばいいよね。
縦H * 横W ( 10≦(H, W)≦100 )のサイズの床に地雷を設置した
---**
--*--
-*---
--*--
*--*-
以下のように地雷に隣接する床の上に、隣合う地雷の数を調べて出力できるプログラムを作成せよ
地雷をランダムに配置せよ
002**
02*21
1*300
12*20
*12*1
>>470 f([2,3,5,7,9], 3, [9,2,5,5,2]) の結果が合っていない
5行目よりも上のどこかに b.sort! があるはずなのでは
>>474 あ、b.sort! はだめか
呼出側の配列を壊してしまう
b = b.sort だね
>>472 paizaで似たようなのが出た気がするけど難しい・・・
481 :
デフォルトの名無しさん:2014/07/12(土) 09:01:15.80 ID:qrHUnFxI
|=番兵|_
( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、、、、し 、、、(((.@)5.3 35.4 36.3
a*b=c
cが分かるときaとbの組み合わせを全て求めよ
やだ
同じく
実数なら無限個のペアあるし
整数限定でも約数を列挙するのと同じだしね
無理数、複素数も混ぜてあげて
わーい!3Pだね
前から後ろから
491 :
デフォルトの名無しさん:2014/07/13(日) 18:21:29.28 ID:2/vm2xCB
直リンしねよカス
直リンするなってまだ言ってる人居るの
語尾に?つけてほしい
直リンはマナー違反
496 :
デフォルトの名無しさん:2014/07/14(月) 07:45:09.84 ID:GNzEXKnI
素材の無断使用でないし(作者ページのリンクも貼ってる)、
ウェブブラウザ開いたら自動で画像がロードされるわけでもない。
どういったマナーに抵触するんだ。
個人ウェブサイト時代の残留思念がだな…
かまってチャンのネタでしょ。放置推奨。
ゆとり世代はなんでもありだな
問題文が公開されているページがあるならそのページを貼ればいいのでわざわざに転載する必要もないわな
盗作に興味なし
次の問題はよ
お題:幅x[cm]高さy[cm]の長方形の内部に
z[cm]×w[cm]の長方形をできるだけ多く敷き詰める。
敷き詰められる長方形の個数の最大値を求めよ。
x*y/2
>>503 全て整数なら、X*Y
実数なら、無限。
x*yだと正方形も含まれるよ
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)を求めるプログラムを作れ。
一行で書けるけど
普通にやったら負数がどうとか正確な実数じゃないとか
しょーもないことごちゃごちゃ言うんだろ
騙されないぞ
実数が負の数を含んでいるのは自明。何を言っているんだ?
>>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
>>507 実数の世界観と整数の世界観が妙に交じり合って気持ちが悪いんだが‥
>>507 実数で割り切れるってどういうこと?
無限小数にならないってことか?
n個の埴輪をm個入りの蔵に全て入れるには蔵を少なくとも幾つ用意すればよいか?
nは0または自然数、mは自然数とする。
nがmで割り切れるかどうかを調べる関数を使え!
10 3 -> 4
517 :
デフォルトの名無しさん:2014/07/15(火) 02:43:05.88 ID:adxF9Nhd
C言語の入門書が終わったのですが
中身を完璧には覚えていないです。
何度も読むよりかは何かを作るか
もう一段階上げた本を読んだほうがいいでしょうか?
ていうか、あまりにもスレチ
俺がいうんだからそうとうなスレチ
お題: nをmで割って余りを切り上げる関数を作れ!
n個の埴輪をm個入りの蔵に全て入れるには蔵を少なくとも幾つ用意すればよいか?
nは0または自然数、mは自然数とする。
10 3 -> 4
return (n + m - 1) / m;
あーあ、クソ問題連発君に解答しちゃったよこの人
裏庭に埴輪取りが
>>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}とし、
暗号化に使う固定値はプログラムの起動時にランダムに選ぶものとする。
|=番兵|_
( ・ω・) <ステンバーイ
○={=}〇
|:::::::::\
、b、eし 、、、(((.@)nesse 7,600,000
お題:引数に1を足した値を返すカメ関数と引数に2を掛けた値を返すウサギ関数を
使って自然数mを自然数nにする(m<n)。この時、ふたつの関数の使用回数の合計の
最小値を求める。
例
m=3, n=10 -> 3
m=3, n=95 -> 10
m=666, n=2014 -> 342
Hello Worldを次の条件に従って出力せよ
・文字H,e,l,o,W,r,dの使用禁止
・1つ以上のクラス、3つ以上のメソッドを使うこと
やめてください!クラスとメソッドがない言語だってあるんですよ!
C++だとincludeでldeが引っかかるしreturn/char/void/cout/cerr/clog/iostream/printfも使用不能か。
プロトタイプ宣言自力でやってputsをint引数扱いで使うとかになりそうだな。大変そう(やる気はない)
C++標準ライブラリを自力宣言とか色々めんどくさそう…というかputsもextern "C" がrで駄目だった。