トップページ⇒tech
994コメント320KB

プログラミングのお題スレ Part6©5ch.io

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん 転載ダメ©2ch.net2014/12/11(木) 15:17:14.07ID:Ipp+K308
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part5
http://peace.2ch.net/test/read.cgi/tech/1411227287/

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

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

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
http://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
http://runnable.com/
http://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。
0002デフォルトの名無しさん2014/12/11(木) 15:18:02.40ID:Ipp+K308
過去スレ
4 http://peace.2ch.net/test/read.cgi/tech/1402622093/
3 http://peace.2ch.net/test/read.cgi/tech/1390525149/
2 http://toro.2ch.net/test/read.cgi/tech/1357191974/
出されたお題をコーディングして罵られるスレ
http://toro.2ch.net/test/read.cgi/tech/1354393458/
0003デフォルトの名無しさん2014/12/11(木) 16:09:18.42ID:Knr7owVD
乙
0004片山博文MZ ◆T6xkBnTXz7B0 2014/12/11(木) 18:00:40.85ID:Knr7owVD
お題:日本語でブラウザーの自動操作を行う簡易プログラミング言語を作れ。
その言語では、以下の4つの構文をサポートせよ。
1.ブラウザーでURL「…」を開け。
2.テキスト項目「…」に「…」を入力せよ。
3.ボタン「…」を押せ。
4.ページをファイル「…」として保存せよ。
0005片山博文MZ ◆T6xkBnTXz7B0 2014/12/11(木) 18:16:25.45ID:Knr7owVD
上級者向け。インターネットエクスプローラーの有り難みがわかる出題である。
0006デフォルトの名無しさん2014/12/11(木) 18:40:34.99ID:neufFJv8
キ印参上!まで読んだ。
0007片山博文MZ ◆T6xkBnTXz7B0 2014/12/11(木) 18:55:13.98ID:Knr7owVD
キチガイに見えるだろうが、しかし、Webの発達により、さような難易度が高い操作も自動化できるようになってきている。
この程度のことは、JavaScriptでも、Firefoxの拡張でも、「ブラウザーの中の人」でもできる。

さあ、凄腕ハッカー様よ、現れいずれたまえ! その雄姿を、このスレッドの歴史に刻みつけるのだ!!
0008デフォルトの名無しさん2014/12/11(木) 19:13:50.25ID:zoc9Fj/c
お題:ある固定資産の減価償却費を計算して、年度毎の金額をテーブルに格納せよ
0009片山博文MZ ◆T6xkBnTXz7B0 2014/12/11(木) 19:23:14.32ID:Knr7owVD
>>8 Excel
=DB(取得価額,残存価額,現在の年度-開始年度)
0010デフォルトの名無しさん2014/12/11(木) 19:24:16.65ID:IJmx/E0a
お題:言語AのHelloWorldを言語BのHelloWorldに置き換えるプログラムを言語Cで書け。関数、メソッドのみの置き換えでもよい。
例:http://ideone.com/ZAlrKz
(CをCommonLispにCで。関数のみ)
0011デフォルトの名無しさん2014/12/11(木) 19:27:07.08ID:PPtc1ub3
マルチリンガル以外お断りという……
0012デフォルトの名無しさん2014/12/11(木) 20:37:52.16ID:2qZGvaHt
HQ9+をLuaでBrainCrashにかえる

s = "H"
s = ""
print(s)
0013デフォルトの名無しさん2014/12/11(木) 20:42:23.30ID:aWaBOmKM
>>10
CでPerlを(Python2/Ruby/PHP)に変換
http://ideone.com/PR3IKT
0014デフォルトの名無しさん2014/12/11(木) 21:12:10.21ID:p+GagzxD
>>7
難易度というより時間とか工程数がニート級だからキチガイなんだよ
0015デフォルトの名無しさん2014/12/11(木) 21:27:59.11ID:Knr7owVD
>>7
スクレイピング、スクレイピング、ヤッホーヤッホー♪
(昭和の雰囲気で)
0016デフォルトの名無しさん2014/12/12(金) 00:33:12.46ID:L50nhIUx
音声または楽器音を生成するMATLABのプログラムを作成しなさい
0017デフォルトの名無しさん2014/12/12(金) 01:40:37.00ID:RPnK5rNe
>>10
shのHelloWorldをEmacs LispのHelloWorldに変換するsedプログラム

% A='echo hello, world!'
% echo $A | sh
hello, world!

% C='s/echo \(.*\)/(progn (princ "\1") (terpri))/'

% B=`echo $A | sed "$C"`
% echo $B
(progn (princ "hello, world!") (terpri))

% emacs -Q --batch --eval="$B"
hello, world!
0018デフォルトの名無しさん2014/12/12(金) 08:22:02.07ID:UtrA0Zej
お題:入力された自然数を日本語読みにして出力しなさい

例
512 ⇒ ごひゃくじゅうに
0019デフォルトの名無しさん2014/12/12(金) 18:07:02.31ID:PAk0/nic
>>18 Java
http://ideone.com/uRHtEB
とてもとてもひどいソース
0020デフォルトの名無しさん2014/12/12(金) 18:44:24.23ID:hHI9tZtf
お題1
麻雀の聴牌の待ちの形を判定するプログラム (ただし手牌は1枚、4枚、7枚、10枚、13枚のいずれかとする)

例
入力
123m45666p99s111z
出力
3p 6p 両面待ち 123m 45p 666p 99s 111z
6p 9s シャボ待ち 123m 456p 66p 99s 111z

お題2
麻雀の向聴数を計算し、向聴数減少・和了に進む捨て牌候補と対応する受け入れ牌を表示するプログラム
(ただし手牌はツモ等を含めた2枚、5枚、8枚、11枚、14枚のいずれかとする)

入力
123m45666p99s1112z
出力
0向聴(聴牌)
捨て牌候補 2z 受け入れ牌 36p9s

入力
123m45669p99s1112z
出力
1向聴
捨て牌候補 6p 受け入れ牌 789p2z
捨て牌候補 9p 受け入れ牌 345678p2z
捨て牌候補 2z 受け入れ牌 3456789p9s

数牌は、mは満子、pは筒子、sは索子。数字は数牌の数字をそのまま表す
字牌はzで表し1234567はそれぞれ東南西北白發中を表す
たとえば4枚の満子、1m2m3m4mを持っていたら 1234m と表す
0021デフォルトの名無しさん2014/12/12(金) 18:47:08.19ID:hHI9tZtf
訂正
お題1
麻雀の聴牌の待ちの形を判定するプログラム (ただし手牌は1枚、4枚、7枚、10枚、13枚のいずれかとする)

例
入力
123m45666p99s111z
出力
3p 6p 両面待ち 123m 45p 666p 99s 111z
6p 9s シャボ待ち 123m 456p 66p 99s 111z

お題2
麻雀の向聴数を計算し、向聴数減少・和了に進む捨て牌候補と対応する受け入れ牌を表示するプログラム
(ただし手牌はツモ等を含めた2枚、5枚、8枚、11枚、14枚のいずれかとする)

入力
123m45666p99s1112z
出力
0向聴(聴牌)
捨て牌候補 2z 受け入れ牌 36p9s

入力
123m45669p99s1112z
出力
1向聴
捨て牌候補 6p 受け入れ牌 789p9s2z
捨て牌候補 9p 受け入れ牌 345678p9s2z
捨て牌候補 2z 受け入れ牌 3456789p9s

数牌は、mは満子、pは筒子、sは索子。数字は数牌の数字をそのまま表す
字牌はzで表し1234567はそれぞれ東南西北白發中を表す
たとえば4枚の満子、1m2m3m4mを持っていたら 1234m と表す
0022デフォルトの名無しさん2014/12/12(金) 18:57:11.69ID:Lt1ccLbO
なんか、最近頭の悪い人が考えそうな題が増えてきたな
それらって
>>21全部このひと?
0023デフォルトの名無しさん2014/12/12(金) 19:04:41.34ID:jHo7B2H0
ほぼ確実にそうだと思う
0024デフォルトの名無しさん2014/12/12(金) 19:07:08.87ID:jHo7B2H0
日付変わってもID固定だといいのにね
0025デフォルトの名無しさん2014/12/12(金) 19:12:31.52ID:oJQhRbPG
こーいうの欲しいな→難しいな、どうしよう→あ、お題にしたら誰か作ってくれるんじゃね?俺頭いい!
というのを感じる
0026デフォルトの名無しさん2014/12/12(金) 19:17:13.96ID:6Bn+YJPZ
そういう行為する連中は荒らしとして通報できたらいいのに
0027デフォルトの名無しさん2014/12/12(金) 19:20:22.34ID:iYEalHFr
もう二度とこのスレに来なくなるように徹底的に叩いて追い出したほうがいいんじゃね
0028デフォルトの名無しさん2014/12/12(金) 19:29:25.36ID:651VE/CG
今後は出題時に出題者自身の解答コード(模範コード)を添付するよう義務付ければいい
そうすれば>>25のような得を狙った輩なんて現れんだろ
0029デフォルトの名無しさん2014/12/12(金) 19:35:58.78ID:b+XpBRTP
ググってピンポイントで答えが出るようなお題は悪問
ググってもピンポイントで答えが出ず自分で思考工夫しないと答えが出ないようなお題は良問
0030デフォルトの名無しさん2014/12/12(金) 19:36:53.27ID:b+XpBRTP
すなわち答えが既知の問題はこのスレに投稿してはいけない
0031デフォルトの名無しさん2014/12/12(金) 19:39:53.59ID:b+XpBRTP
>>21のような麻雀なんて世の中にごまんとアプリが出てんだからググりゃすぐ答えがでる超悪問
0032デフォルトの名無しさん2014/12/12(金) 19:42:57.46ID:w8bD9m+x
http://www.itmedia.co.jp/enterprise/articles/1004/03/news002_2.html
これを思い出すな
0033 ◆QZaw55cn4c 2014/12/12(金) 19:43:03.08ID:TCO/XLYY
>>28
ちょっと前まではそうだったんだけれど‥
0034デフォルトの名無しさん2014/12/12(金) 19:49:37.86ID:AUxPsHKO
気に入らなきゃ流せば(無視すれば)いいだけなのにアホか。

言っちゃ悪いけど、お前の掟(笑)をお前が守るのは勝手だが、
それを人に押し付けるなって馬鹿。

最近の若者って押しなべてこういう傾向があるよね。
甘やかされて育ってるから世の中自分を中心に回るべきと本気で思ってる。

2chでブラック企業ガーって吠えてる連中は間違いなくこういうタイプ。
0035デフォルトの名無しさん2014/12/12(金) 19:54:02.90ID:Lt1ccLbO
>>34
うわぁ
頭悪そう
0036デフォルトの名無しさん2014/12/12(金) 19:59:31.47ID:7MXQO6uw
>>21
ググれば君の作りたいアプリの答えがすぐ見つかるよ!やったね!もう2度と来んなカス
0037デフォルトの名無しさん2014/12/12(金) 20:04:05.55ID:wfAPCnd3
さあ、さっきからROMってばかりいるそこのキミ!
良問を書きこんでこのスレに活気を取り戻そう!
0038デフォルトの名無しさん2014/12/13(土) 00:16:10.86ID:DBa1UdFN
>>25のパターンだと言語指定してくるのが普通じゃないの
0039デフォルトの名無しさん2014/12/13(土) 01:49:39.47ID:oJg8v8de
>>38
結果が欲しいだけなんだから過程はどうでもいいだろ
0040デフォルトの名無しさん2014/12/13(土) 03:37:59.44ID:DBa1UdFN
言語指定しなかったばかりにどマイナー言語の回答しか集まらなかったらどうすんのさ
0041デフォルトの名無しさん2014/12/13(土) 03:56:16.38ID:xVemfz4a
その言語を勉強して解読するのかな
0042デフォルトの名無しさん2014/12/13(土) 08:23:02.14ID:3ehKG0WS
前スレの819
1個または連続した2個の石を取ることを、1手とする
最後に石を取った方が勝ち
つまり、最後の1手を指した方が勝ち

まず石の配置を正規化した、パターンを作る
連続する'_'を一つにまとめてから、両端の'_'を削除する
('o'は石あり、'_'は石の無い所)

両端は必ず、'o'となる
__o___oo_ → _o_oo_ → o_oo

パターンの種類は、'o','_'の数で整理する
また順列ではなく、'o'の数が右方向へ単調増加する、組み合わせとする
ooo_oo_o,oo_o_ooo なども、o_oo_ooo として扱う

o_o_oooo,o_oo_ooo はpat[6][2](o=6,_=2)に、リストとして保持する
ただし実際には、負けるパターンだけを持てば十分

パターンは64ビットマップで表す
(最大で'o'は32個、'_'は31個まで)
o_oo_ooo → 10110111
0043422014/12/13(土) 08:24:20.70ID:3ehKG0WS
最初の数字は'o'の数。W=Win,L=Lose
0 _ L
1 o W
2 oo W, o_o L
3 ooo,o_oo,o_o_o W
4 oooo,o_ooo,o_o_oo W, oo_oo,o_o_o_o L
5 ooooo,oo_ooo,o_oo_oo,o_o_o_oo,o_o_o_o_o W, o_oooo,o_o_ooo L
6 oooooo,以下略

今自分の手番で、'o'の数をnとして、
1,2個の石を取った際に、pat[n-1],[n-2]を走査して、
相手を負けパターンに出来れば、自分が勝てる
o_ooo (2個取る)→ o___o → o_o L

一方、次のパターンでは、どのような取り方をしても、
相手を負けパターンに出来ない
oo_oo →(無理) o_o L

このやり方で正しい?
0044名無しさん@そうだ選挙に行こう2014/12/13(土) 13:18:09.53ID:rnBmLeLt
じゃあ次の課題
「平方根関数を使わずに任意の正の整数および0の根を求めるプログラム作を成せよ」
0045名無しさん@そうだ選挙に行こう2014/12/13(土) 13:44:27.52ID:3mgTh/5d
>>44
暇つぶしの材料としては否定しないが、なんか学校の課題感ありありだなあw
大昔Pascal(笑)でそんな課題を出されたぞw
0046名無しさん@そうだ選挙に行こう2014/12/13(土) 14:32:46.02ID:Pw3nm5GK
>>44
問題ではなく課題でしかないな

なめとんのか
0047名無しさん@そうだ選挙に行こう2014/12/13(土) 15:03:49.75ID:64FChpjC
>>45
まあやったことないけどpascalでも余裕でしょうな

>>46
気に入らなけりゃスルーしてればいいんだよ
解答例は用意してあるんであしからず
0048名無しさん@そうだ選挙に行こう2014/12/13(土) 15:49:59.30ID:toJAZvUP
>>18 Perl
http://ideone.com/g2Ckst
0049名無しさん@そうだ選挙に行こう2014/12/13(土) 16:48:47.17ID:elgmXnKG
>>44 C
http://ideone.com/IKLn45
0050名無しさん@そうだ選挙に行こう2014/12/13(土) 16:58:18.62ID:toJAZvUP
>>44 Perl
http://ideone.com/FwjsBA
0051名無しさん@そうだ選挙に行こう2014/12/13(土) 17:13:51.04ID:KY++hnMi
>>47
馬鹿はきらいなんだ
レスするなクズ
0052名無しさん@そうだ選挙に行こう2014/12/13(土) 18:16:22.29ID:Zl6nY2in
解答が出揃ったようだから添削といくか

最初に断わっておくが、問題文に平方根関数となっているのは
初心者が「pow関数なら使っていいのか」と質問した時それを拒絶するために仕込んでおいたものなのに
>>49のような解答が出てしまうとはwwww

せめて指数対数関数を使ってほしかった
0053名無しさん@そうだ選挙に行こう2014/12/13(土) 18:17:35.91ID:Pw3nm5GK
>>52
お題スレを授業スレにしようとしている精神病

お前、バカ凄る
0054名無しさん@そうだ選挙に行こう2014/12/13(土) 18:27:15.24ID:aWFoLZL3
山下さんそろそろVIPに帰ってくれませんか?
0055名無しさん@そうだ選挙に行こう2014/12/13(土) 18:34:18.03ID:Zl6nY2in
解答例

#include<iostream>
using namespace std;

int main(){

int a;
double p,q;
cout << "入力した整数の平方根を求めるプログラム\n";
cout << "正の整数を入力してください。\n";
cin >> a;
p = 10; q = 1;

if(a<0) {cout << "正の整数を入力してください\n";}
else if(a == 0){cout << 0;}
else{
while(q > 0.0001){

q = (p*p-a)/(2*p);
p = p - q;
}

cout << "√" << a << " = " << p << "\n";
}
return 0;

}
0056名無しさん@そうだ選挙に行こう2014/12/13(土) 18:42:19.92ID:Zl6nY2in
どうでもいいけど>>44はプログラミング初歩において非常に有名な問題で
>>55は微分使ったニュートン法による手法な
0057名無しさん@そうだ選挙に行こう2014/12/13(土) 18:44:04.97ID:KY++hnMi
げ!精神病連投中か!!
0058名無しさん@そうだ選挙に行こう2014/12/13(土) 19:16:48.12ID:toJAZvUP
えー、マジニュートン法?
ちょっとがっかり。
ニュートン法なら奥村先生のが好きだな。

>>44 Perl
http://ideone.com/cRklMo
0059名無しさん@そうだ選挙に行こう2014/12/13(土) 19:21:35.29ID:Zl6nY2in
ほかには開平法と呼ばれるテクニックもある

筆算でやるならニュートン法より断然容易
しかしプログラミングでとなると初心者ではまず無理だろう
0060名無しさん@そうだ選挙に行こう2014/12/13(土) 22:27:28.76ID:D/Sa6FVu
二分法でも解けるよ。
0061名無しさん@そうだ選挙に行こう2014/12/13(土) 23:06:19.77ID:K/9GRqnp
前スレのゲキモンとかいうアプリの解法を導く奴が一番やりがいあったな
0062名無しさん@そうだ選挙に行こう2014/12/13(土) 23:13:15.78ID:DBa1UdFN
あれが一番>>25くさいけどね
0063名無しさん@そうだ選挙に行こう2014/12/13(土) 23:23:45.88ID:K/9GRqnp
あれも質問スレに貼られてたのを転載されたものだったからね
それでも最初からこっちで人に作らせる>>20よりまし
0064名無しさん@そうだ選挙に行こう2014/12/13(土) 23:37:37.45ID:DBa1UdFN
麻雀なんかそこらにあり溢れてるから今更感だが
ゲキモンのやつは今ブームが来てんなら解法アプリとか売れるし
より>>25ぽいけどなあ
0065デフォルトの名無しさん2014/12/14(日) 00:29:28.84ID:6LJEBlWP
解答1問につき100円だっけ?
0066デフォルトの名無しさん2014/12/14(日) 00:32:52.50ID:M93peGup
仮に>>21の奴が>>25で無かったとしても
問題を解くのに必要な麻雀の基本ルールも書かず出題するのは不適当だと思う
麻雀知らない奴は問題に挑戦できないわけだし
麻雀は万人が知っているようなゲームじゃない
0067デフォルトの名無しさん2014/12/14(日) 00:37:01.41ID:nynaMPBw
>>66
なんか絵に描いたような今時の若者(自己中心バカ)の思考で笑えるなw
0068デフォルトの名無しさん2014/12/14(日) 01:17:59.83ID:Hln0TfNs
>>67
君は頭の悪さが文章に滲み出てるよ
馬鹿にされて頭に来て出てきちゃったの?
0069デフォルトの名無しさん2014/12/14(日) 01:39:43.18ID:Z+1Tn179
クリスマスなせいかどの板のどのスレも殺伐としてるな
0070デフォルトの名無しさん2014/12/14(日) 01:52:20.00ID:5xeR6x0m
クリスマスが気になるうちは素人
0071名無しさん@そうだ選挙に行こう2014/12/14(日) 03:46:37.53ID:6LJEBlWP
>>66
別にguess系のようにルールを伏せているわけじゃないし
こういうスレなんだから事前に調べるのでもおkでしょ
激問の方が麻雀よりも認知度は低いと思いますが前スレの出題にはルールは書かれていませんでいたよ
0072名無しさん@そうだ選挙に行こう2014/12/14(日) 03:56:46.98ID:quX5gTZ+
ルール説明するYouTubuの動画のリンクが貼ってあったじゃん
0073名無しさん@そうだ選挙に行こう2014/12/14(日) 05:13:58.27ID:VLT6hKdw
>>60
二分法だと
http://ideone.com/U94bCS (>>55を拝借)
かな。
0074名無しさん@そうだ選挙に行こう2014/12/14(日) 05:52:21.82ID:6LJEBlWP
>>72
それをクリックして初めてルールを知ることができるんだろ?
何やら言ってるけど単に自分が楽しめたかどうかだけに見える
0075名無しさん@そうだ選挙に行こう2014/12/14(日) 15:39:44.92ID:rKAd2b/X
激問は良問。
ルールはシンプルで解くのは易しくない。
ルービックキューブ、15パズル、オセロに匹敵。
いままで人類がこのゲームを発見しなかったのが不思議。
速度的に良いのはできてないと思う。
ルールわからなくてできないのはいる?
0076名無しさん@そうだ選挙に行こう2014/12/14(日) 16:57:11.94ID:M93peGup
ゲキモンの広告スレかよここ
0077名無しさん@そうだ選挙に行こう2014/12/14(日) 18:05:06.12ID:aXRZQwQ1
スライドパズルの変形でありながらルールの性質上実物のコマを使ってやるには不向きだから
思い付いたとしても広まらなかっただけだろというか
電子ゲーム時代になってからは類似のものはよくあって
アクションやRPGのちょっとした謎解きにも出てくるレベル

正解率が表示されるとか魅せ方の部分が大きいとは思うが
0078デフォルトの名無しさん2014/12/15(月) 04:50:44.33ID:UQ+hMbpx
  |=番兵|_
 (  ・ω・) < オハヨウナノン
  〇={=}〇
  |::::::::::\
、、、し 、、、(((.@)now、snow、、snow
0079デフォルトの名無しさん2014/12/15(月) 06:54:35.57ID:j2Z0Uluh
お題:以下の数式のそれぞれの□に 0 〜 9 のいずれか一つを入れて数式を成立させたい。
ただし、一つの数字を二つ以上の□に入れるということはできないとする。
整数の左端に 0 がある場合はそれを略す。例えば「012」は「12」に等しいとする。
□×□□+□□□=□□□□
数式を成立させるような整数の組の総数を求めよう。
0080デフォルトの名無しさん2014/12/15(月) 07:33:12.60ID:GJ+wxPK4
>>79
http://ideone.com/9KgVd9
0081デフォルトの名無しさん2014/12/15(月) 12:55:09.59ID:UqthbeWt
>>79 J
f =: 3 : 0
c =. 0
for_i. (i.!10) do.
a =. i A. '0123456789'
w =. (". 6 7 8 9 { a) = ((". 0 { a) * (". 1 2 { a)) + (". 3 4 5 { a)
c =. c + w
end.
c
)

f ''
350
0082デフォルトの名無しさん2014/12/15(月) 23:20:55.29ID:ZEKSsISJ
>>76
一方スマホアプリ板の本スレはあまり伸びてないらしいという
0083デフォルトの名無しさん2014/12/15(月) 23:26:01.20ID:EAB093cZ
そもそもスマホの主なユーザ層の若い世代は2chをあまり見ないのでは…?
0084デフォルトの名無しさん2014/12/15(月) 23:29:23.14ID:EAB093cZ
つか専用スレが立つくらいなら
相応の支持のあるゲームですよねえ
0085デフォルトの名無しさん2014/12/17(水) 01:56:33.81ID:1sjT5Wv/
  |=番兵|_
 (  ・ω・) < ステンバーイ
  〇={=}〇
  |::::::::::\
、、、し 、、、(((.@)ce、、ice、snow、、ice
0086422014/12/17(水) 03:14:38.33ID:ofMhppYe
>>42-43
前スレの819の問題で、誰もこのやり方で、
負けパターンのリストを、作らずに解いたの?

誰か、リストを作って解いた人いる?
0087デフォルトの名無しさん2014/12/17(水) 03:25:41.94ID:KcR7p2QV
前スレに貼り付けられた回答コードを見てけばいいんじゃないの
0088デフォルトの名無しさん2014/12/17(水) 07:41:39.90ID:LOGJmD8X
>>86
グランディ数でググるよろし
0089デフォルトの名無しさん2014/12/22(月) 11:15:57.59ID:9OjxlKCG
お題:
15パズルの問題を高速に生成するプログラム。
基本形に到達できる入れ替えに限る。
0090デフォルトの名無しさん2014/12/22(月) 11:37:52.99ID:f62n1e8a
>>89
http://d.hatena.ne.jp/yaneurao/20050821
0091デフォルトの名無しさん2014/12/22(月) 12:59:20.84ID:xGNlmGhJ
>>89
ttp://ideone.com/wfUZtq
C++。基本的に解けない問題は出さないはずだが質の悪い問題は結構出す。はず。
実際解くのはメンドくせーのでほぼデバッグしてません。
0092デフォルトの名無しさん2014/12/22(月) 16:28:08.84ID:qbTGJZGl
>>90
バレたか。 ネタ元は、
新潮選書 「3」の発想 数学教育に欠けているもの 単行本 – 2009/10/24
芳沢 光雄 (著)

>>91
なるほど。
0093デフォルトの名無しさん2014/12/22(月) 16:30:56.24ID:/hhsv/vC
>>90のフォローがなかったら>>25
0094デフォルトの名無しさん2014/12/22(月) 16:33:21.03ID:/hhsv/vC
問題生成なんかより解なし解ありの判定のほうがお題として面白かったんじゃなかろうか
0095デフォルトの名無しさん2014/12/22(月) 16:55:55.56ID:f62n1e8a
>>94
http://www.ajisaba.net/algorithm/slide_goal.html
0096デフォルトの名無しさん2014/12/22(月) 17:05:41.59ID:4+fOtis+
>>29-30の流れを維持しようとしてるのは麻雀くんかな?
0097デフォルトの名無しさん2014/12/22(月) 18:56:01.25ID:/5mhYHra
最短手順が長い問題を生成
0098デフォルトの名無しさん2014/12/22(月) 21:26:44.87ID:xGNlmGhJ
>>92
ゲーム理論と算数で解けてるから数学なんてかんけーねー。と主張したい俺ダメ人間。
数学怖い。
0099デフォルトの名無しさん2014/12/23(火) 22:03:59.65ID:Lhv9book
お題:要素数が3個の整数のリスト同士を位置に関係なく要素を比較したとき
一致するものが2個、一致しないものが1個となるかどうか判定する。
例
[1,2,3],[5,6,7] -> 偽
[1,1,1],[1,1,2] -> 真
[1,1,2],[2,2,1] -> 真
[9,8,9],[8,6,4] -> 偽
[9,7,2],[2,2,9] -> 真
0100デフォルトの名無しさん2014/12/23(火) 22:07:46.03ID:LdSANHZC
[123][123]=?
0101デフォルトの名無しさん2014/12/23(火) 22:09:02.31ID:5g0taQsy
>>100
偽だろそりゃ
0102デフォルトの名無しさん2014/12/23(火) 22:09:37.53ID:gaFUyFOj
>一致するものが2個、一致しないものが1個となるか

[123][123]=偽
0103デフォルトの名無しさん2014/12/23(火) 22:10:15.71ID:w8fvNum1
>>99
なんか手ごたえなさ過ぎてやる気出ないよそれ...
0104デフォルトの名無しさん2014/12/23(火) 22:13:42.37ID:gaFUyFOj
学校の宿題と言われても納得のレベル
0105デフォルトの名無しさん2014/12/23(火) 22:33:00.86ID:egk/n0nz
>>99
ソートしてから前から走査すればいい
おわり。はい次。
0106デフォルトの名無しさん2014/12/23(火) 22:45:13.88ID:LdSANHZC
>>99
ttp://ideone.com/AVMmDx
C++。あってるかな。
暇だったので解いた。あってるかどうかは知らん。
速度重視で。
0107デフォルトの名無しさん2014/12/24(水) 02:13:19.38ID:QdJY5kMF
[1,1,1],[1,1,2] -> 真
これは一致している数字は 1 だけなのに何で真なんだ?

[1,1,2],[2,2,1] -> 真
これも分からん。1 も 2 も両側にあるから、一致している数字は 2 個で一致しない数字は 0 個では?
0108デフォルトの名無しさん2014/12/24(水) 03:33:58.32ID:Y7j7WALA
>>107
要素の並び順を考慮しないだけであって
要素の重複は別途数えるってだけっしょ
考え方としては一致したものをリストから除いていくと考えればいいんじゃね
[1,1,1],[1,1,2] -> 1が一致 [1,1],[1,2] -> 1が一致 [1],[2] -> 残り不一致 -> 一致するものが2個、一致しないものが1個なので真
[1,1,2],[2,2,1] -> 1が一致 [1,2],[2,2] -> 2が一致 [1],[2] -> 残り不一致 -> 一致するものが2個、一致しないものが1個なので真
0109デフォルトの名無しさん2014/12/24(水) 13:40:47.77ID:mx5B7sKs
>>99
こんな判定が何の役に立つんだ?
0110デフォルトの名無しさん2014/12/24(水) 13:49:50.19ID:n8oxVcuc
科学技術計算的に必要なのかねー??自分もさっぱりだ。
0111デフォルトの名無しさん2014/12/24(水) 16:37:29.43ID:ioNhDOiv
縦横8*8 マスのチェス盤の、
左上の角の位置に、ナイトがある

その位置を開始点として、
そこから移動できるすべてのマスへの、最短手を答えよ

ナイトは1手で全方向へ、縦1横2、または縦2横1へ移動する
例えば、(5,5)の位置から、(4,3)(7,6)などに移動できる

仮に開始点を、(0,0)とすると、(1,2)(2,1)は1手で行ける
0112デフォルトの名無しさん2014/12/24(水) 18:07:52.12ID:i81GQnYc
>>111
C
ttp://ideone.com/HDi2cj
0113デフォルトの名無しさん2014/12/24(水) 19:24:43.81ID:Wq6i2xwr
お題:
A君とB君は二人三脚で100mの直線コースを走る。
コースの途中には赤と青の旗が10本ずつ置かれており、
それぞれ1番から10番までの番号が書かれている。
ただし、旗の位置や番号の並びはランダムである。
A君は赤の旗を、B君は青の旗をそれぞれ番号順に
すべて取らないとゴールできない。各旗の位置が
与えられたとき、2人は最短で何m走る必要があるか求めよ。

10,20,30,40,50,60,70,80,90,99,
90,80,70,60,50,40,30,20,10,1,
=> 278 (0->90->1->100の順に走る)
0114デフォルトの名無しさん2014/12/24(水) 21:00:33.21ID:0pxVS+GL
>>99 Io
f := method(a, b,
for(i, 0, 2,
c := 0
for(j, 0, 2, if(a at(j) == b at((i + j) % 3), c = c + 1))
if(c == 2, return(true))
)
false
)

Io> f(list(1,2,3),list(5,6,7))
==> false
Io> f(list(1,1,1),list(1,1,2))
==> true
Io> f(list(1,1,2),list(2,2,1))
==> true
Io> f(list(9,8,9),list(8,6,4))
==> false
Io> f(list(9,7,2),list(2,2,9))
==> true
0115デフォルトの名無しさん2014/12/25(木) 00:05:23.48ID:fNYkbBcD
>>99 Clojure
結構手応えあった。
http://ideone.com/CYKe3K
0116デフォルトの名無しさん2014/12/25(木) 00:10:05.11ID:WpMZaymj
>>109
プログラミング初心者に出す課題としてはまぁまぁの問題ではある
実用性うんぬんというなら統計データで特定の条件のデータを抜き出したいという事態に応用が・・・というくらいか?
0117デフォルトの名無しさん2014/12/25(木) 00:51:04.23ID:T4hkRg5o
>>113 Java
http://ideone.com/lHFW4d
出来たが冗長
0118デフォルトの名無しさん2014/12/25(木) 01:13:18.20ID:g3diUBPe
チマチマ比較せずに、順列を入れ替えた6通りの比較を並列にやって、一個でも
ヒットしたらtrueでいいだろ。
0119デフォルトの名無しさん2014/12/25(木) 01:59:26.63ID:T4hkRg5o
>>113 Java
http://ideone.com/BOdzry
色々気にしない場合
0120デフォルトの名無しさん2014/12/25(木) 02:11:42.51ID:WpMZaymj
>>113
これ↓のように置いて隣の数値との差を順番に足しこんでいくだけじゃねーの?
0,10,20,30,40,50,60,70,80,90,99,100
0,90,80,70,60,50,40,30,20,10,1,100
0121デフォルトの名無しさん2014/12/25(木) 02:12:21.57ID:WpMZaymj
訂正、差じゃなくて、差の絶対値な
0122デフォルトの名無しさん2014/12/25(木) 02:35:46.66ID:ELyjKCjH
>>99
https://paiza.io/projects/y-6JciQrYIDe_xnbTeuq8g
0123デフォルトの名無しさん2014/12/25(木) 03:47:37.90ID:WP7Aod+K
>>114
失敗した。間違っているのでこのコードは取り下げます
0124デフォルトの名無しさん2014/12/25(木) 05:02:38.89ID:172BCr7q
激問いまから始めたけど、一手戻す局面を生成するのが面倒だな。
前スレでだれかいってたけど。
やればできる程度だけどミスや速度面で問題でやすそう。
0125デフォルトの名無しさん2014/12/25(木) 09:56:58.98ID:LpH5Vq2m
>>99 Squeak Smalltalk

| fn |
fn := [:a :b |
 (a inject: b asBag into: [:rest :x |
  rest remove: x ifAbsent: []. rest]
 ) size = 1
].

fn value: #(1 2 3) value: #(5 6 7). "=> false "
fn value: #(1 1 1) value: #(1 1 2). "=> true "
fn value: #(1 1 2) value: #(2 2 1). "=> true "
fn value: #(9 8 9) value: #(8 6 4). "=> false "
fn value: #(9 7 2) value: #(2 2 9). "=> true "
0126デフォルトの名無しさん2014/12/25(木) 11:23:37.22ID:QxQ1oAhK
>>99 Haskell

import Data.List
f xs ys = if 1==length(foldr delete xs ys)then True else False

f[1,2,3][5,6,7] --false
f[1,1,1][1,1,2] --true
0127デフォルトの名無しさん2014/12/25(木) 11:34:14.12ID:fTgFJeSr
>>126
if-then いらんやんw
0128デフォルトの名無しさん2014/12/25(木) 11:34:42.67ID:QxQ1oAhK
if式要らなかったわ。
0129デフォルトの名無しさん2014/12/25(木) 14:11:33.22ID:VT84cn4h
>>124
1. 現局面から逆向きに動かせるブロックを列挙(ex. 1/2/3)
2. すべての動かしかたに対して(ex. 1/2/3/12/13/23/123)
-2-1 動かすブロックのみを逆に動かしてみる
-2-2 動かしてみた局面全体を順に動かしてみる
-2-3 順に動かした局面が現局面と同じなら、正しい一手戻り局面として登録

としてるけど、ほかにいい方法あるかな?
0130デフォルトの名無しさん2014/12/25(木) 19:17:53.07ID:Qgm6XcOp
激問は禁止でいいんじゃなかろうか
0131デフォルトの名無しさん2014/12/25(木) 19:55:10.98ID:WP7Aod+K
>>99 Io
f := method(a, b,
b foreach(v,
p := a indexOf(v)
if(p, a removeAt(p))
)
a size == 1
)
0132デフォルトの名無しさん2014/12/25(木) 21:34:07.34ID:FmLhwL13
>>129
俺は幅優先検索をスタート、ゴール両側からやって。
ゴール側は一々ゴールに戻れるか手順を完全に逆戻りして検証してる、凄い無駄。
スタート側からだけ検索をかけた方が早かったりorz。
今気がついたけど今までの手順で戻れることが解ってるから新たな一手の検証で
いいだな、我ながら脳味噌腐ってやがるw。

問題によってはメモリ(16GB)使い果たしてOSから死ね(kill singnal 9)って言われる。
OS X,Gaucheで実装。
0133デフォルトの名無しさん2014/12/25(木) 23:12:44.03ID:BwvRq+pS
>>130
アプリの本スレでもおなじ話題になってるから、
ゲキモン話したい奴らはスマホアプリ板に行けばいいと思う
0134デフォルトの名無しさん2014/12/26(金) 00:07:24.44ID:HP9WNxt/
ゲキモンゲットーだぜ
0135デフォルトの名無しさん2014/12/26(金) 04:46:12.78ID:fnDLLhrS
なんでゲキモンダメだよ?
専用スレ・携帯板こそ、プログラムでなく人動でゲームとして遊ぶスレではないのか。
0136デフォルトの名無しさん2014/12/26(金) 05:51:15.48ID:RE4uws7P
>>111 Io
f := method(i, n,
if(n > 6 or a at(i) < nil, return )
a atPut(i,n)
list(-25, -23, -14, - 10, 10, 14,23, 25) foreach(v, f(i + v, n + 1))
)
a := List clone setSize(144) map(0)
for(i, 26, 110, 12, for(j, 0, 7, a atPut(i+j,9)))
f(26, 0)
for(i, 26, 110, 12, for(j, 0, 7, a at(i + j)print) writeln)
----
03232345
34123434
21432345
32323434
23234345
34343454
43434545
54545456
0137デフォルトの名無しさん2014/12/26(金) 06:10:30.27ID:9Bx+rxwu
単一ゲームの解法を探すスレではないだろ
0138デフォルトの名無しさん2014/12/26(金) 10:29:41.50ID:5KqGgVdh
>>79 R
http://ideone.com/eQumEY

>>99 R
http://ideone.com/3BECgn

チェスも二人三脚もさっぱり分からん。
0139デフォルトの名無しさん2014/12/26(金) 15:34:07.54ID:fnDLLhrS
ゲキモンの戻す手はこれが最善では?
一列の一方移動だけを予め計算しておけば、回転、反転と列・行の合成で全体移動は簡単に求まる。
8マスに空、パネル、壁の3種がある場合の数は3^8。
それら全ての順方向移動を計算して、移動後の形をインデックスとした配列を求める。
0140デフォルトの名無しさん2014/12/26(金) 19:59:19.64ID:RE4uws7P
>>99 J
f=: 4 :'+./ 2 = +/"1 x ="1 (i.(! # y)) A. y'

1 2 3 f 5 6 7
0
1 1 1 f 1 1 2
1
1 1 2 f 2 2 1
1
9 8 9 f 8 6 4
0
9 7 2 f 2 2 9
1
0141デフォルトの名無しさん2014/12/27(土) 04:25:11.40ID:wAgkNNIo
お題 : 四つの文字 F, G, +, - から成る文字列を次の規則 (1), (2) によって次々と書き換えていくことを考える。
( 一つの文字列に対して規則 (1) と規則 (2) を同時に適用して新しい文字列を得る。その文字列に対してまた規則 (1) と
規則 (2) を同時に適用して新しい文字列を得る。以下同様に繰り返す。 )

規則 (1) … F は F-F-F-GG に変換する、
規則 (2) … G は GG に変換する。

初期文字列 ( 第 0 ステップの文字列 ) を F とする。第 1 ステップの文字列は F-F-F-GG となり、第 2 ステップの文字列は
F-F-F-GG-F-F-F-GG-F-F-F-GG-GGGG となる。第 8 ステップの文字列を求めよ。
0142デフォルトの名無しさん2014/12/27(土) 04:37:00.70ID:/Rtgkvjz
>>141
+はどこいった?
01431412014/12/27(土) 04:52:03.50ID:wAgkNNIo
+ は旅に出たので探さないでください…
0144デフォルトの名無しさん2014/12/27(土) 11:40:34.24ID:BPM46SyT
>>99
今更だが
Schemeで

http://codepad.org/zhhogNke
0145デフォルトの名無しさん2014/12/27(土) 13:07:22.88ID:VJUV41TP
>>141
Scheme
出題者は第8ステップ変換後の文字列の長さを自覚しているのだろうか?
29011文字となり結果を表示できるような長さではない

http://codepad.org/f8xXJWLm
0146デフォルトの名無しさん2014/12/27(土) 13:29:45.25ID:xVA+RyeM
ideoneで試してみると表示されたし、3万字くらいブラウザに表示してみると大した長さではない
http://ideone.com/wiQjQj
0147デフォルトの名無しさん2014/12/27(土) 15:37:59.94ID:Tra0DcGu
>>79 Haskell
http://ideone.com/HrjPB1
>>99 Haskell
http://ideone.com/xRdMin
>>111 Haskell
http://ideone.com/LIp6N5
>>141 Haskell
http://ideone.com/8Gzvdu
0148デフォルトの名無しさん2014/12/27(土) 20:30:24.63ID:miqkgc9t
整数 N が与えられた時に
1 2 3 4 5 6 7 8 9 10 = N
に、適当に + - * / や ( ) を入れて = N に出来るかどうか判定する。
例えばこんな感じ。
(1+(-2))/(-3)*(-4)*(-5)*(-6)*(-7)-(-((+(8*(-9)))*(-10))) = 1000
数字の間に何も入れずに
1 2 3 を 123 と解釈するのは無し。
あんまり面白くないかな。
0149デフォルトの名無しさん2014/12/27(土) 21:41:08.06ID:tOfexSf5
カッコの処理がメンドくせーなぁ。うーん。
0150片山博文MZ ◆T6xkBnTXz7B0 2014/12/27(土) 21:46:54.61ID:Cc0RXd7d
カッコは連結順序を変えるだけ
0151デフォルトの名無しさん2014/12/27(土) 21:55:24.27ID:2dHAjI9B
逆ポーランド
0152デフォルトの名無しさん2014/12/27(土) 22:08:53.94ID:0/FJBHBn
数字の前後に挿入可能な演算記号を総当たりで入れていく。
枝刈りで計算量を抑える。具体的にどうするかは知らん。

演算は加減乗除だけかな。べき乗とかルート記号とか
対数とか剰余とか使えそうな記号なんでも使っていいと
なると大変かな。Nも有理数や実数まで範囲を広げると大変かな。
01531112014/12/27(土) 22:13:05.21ID:u+dBZrZs
>>138
ナイトは八方桂馬のこと。
全方向(八方)へ、縦1横2、または縦2横1へ移動できる

例えば、(5,5)の位置から、(4,3)(7,6)など8か所へ移動できる
0154デフォルトの名無しさん2014/12/27(土) 22:14:04.80ID:PYmd3Xah
数式をツリーで表現するのは割と簡単でも、結局総当たりでしか解けないから
いまいち面白くないな。

あと全部の組み合わせを列挙すると膨大になるのと、ツリーを式に変換するのが以外と難しい。
0155片山博文MZ ◆T6xkBnTXz7B0 2014/12/27(土) 22:18:29.79ID:Cc0RXd7d
>>154
演算子の優先順位の比較に従ってカッコを付けるかどうか決める
0156片山博文MZ ◆T6xkBnTXz7B0 2014/12/27(土) 22:20:25.30ID:Cc0RXd7d
木構造をなめるのは再帰を使う
0157デフォルトの名無しさん2014/12/28(日) 09:16:33.33ID:GqM4jvZj
お題:関数fの引数aが空リストである時,
f(a)が値を返すなら真を返し,
f(a)が値を返さないなら偽を返す関数jdを作れ
(作れない時はプンプン怒れ.ただし俺に怒りを向けないでほしい)

例1 関数f1の場合,
f1(a) = if (a is empty list)

           then answer("empty list")

           else answer("not empty list")

f1は空リストに対し値"empty list"を返すので
jd(f1) -> 真

例2 関数f2の場合
f2(a) = f2(a)
f2は全ての引数に対して値を返さないので
jd(f2) -> 偽
0158デフォルトの名無しさん2014/12/28(日) 09:23:38.34ID:GqM4jvZj
>>157
補足
関数jdは部分関数ではなく完全関数として定義すること
0159デフォルトの名無しさん2014/12/28(日) 11:29:43.73ID:HTDd5uR9
>>157
shell
function jd() { $1 | timeout $((548 * 10 ** 10))d grep -q "." }
0160デフォルトの名無しさん2014/12/28(日) 14:17:01.62ID:sYWqNXaa
お題: 年越し問題
以下のように「煩」「悩」「空」の文字が8×7に配置されている(あなたの頭の中である)

煩悩煩悩煩煩悩煩
煩煩悩空悩悩悩悩
悩空悩空悩空悩煩
空煩煩悩悩悩煩煩
悩悩悩煩悩煩煩悩
煩悩空空悩煩悩煩
煩煩煩悩煩空悩煩

任意の文字を「鐘」に変えて、
縦・横・斜めに「煩」と「悩」が隣接しないようにしたい
最小の「鐘」の数を求めよ

これはNG(斜めに「煩悩」がある)
空悩
煩空

これはOK
煩鐘悩
煩鐘悩
0161デフォルトの名無しさん2014/12/28(日) 18:51:21.89ID:A4cNcICK
>>111 C
http://ideone.com/8ZTpOf
0162デフォルトの名無しさん2014/12/29(月) 02:36:47.69ID:OgrteGKW
>>160 Java
http://ideone.com/5lt5Y6
合ってんのかこれ
0163デフォルトの名無しさん2014/12/29(月) 02:38:11.57ID:OgrteGKW
あれ、なんかおかしいわw
0164デフォルトの名無しさん2014/12/29(月) 02:44:09.32ID:OgrteGKW
>>162
明らかにおかしかった初期化バグは退治された。
だけど結果は合ってんのかこれ。
0165デフォルトの名無しさん2014/12/29(月) 04:47:36.98ID:naIzv4vi
>>111 c++
http://codepad.org/xPlrDZ9n
0166片山博文MZ ◆T6xkBnTXz7B0 2014/12/29(月) 05:19:20.46ID:k/a0XR+r
お題:お使いの言語で次の計算を確かめる。

-zero * +inf == ?
+inf + -inf == ?
-inf / -inf == ?
-nan * +zero == ?
+zero * -zero == ?
+nan - +nan == ?
0167デフォルトの名無しさん2014/12/29(月) 09:53:22.96ID:kUb0OfEc
>>157
人気ないな、教科書的すぎたか
自己レス、(;´д`)トホホ…
間違ってるかもしれないけど

http://codepad.org/5Z320f07
0168デフォルトの名無しさん2014/12/29(月) 10:45:02.31ID:iQoYiA7Z
お題:前に詰めた

初売りのためにお客さんが並んでいます。
店の前の32マスにはお客さん(i)、空き(.)、警備員(P)がいます。

← 前
店 iii.ii.i..ii..P.ii..i..Pii.ii...

混んできたので一歩前に詰めてもらうことにしました。
前方のお客さんから順に前に空きがあれば一歩前に進んでもらいます。
空きが複数あっても、進むのは一歩だけです。
警備員は動かず、お客さんは警備員を越えられません。

店 iii.ii.i..ii..P.ii..i..Pii.ii...
↓
店 iiiii.i..ii...Pii..i...Piiii....

さて、前に詰めた状態が与えられたとき、
詰める前にあり得たすべての状態を示してください。
たとえば、以下のようにあり得た状態がない場合もあります。

店 ......iP(以下略)
0169デフォルトの名無しさん2014/12/29(月) 10:55:59.67ID:OgrteGKW
>>168
激問の逆方向探索と同じよーな…
0170デフォルトの名無しさん2014/12/29(月) 10:59:01.64ID:iQoYiA7Z
>>169
バレたw
こうすればいいのかなと思ってw
0171デフォルトの名無しさん2014/12/29(月) 11:46:02.05ID:Ms14FqLW
馬鹿には無理
0172デフォルトの名無しさん2014/12/29(月) 12:50:15.22ID:O818Lvaa
激問の他力本願野郎はいい加減消えろよ
0173デフォルトの名無しさん2014/12/29(月) 15:33:42.55ID:onEpMpuY
>>168
解いてあげたから激問にも活かしてね
http://ideone.com/mEYVT2
0174デフォルトの名無しさん2014/12/29(月) 21:20:23.49ID:hrQe0PF1
ゲキモンは解かせたい奴がいて、そいつが一人で張り切ってるというわけではないだろ?
自分もやってみようとしてるけど完成までいってない。
ルールは簡単で、探索部分は各種ゲームに共通して高速化などの工夫するモデルとして適当。
0175デフォルトの名無しさん2014/12/29(月) 21:44:31.35ID:AXqZfHT5
お題を出すからには模範解答を用意しとけって話だよ
0176デフォルトの名無しさん2014/12/29(月) 21:53:38.27ID:ijV2qLIL
それはそうだ。
0177デフォルトの名無しさん2014/12/29(月) 22:02:46.06ID:TmQI76a9
プログラミングのお題スレ Part6©2ch.net
0178デフォルトの名無しさん2014/12/29(月) 22:09:48.65ID:88bYnTsn
解けるのが確かなら、模範解答はいらんけど
0179デフォルトの名無しさん2014/12/29(月) 22:12:03.87ID:ZMsPaQMv
解答付ける場合は模範でなくてもいい気が
0180デフォルトの名無しさん2014/12/29(月) 22:12:15.20ID:L6ykxqhk
>>160
C#
http://ideone.com/gGJjKo
これでいいのかよくわからん。
実行効率は考えずに可読性とコンパクトさだけを考えて書いたから無駄が多い。
0181デフォルトの名無しさん2014/12/29(月) 22:28:41.79ID:AXqZfHT5
>>178
解けるのが確かなら、模範解答は作れるはずだけどな
0182デフォルトの名無しさん2014/12/29(月) 22:38:24.24ID:OgrteGKW
>>180
煩煩煩煩煩
煩悩悩悩煩
煩悩煩悩煩
煩悩悩悩煩
煩煩煩煩煩

こういう形だと9個鐘にならん?
0183デフォルトの名無しさん2014/12/29(月) 22:42:53.44ID:L6ykxqhk
>>182
なっちゃうねw
根本的に考え方が間違ってるのか...
01841682014/12/29(月) 22:59:36.09ID:iQoYiA7Z
>>168
模範解答になるかはわからないけど129の方法で作ってはある
C
http://ideone.com/pP7FSv
Prologわけわからんw
0185デフォルトの名無しさん2014/12/29(月) 23:04:00.15ID:MGpqJSmu
というか激問は荒れるからサヨナラしたい
0186デフォルトの名無しさん2014/12/30(火) 03:48:26.20ID:8nm/692r
>>111
みんな、番兵・優先度キュー・ダイクストラなどを、
使って解いたの?

>>42-43
連続した空所(石の無い所)を、1つにまとめたり、
両端の空所を削除して、
石のパターンを正規化して保存して、解いた人いる?

__o___oo_ → _o_oo_ → o_oo
0187デフォルトの名無しさん2014/12/30(火) 05:58:44.04ID:NIJEvlrs
>>141 R
http://ideone.com/ONyj4h
0188デフォルトの名無しさん2014/12/30(火) 08:51:31.67ID:NxxFJ2Ok
>>148
誰かお願いします。
こういうのはどんなデータ形式で問題を表現すれば良いのでしょうか?
0189デフォルトの名無しさん2014/12/30(火) 09:44:30.03ID:vPTYHLe9
>>188
まず出題者が模範解答を書いてから。
0190デフォルトの名無しさん2014/12/30(火) 16:09:17.23ID:VtLWUdXV
>>167
面白かったですありがとう
0191デフォルトの名無しさん2014/12/30(火) 20:08:43.11ID:+Lnp2Jgo
>>188
一応書いたけど組み合わせ爆発起こして永延と計算し続けるw
0192デフォルトの名無しさん2014/12/30(火) 21:16:02.42ID:vNwijaqn
カッコなかったら、10!^4くらいで終わりそうなんだけど、かっこあったらいくらでも変化有るので厳しい。
0193デフォルトの名無しさん2014/12/30(火) 21:45:11.55ID:+Lnp2Jgo
9個の演算子の組み合わせが94143280通り
括弧によって演算順が任意になるので
これを数字の入れ替えで対応して3628800通り
合わせて341627134464000通りじゃない?
0194デフォルトの名無しさん2014/12/30(火) 22:02:22.30ID:cPALYY2N
>>184
negaいらない

51 unsigned long b = min;
69 } while (b = ((b | nega) + min) & move_R);
↓
51 unsigned long b = move_R;
69 } while (b = (b - min) & move_R);
0195デフォルトの名無しさん2014/12/30(火) 22:23:27.48ID:tRloJVn4
テンパズルの解の探索 - 数学自由研究
http://azisava.sak ura.ne.jp/math/ten_puzzle.html


完全版 テンパズル (10puzzle) 全問題 全解答一覧: はまのおと
http://hama-1987.cocolog-nifty.com/blog/2014/08/10puzzle-3de2.html
0196デフォルトの名無しさん2014/12/30(火) 22:51:44.24ID:XXXHWySa
>>193
括弧を自由に使えて演算の順序は自由に入れ替えできるんだから
結局等価な二分木で考えて良いってことじゃないか。

そうすると、二分木の形の組み合わせが10 * (9!) * (9!) / 2 通り、
最初の10コの数字を除くノードの数は45、ノード(演算子)の種類は+、*、/の3つ、
符号(-)の組み合わせがノードごとに4通りだから、

5 * (9!) * (9!) * 45 * 3 * 4 = 355,541,114,880,000

このぐらいかなあ。
0197デフォルトの名無しさん2014/12/30(火) 23:23:41.77ID:PNiPHmHi
1 2 3 4 = Nの場合だと
N=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,20,21,23,24,25,28,36の25個(負数入れたら49個)で合ってるかな?
0198デフォルトの名無しさん2014/12/31(水) 04:22:45.74ID:e3nqTxFR
>>196
終わらんなー。一目見て嫌気がさすわけだ。
0199デフォルトの名無しさん2014/12/31(水) 06:13:21.62ID:797dGgIL
(((((((1+2)+3)+4)-5)*6)+7)*((8+9)+10)) = 999
((((((((1+2)+3)+4)+5)+6)+7)+(8*9))*10) = 1000
-((((((1+2)+3)+4)-5)+6)*((7-8)-(9*10))) = 1001
-(((1+2)*3)*((4-((5*(6+7))*(8+9)))-10)) = 9999
(((((1+2)+3)+4)*((5+((6+7)*8))-9))*10) = 10000
(((1+2)/3)+((4*5)*((6+((7*8)*9))-10))) = 10001
こんなん出来たが不必要な括弧を消していないw

1 2 3 4 5 6 7 8 = Nだと探索完了(Nが見つからなかった場合)まで5,732ms
1 2 3 4 5 6 7 8 9 = Nだと探索完了まで159,835ms
1 2 3 4 5 6 7 8 9 10 = Nだと…?
0200デフォルトの名無しさん2014/12/31(水) 07:36:12.40ID:FZ7B/GlD
ここの人ってCodeforcesやTopcoderはやらないの?
Topcoderスレ過疎ってて寂しいんだけど。
0201デフォルトの名無しさん2014/12/31(水) 07:47:53.91ID:J7eQL95T
プロコンはtwitterのイメージだが
0202デフォルトの名無しさん2014/12/31(水) 08:21:19.39ID:797dGgIL
((1+2+3+4-5)*6+7)*(8+9+10) = 999
(1+2+3+4+5+6+7+8*9)*10 = 1000
-(1+2+3+4-5+6)*(7-8-9*10) = 1001
-(1+2)*3*(4-5*(6+7)*(8+9)-10) = 9999
(1+2+3+4)*(5+(6+7)*8-9)*10 = 10000
(1+2)/3+4*5*(6+7*8*9-10) = 10001
括弧を整理して出力するようにしたらこうなった

ところでコードは出題者の模範解答が出るまで貼らない流れなの?
0203デフォルトの名無しさん2014/12/31(水) 11:14:56.65ID:tbkKnY0y
>>202
数式の無駄な括弧を除去する
にはどうするんですか?
正規表現とか使うんですか?
0204デフォルトの名無しさん2014/12/31(水) 13:02:27.73ID:nSh+alF0
ちょとルールが違うけどC/C++で小町算ならこのコードが速そう
https://gist.github.com/qnighy/276122
0205デフォルトの名無しさん2014/12/31(水) 13:07:09.23ID:nSh+alF0
>>194
ほんとだ
129で移動候補が少ないほうから列挙されてたから考えずにそう作ったっぽい
ありがとう
直した
http://ideone.com/pP7FSv

馬鹿には無理とか他力本願野郎とか模範解答出せとか言ってた方々は
コードも書けない非効率なとこも指摘できない口だけ野郎なんですかね
0206デフォルトの名無しさん2014/12/31(水) 13:39:59.69ID:ieO8Y+yE
>>205
激問の攻略は余所でやってください
0207 ◆QZaw55cn4c 2014/12/31(水) 13:46:02.42ID:vgeDgSob
>>205
>コードも書けない非効率なとこも指摘できない
気持ちはわからないわけでもないが、それは「QZ化」と呼ばれる変態変化(へんげ)の兆候だ
自重したまえ
0208デフォルトの名無しさん2014/12/31(水) 13:56:53.35ID:nSh+alF0
>>206
>>207
ご指摘ありがとう
すまんかった
0209 ◆QZaw55cn4c 2014/12/31(水) 14:24:32.75ID:vgeDgSob
>>208
気にするな貴様はまだ軽症だ重症例はこちら
http://peace.2ch.net/test/read.cgi/tech/1313183984/
方々から「つける薬もない」とあきれられて早5年
おっと馬鹿が感染るかもしれないから閲覧には注意し給へ
0210デフォルトの名無しさん2014/12/31(水) 16:06:29.17ID:797dGgIL
>>203
括弧付きの式から何とかするのではなく、合成時の場合分けで何とかした。
02111602015/01/01(木) 01:45:24.44ID:bYpQjJS4
>>160の回答ですが、答えは22です
探索して解くことを想定していましたが、
別の方法で簡単に求められてしまいました
愚直に探索すると5秒くらいかかります
0212デフォルトの名無しさん2015/01/01(木) 03:07:10.69ID:0wlrkYtM
宋って人、わりとまともなこと言うことが多いけど、
こういう話になるとなぜか共産主義みたいなこと言うよな。
0213デフォルトの名無しさん2015/01/01(木) 09:36:02.24ID:Z/g5TCdZ
共産主義はあなたの嫌いな思想の総称ではないぞい
0214デフォルトの名無しさん2015/01/01(木) 17:10:30.59ID:0VU7bj33
>>160
http://ideone.com/Ao6e7j
0215デフォルトの名無しさん2015/01/01(木) 17:46:38.65ID:elhRbHDr
まだこういう一つのメソッドに全部突っ込むスタイルの人っているんだなw
0216デフォルトの名無しさん2015/01/01(木) 20:29:58.01ID:sa8NdrXP
これを分けて、分かりやすくなるのかな……
0217デフォルトの名無しさん2015/01/02(金) 19:36:46.74ID:C0yW4Jjr
このスレのみんなは↓こういうプログラミングコンテストのサイトに登録してたりするん?

http://atcoder.jp
0218デフォルトの名無しさん2015/01/03(土) 00:57:40.58ID:mNe+vS5s
ジャップによるtopcoderのパクリサイト?
0219デフォルトの名無しさん2015/01/03(土) 05:42:39.20ID:EJRvAfwK
>>141 Io
f : =method(n,
s := "F" asMutable
n repeat(s = s replaceSeq("G", "GG")replaceSeq("F", "F-F-F-GG"))
)
0220デフォルトの名無しさん2015/01/03(土) 17:34:04.83ID:EJRvAfwK
お題:「2以上の自然数nについて 2^n-2 がnで割り切れるときnは素数である」の反例を探す。
0221デフォルトの名無しさん2015/01/03(土) 19:12:05.10ID:wE6j5dI1
>>220
(define (reigai limit)
(let loop ((n 2) (result '()))
(if (> n limit)
result
(loop (inc n) (if (and (zero? (modulo (- (expt 2 n) 2) n)) (not (prime? n)))
(cons n result)
result)))))
0222デフォルトの名無しさん2015/01/03(土) 20:02:10.33ID:XLRg19ve
>>220
c
途中で桁あふれしてしまうので 52 個まで
http://ideone.com/HWRQfM
0223デフォルトの名無しさん2015/01/03(土) 22:47:02.75ID:Hmq4CGG3
>>79 Perl
http://ideone.com/j9M2wD
>>99 Perl
http://ideone.com/1wRDJI
>>111 Perl
http://ideone.com/L3Fs2w
>>141 Perl
http://ideone.com/cBpzra
>>160 Perl
http://ideone.com/Fr4eDC
0224デフォルトの名無しさん2015/01/03(土) 23:14:23.07ID:Hmq4CGG3
>>223 修正
>>160 Perl
http://ideone.com/F4xsSL
0225デフォルトの名無しさん2015/01/04(日) 01:25:18.81ID:ulO+nk3L
>>141 J
f =: 4 : 0
;@(('F-F-F-GG';'GG';'-') {~ 'FG-'&i.)^:(x) y
)

2 f 'F'
F-F-F-GG-F-F-F-GG-F-F-F-GG-GGGG

# 8 f 'F'
29011
0226デフォルトの名無しさん2015/01/04(日) 03:46:42.12ID:kw9bqH4f
>>220 Emacs Lisp
(defun hanrei (upto)
(let ((n 3) l)
(while (<= n upto)
(when (and (= (let ((i n)
(r 1))
(while (> i 0)
(setq r (% (* r 2) n))
(setq i (1- i)))
r) 2)
(eq (let ((n n))
(when (= (% n 2) 1)
(let ((i 3)
(r t))
(while (> n (* i i))
(when (= (% n i) 0)
(setq r nil n 0))
(setq i (+ i 2)))
r))) nil))
(push n l))
(setq n (1+ n)))
(reverse l)))

(progn (setq result (hanrei 100000)) nil)
nil

(length result)
78

(nthcdr 51 result)
(42799 46657 49141 49981 52633 55245 57421 60701 60787 62745 63973 65077 65281 68101 72885 74665 75361 80581 83333 83665 85489 87249 88357 88561 90751 91001 93961)
0227デフォルトの名無しさん2015/01/04(日) 08:31:10.80ID:eBd7g4M7
>>226
再帰で書き直してほしい
0228デフォルトの名無しさん2015/01/04(日) 08:59:51.43ID:Xl8XYZDS
再帰が苦手なLisp環境もあるんですよぉ
0229デフォルトの名無しさん2015/01/04(日) 12:53:40.21ID:eBd7g4M7
へ?Emacs Lispだろ?
勉強すれば?
0230デフォルトの名無しさん2015/01/04(日) 15:42:07.21ID:ulO+nk3L
>>220 Io
powerMod := method(a, b, m,
r := 1
for(i, 0, b log2 floor, if(b at(i) == 1, r = r * a % m); a = a * a % m)
r
)
isPrime := method(n,
if(n isEven or n < 2, return(n == 2))
for(i, 3, n sqrt floor, 2, if(n % i == 0, return(false)))
true
)
isPrime2 := method(n,
if(n == 2, (2 ** n - 2) % n == 0, powerMod(2, n, n) == 2)
)
f := method(z,
for(i, 2, z, if(isPrime(i) != isPrime2(i), i println))
)

Io> f(1000)
341
561
645
0231デフォルトの名無しさん2015/01/04(日) 17:13:50.17ID:kw9bqH4f
>>226は素数の二乗を誤って素数と判定していました。
誤 (> n (* i i))
正 (>= n (* i i))

>>227
繰り返しを使わないように書き直してみました。
私の環境だと10585と11305の間でSEGVが発生してしまいました。

(require 'cl-lib)

(defun hanrei (upto)
(let (l)
(cl-labels ((f (n)
(when (<= n upto)
(when (and (= (cl-labels ((f (i r)
(if (<= i 0) r (f (1- i) (% (* r 2) n)))))
(f n 1)) 2)
(eq (when (= (% n 2) 1)
(cl-labels ((f (i)
(if (< n (* i i)) t (when (/= (% n i) 0) (f (+ i 2))))))
(f 3))) nil))
(push n l))
(f (1+ n)))))
(f 3))
(reverse l)))

(let ((max-lisp-eval-depth most-positive-fixnum) (max-specpdl-size most-positive-fixnum)) (hanrei 10703))
(341 561 645 1105 1387 1729 1905 2047 2465 2701 2821 3277 4033 4369 4371 4681 5461 6601 7957 8321 8481 8911 10261 10585)

(let ((max-lisp-eval-depth most-positive-fixnum) (max-specpdl-size most-positive-fixnum)) (hanrei 11054))
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
0232 ◆QZaw55cn4c 2015/01/04(日) 20:27:19.10ID:kU4tFNpU
>>211
ああん!はまったよぅ‥
std::set に与える比較関数 operator<() を間違えていた‥これで6時間無駄にしたか‥
ふと画面をみると
煩悩煩悩煩煩悩煩煩煩悩‥うるさいわい!
当分年は越せないようだ‥
0233デフォルトの名無しさん2015/01/05(月) 10:28:48.78ID:yGPXja5b
>>220 Squeak Smalltalk
| ans |
ans := OrderedCollection new.
2 to: Float infinity do: [:n |
 | m |
 m := (2 raisedTo: n) - 2.
 (m isDivisibleBy: n) ifTrue: [n isPrime
  ifFalse: [(ans add: n; size) = 24 ifTrue: [^ans asArray]]]
]

=> #(341 561 645 1105 1387 1729 1905 2047 2465 2701 2821
 3277 4033 4369 4371 4681 5461 6601 7957 8321 8481 8911
 10261 10585)
0234デフォルトの名無しさん2015/01/05(月) 13:30:10.97ID:fxjHSPae
>>220
Scheme 末尾再帰版
http://codepad.org/Q7cX9QYx
0235デフォルトの名無しさん2015/01/06(火) 01:33:58.92ID:pRP3QEbe
>>220
pow(2, n-2)は奇数で割り切れるわけないじゃんね。
どういう意味ですか?
0236デフォルトの名無しさん2015/01/06(火) 01:41:24.82ID:pRP3QEbe
もしかして−1なんですね
0237デフォルトの名無しさん2015/01/06(火) 01:48:57.28ID:Sc9hEA6r
>>235
演算子の優先順位
0238デフォルトの名無しさん2015/01/06(火) 02:03:17.19ID:pRP3QEbe
偶数は素数じゃないじゃん(2以外)
0239デフォルトの名無しさん2015/01/06(火) 02:06:24.76ID:Sc9hEA6r
n=3の場合
2^n-2 = 6
6 % 3 = 0
0240デフォルトの名無しさん2015/01/06(火) 06:17:42.32ID:pRP3QEbe
なるほど。ありがとうございます
0241デフォルトの名無しさん2015/01/06(火) 07:37:46.57ID:pRP3QEbe
>>220
http://codepad.org/afrvIcjs
153 341 1305 1729 1803 3825 4033 4369 8321 10825 12801 16705 33153 34945 46657 49981 63973 65281
なんか違う
0242デフォルトの名無しさん2015/01/06(火) 08:45:33.28ID:8Sq14aUr
すまんな
爆笑!!
0243デフォルトの名無しさん2015/01/06(火) 17:20:48.91ID:pRP3QEbe
341 561 645 1105 1387 1729 1905 2047 2465 2701 2821
3277 4033 4369 4371 4681 5461 6601 7957 8321 8481 8911
10261 10585 11305 12801 13741 13747 13981 14491 15709
15841 16705 18705 18721 19951 23001 23377 25761 29341
30121 30889 31417 31609 31621 33153 34945 35333 39865
41041 41665 42799 46657 49141 49981 52633 55245 57421
60701 60787 62745 63973 65077 65281
これで良さそう
0244デフォルトの名無しさん2015/01/06(火) 20:13:33.14ID:8Sq14aUr
おまえ、きえろ
荒らしに等しい
0245デフォルトの名無しさん2015/01/06(火) 22:56:32.47ID:7yBhbcNM
誰にもかまってもらえないの。
かまってかまって。
0246デフォルトの名無しさん2015/01/09(金) 02:03:51.89ID:TIj1I4KF
お題。「ビルゲイツの面接試験」2003を変形。
入社目安、5分??

今、ABCDの4人はStart地点におり、
そこから全員がEnd地点へ、最短時間の17分で行く方法は?

条件
1.S,E間には、橋が架かっており、
同時に橋を渡れるのは2人まで

2.橋を渡る際には必ず、1つしかない懐中電灯を持って、
照らしながら渡る
(最後以外は、誰かがEに行っても、Eにいる誰かが、
懐中電灯を持って、Sに戻るという意味)

3.2人で橋を渡る際には、時間が掛かる方へ合わせる
橋を渡るのに、各人が掛かる時間(分)は、
A:1,B:2,C:5,D:10
0247デフォルトの名無しさん2015/01/09(金) 03:55:39.96ID:KV5nGDYE
AB渡るA戻るCD渡るB戻るAB渡る
0248デフォルトの名無しさん2015/01/09(金) 17:32:10.96ID:zPwjNQ6g
>>246 Squeak Smalltalk

| S E steps queue results |
S := {#A->1. #B->2. #C->5. #D->10} asOrderedCollection.
E := Set new.
steps := OrderedCollection new.
queue := OrderedCollection with: {S. E. steps}.
results := OrderedCollection new.
[queue notEmpty] whileTrue: [
 S := queue first first.
 E := queue first second.
 steps := queue removeFirst third.
 S combinations: 2 atATimeDo: [:pair |
  | currS currE step currSteps |
  currS := S copy. currE := E copy. currSteps := steps copy.
  currE addAll: (currS removeAll: pair).
  step := (pair collect: #key) -> (pair detectMax: #value) value.
  currSteps add: step.
  currS ifEmpty: [results add: currSteps asArray] ifNotEmpty: [
   currSteps add: (currS add: (currE remove: (currE detectMin: #value))).
   queue add: {currS. currE. currSteps} deepCopy
  ]
 ]
].
^results detectMin: [:each | (each collect: #value) sum]

=> {#(#A #B)->2 . #A->1 . #(#C #D)->10 . #B->2 . #(#A #B)->2}
0249デフォルトの名無しさん2015/01/11(日) 01:43:47.65ID:jQsmpaL2
総当たりでプログラミングしたいんだが、どうすればよい?
途中の分岐も覚えておいて、総当たりしたい
BackTrack法? PathTree?

(S,E)(ABCD,nil) → SE(AB) SからEへ 6通り
(CD,AB) → ES(A) EからSへ 2通り
(ACD,B) → SE(AC) 3通り
(D,ABC) → ES(A) 3通り
(AD,BC) → SE(AD) 1通り
(nil,ABCD)
0250デフォルトの名無しさん2015/01/11(日) 01:54:50.47ID:zjPFgjun
俺なら普通に再起処理で組むけど。
02512492015/01/11(日) 02:23:07.83ID:jQsmpaL2
再帰か?一本道ならわかるけど、
f(){f()}

6*2*3*3*1 通り

分岐するから、わからんw
0252デフォルトの名無しさん2015/01/11(日) 09:40:18.04ID:qlxz8U33
>>249
記号のいみわからん
0253デフォルトの名無しさん2015/01/11(日) 13:46:55.67ID:sVpA7dIq
>>246 Ruby
http://ideone.com/bNa0rW
0254デフォルトの名無しさん2015/01/11(日) 19:34:01.98ID:a9Qzv2hU
>>246 Perl
http://ideone.com/xCfEyx
0255デフォルトの名無しさん2015/01/11(日) 22:20:03.28ID:+NAlswWM
【お題】
M円の買い物をしたときに、やりとりする通貨の枚数を最小にするには
いくら支払えばよいか?使用できる通貨の枚数に上限はないものとする

(例1) M=108 → 110円
 お釣りなく支払う場合、硬貨が5枚必要
 110円で支払うと、支払い2枚、お釣り2枚の合計4枚で済む

(例2) M=555 → 555円
 お釣りなく支払うのが最小枚数の3枚

(例3) M=9999 → 10000円
0256デフォルトの名無しさん2015/01/11(日) 23:15:07.30ID:LMtWGwUz
また宿題?
0257デフォルトの名無しさん2015/01/12(月) 10:28:17.92ID:hpX4ehNn
通貨(即位記念10万円コイン)
0258デフォルトの名無しさん2015/01/12(月) 17:56:26.94ID:DhOqG7KA
>>255 Ruby
http://ideone.com/EebgFk
0259デフォルトの名無しさん2015/01/13(火) 08:20:25.95ID:Lq976p7E
>>258
そして忘れられる2000円札
0260デフォルトの名無しさん2015/01/13(火) 12:34:36.55ID:Ev7UJkAF
クレカや電子マネーなら常に0枚
0261デフォルトの名無しさん2015/01/13(火) 18:52:37.80ID:4E9tx8H3
>>255
お釣りもやろうぜ
0262デフォルトの名無しさん2015/01/13(火) 20:16:53.93ID:5CeIWqhl
俺のチンポ使用料は一億円
0263デフォルトの名無しさん2015/01/14(水) 01:47:17.16ID:49lpCiLZ
>>246 C++
http://codepad.org/yHIqX3kj
0264デフォルトの名無しさん2015/01/14(水) 01:50:16.33ID:sFNbKbXu
vectorはTが同じだったらoperator=が定義されてるよ。
0265デフォルトの名無しさん2015/01/14(水) 02:09:37.72ID:49lpCiLZ
はい、コピーメソッドは不要ですね
0266デフォルトの名無しさん2015/01/14(水) 02:11:06.60ID:49lpCiLZ
あとjのループは初期値iでした
0267デフォルトの名無しさん2015/01/14(水) 02:51:17.19ID:LgbjfHh9
>>263
こんなに複雑なの?
0268デフォルトの名無しさん2015/01/14(水) 14:43:35.38ID:s6p0C0Kn
>>246 C++
https://ideone.com/N9GusB
0269デフォルトの名無しさん2015/01/15(木) 12:18:00.26ID:KHkx343q
こういう文字列が与えられるので□の中に+/*-のどれが当てはまるか出力しろ
スペース区切りで出力しろ
解が複数ある場合は、改行区切りで出力しろ

出力サンプル
Q:
8□3=24
A:
/

Q:
2□4□10=-4
+ -
0270デフォルトの名無しさん2015/01/15(木) 16:27:24.27ID:TmXAROfd
なんかやだ
0271デフォルトの名無しさん2015/01/16(金) 01:32:36.39ID:eHI5YRba
♪割っちゃった〜!(空耳アワー)
0272デフォルトの名無しさん2015/01/16(金) 20:26:42.96ID:fDyrbIad
>>246 C++ 二回目
http://codepad.org/KJyeyWDU
0273デフォルトの名無しさん2015/01/16(金) 21:43:43.60ID:cRtXed+o
お題:
conwayの数列の第n項を求めるプログラムを書いてください。
3,13,1113,3113,132113,...
数列の意味は
最初は3が1個なので{1,3}です。
今度は1が1個で3が1個なので{{1,1},{1,3}}です。
次は1が連続して3個並んでいて、3は1個なので{{3,1},{1,3}}です。
以下同様の手順です。
0274デフォルトの名無しさん2015/01/16(金) 22:27:38.95ID:E6bJ8cyd
1:1
2:2
3:4
4:4
5:6
...
50:1040344

すっごく長くなる?
0275デフォルトの名無しさん2015/01/16(金) 22:34:05.21ID:lBWuATDI
つまんなそうだからパス
0276デフォルトの名無しさん2015/01/17(土) 00:10:13.41ID:KOOYDoMc
>>273 C++
https://ideone.com/UW3yyO
ideoneだとn=39まで
40はRuntime Error
0277デフォルトの名無しさん2015/01/17(土) 00:20:38.84ID:JuBSWUfO
What is the size limit for the source code, input and output?
64 kB.

これに引っかかってるんだな
0278デフォルトの名無しさん2015/01/17(土) 00:25:26.51ID:KOOYDoMc
>>255 C++
https://ideone.com/KTZQaQ
0279デフォルトの名無しさん2015/01/17(土) 00:28:34.22ID:KOOYDoMc
>>277
そうなのか知らなかった
サンクス
0280デフォルトの名無しさん2015/01/17(土) 07:36:41.99ID:mT/cBYCN
>>273 Perl
https://ideone.com/DxYPCZ
02812732015/01/17(土) 08:33:39.09ID:0LKV4/k2
お題:
273の追加です。第n項の数はCλ^nに近いそうです。
Cは定数で、λは
λ=1.30373208460257638390068004051191852322256526861420...
です。確かめてください。
0282デフォルトの名無しさん2015/01/17(土) 08:34:18.45ID:AENSvI4Y
w
0283デフォルトの名無しさん2015/01/17(土) 08:36:14.62ID:2qw88r7l
>>281
アホ
0284デフォルトの名無しさん2015/01/17(土) 11:01:49.92ID:4GRteQNG
>>273 haskell, とりあえず最初20項 (thx. >>277)
https://ideone.com/whe3Ek
0285デフォルトの名無しさん2015/01/17(土) 11:11:47.52ID:0LKV4/k2
お題:
数x,yについて、xから+−y以内の有理数のうち
もっとも簡単なものを求めるプログラムを書いてください。
簡単であるとはr1=p1/q1, r2=p2/q2(既約分数)について
|p1|<=|p2|かつ|q1|<=|q2|のとき、r1はr2より簡単とします。
2/3 は3/5より簡単です。
例えばx=0.3, y=1/10のときには答えは1/3となります。
0286デフォルトの名無しさん2015/01/17(土) 11:24:45.46ID:4GRteQNG
>>284 間違えてた (eleven が 次で two one にならない) けど修正すぐだし許してつかあさい
0287デフォルトの名無しさん2015/01/17(土) 13:08:49.87ID:BluM5a1X
>>285
2/3と3/2はどちらか簡単か
0288デフォルトの名無しさん2015/01/17(土) 13:21:54.86ID:0LKV4/k2
>>287
それは比較不能。
しかし、一定の区間において必ず両端より簡単な有理数が
ひとつ存在するはず。
0289デフォルトの名無しさん2015/01/17(土) 13:27:14.97ID:0LKV4/k2
ああ、間違えた。端っこの場合もある。
0=0/1 と考えてほしい。
0290デフォルトの名無しさん2015/01/17(土) 14:10:42.98ID:JuBSWUfO
>>285
XとYの範囲は未規定?
0291デフォルトの名無しさん2015/01/17(土) 14:14:30.66ID:0LKV4/k2
>>290
実数ってことにして。
複素数までいれるとそもそも大小比較できないし。
0292デフォルトの名無しさん2015/01/17(土) 14:39:23.26ID:BluM5a1X
符号の扱いも不明瞭だよね。
0293デフォルトの名無しさん2015/01/17(土) 14:48:52.56ID:0LKV4/k2
実数だからもちろん正負ありだよ。
0294デフォルトの名無しさん2015/01/17(土) 14:51:07.01ID:0LKV4/k2
コンピューターが扱える範囲の実数ってことにして。
難しく考える人がいるといけないので。
0295デフォルトの名無しさん2015/01/17(土) 15:32:21.61ID:BluM5a1X
既約分数って制約がついてるから(-1)/(-3)は不可ってのは良いとしても、
-(2/5)と-(1/5)はどちらがより簡単なんだろう。

(-2)/5と(-1)/5と考えると-(2/5)の方が簡単。
2/(-5)と1/(-5)と考えると-(1/5)の方が簡単。
0296デフォルトの名無しさん2015/01/17(土) 15:36:12.10ID:BluM5a1X
>>285
あ、絶対値の記号が付いてるかすまんw
0297デフォルトの名無しさん2015/01/17(土) 16:34:54.36ID:0LKV4/k2
>>273
オレ様仕様言語
https://ideone.com/W3MqDO

出題者でございます。お騒がせしております。
自前の処理系のテストにconwayの数列を使ってました。284さんと答え合わせを
させてもらいました。自由半群という数学を応用した方法があるそうです。

>>281は普通には計算困難なのですが誰かうまい方法でやりきる人がいるかも
とお尋ねしてみました。
0298デフォルトの名無しさん2015/01/17(土) 17:10:46.04ID:KOOYDoMc
>>285 C++
https://ideone.com/0t78e6
あってるのか?
0299デフォルトの名無しさん2015/01/17(土) 17:38:37.50ID:uQW+pF83
来年の今日の東京の天気の降水確率を予想するプログラムを書け
0300デフォルトの名無しさん2015/01/17(土) 18:52:33.35ID:vexnPrUX
>>281
出題者です。すみません。訂正です。
どうも第n項の数字の数、つまり桁数のことを言っているようです。
そこに漸近するということは桁数が収束するのかもしれません。
0301デフォルトの名無しさん2015/01/17(土) 19:53:24.48ID:vexnPrUX
>>298
あってます。
素晴らしい。こんな短時間で。
0302デフォルトの名無しさん2015/01/18(日) 02:48:31.09ID:BI2B8Wlh
>>299 C++
https://ideone.com/hfHrF2

http://www.data.jma.go.jp/gmd/risk/obsdl/index.php
↑ここの1985年から2014年の日別データを元に
30年間の同日の降雨日数/30を降水確率として表示する仕様
ざっと調べたところ過去30年の同日降雨日数と
実際の降雨は正の相関だけどかなり弱かった(あたりまえ)から
この降水確率はあまり意味はないw

ちなみに雨が少ない日は 12/20 12/29 12/30 (5日/30年)
雨が多い日は 6/10 7/7 (26日/30年)
七夕……

確率そのものではなく降った降らないのビット列でデータを持ってるのは
過去の年月日を指定してそこから過去10年とかで調べてたのの名残
0303デフォルトの名無しさん2015/01/18(日) 02:55:49.49ID:mpifYpCH
>>285 Ruby
http://ideone.com/x76Z4D
0304デフォルトの名無しさん2015/01/18(日) 03:35:19.49ID:w9eH/tSE
>>273
Gauche
http://ideone.com/21KAfA
03052982015/01/18(日) 07:08:27.08ID:LDt5umkO
>>303
撃墜されたw
テストケースが甘い俺
0306デフォルトの名無しさん2015/01/18(日) 12:23:11.11ID:vn6LeXxT
285の出題者です。
ひょっとしてみなさん、総当りで分子分母を探索してます?
もしも、そうだったらもっと効率の良い方法を検討してみてください。
0307デフォルトの名無しさん2015/01/18(日) 12:34:00.77ID:PizSORX+
嫌です
0308デフォルトの名無しさん2015/01/18(日) 13:09:21.47ID:dkh0cG7M
お題:
10桁以下の10進数の自然数を対象とします。
各桁の数を上位からdnとしこれについてn番目の素数pn
とのpn^dnの積を返す関数fを考えます。
f(x)=p1^d1*p2^d2*...*p10^d10
例えばf(402) = 2^4*3^0*5^2=400 です。
f(x)=x となる数を探すプログラムを書いてください。

さらに余裕があれば11桁以上の数について調べてください。
0309デフォルトの名無しさん2015/01/18(日) 15:28:51.63ID:hI6c62kN
嫌です
0310デフォルトの名無しさん2015/01/18(日) 20:14:50.71ID:s9UNgaar
>>308
手元で15桁まで計算して81312000だけなんだが合ってるのかな
0311デフォルトの名無しさん2015/01/18(日) 20:16:09.94ID:dkh0cG7M
>>310
正解
0312デフォルトの名無しさん2015/01/18(日) 21:18:19.48ID:s9UNgaar
18桁まで計算しても81312000だけだった
後は任せた

>>308 Java
http://ideone.com/m87Se2
0313デフォルトの名無しさん2015/01/18(日) 21:46:44.31ID:LDt5umkO
これだね
http://journals.cambridge.org/action/displayAbstract?fromPage=online&;aid=44141&fileId=S0956796897002931
0314デフォルトの名無しさん2015/01/18(日) 21:48:10.63ID:LDt5umkO
81312000だけみたい
http://en.wikipedia.org/wiki/Meertens_number
0315デフォルトの名無しさん2015/01/18(日) 22:08:19.82ID:s9UNgaar
関係ないけど積を和にしたら10桁で3個 (43 97752 452965740)
これはもっと上の桁でもあるかな?

>>312の*を+にしただけじゃ遅すぎで無理だが
0316デフォルトの名無しさん2015/01/19(月) 01:02:14.11ID:g8UxlMap
>>308
Gauche
http://ideone.com/Xs0zRe
遅い。。。orz
0317デフォルトの名無しさん2015/01/19(月) 14:08:59.81ID:EfkrzyqH
>>273 Squeak Smalltalk
| conways |
conways := Generator on: [:g |
 | n |
 g yield: (n := 3).
 1 to: Float infinity do: [:m |
  g yield: (n := (String streamContents: [:ss |
   (n asString as: RunArray) runsAndValuesDo: [:run :val |
    ss nextPut: run asHexDigit; nextPut: val]
   ]
  ) asInteger)
 ]
].
(conways next: 10) asArray

"=> #(3 13 1113 3113 132113 1113122113 311311222113
13211321322113 1113122113121113222113 31131122211311123113322113) "
0318デフォルトの名無しさん2015/01/19(月) 23:24:26.79ID:oesf+0Hj
お題:
アラビア数字を受け取り、漢数字を文字列として返すプログラムを書いてください。
例えば f(12345) -> "一万二千三百四十五"
0319デフォルトの名無しさん2015/01/19(月) 23:51:22.40ID:D2xZQOIV
それ前に見た...
0320デフォルトの名無しさん2015/01/19(月) 23:58:24.74ID:oesf+0Hj
あ、そう。じゃ、取り下げ。
0321デフォルトの名無しさん2015/01/20(火) 05:20:41.11ID:Atw8QFop
>>320
な、何だって!
せっかく無量大数まで出すように作ったのに。
でもプログラムの出来悪いから。。。
ま、良いかw
0322デフォルトの名無しさん2015/01/20(火) 08:34:47.29ID:GpEarXfw
>>321
いや〜、たいへん申し訳ない。
0323デフォルトの名無しさん2015/01/20(火) 09:30:02.92ID:h5kDH6MV
まあ、俺のそそり立つチンコでも眺めて楽しんでくれ
0324デフォルトの名無しさん2015/01/20(火) 11:09:40.29ID:/4+Xyhri
>>321
晒してもいいのよ。
0325デフォルトの名無しさん2015/01/20(火) 22:47:56.33ID:h5kDH6MV
>>308
Scheme
http://codepad.org/EiRyZxUR
0326デフォルトの名無しさん2015/01/20(火) 23:24:13.52ID:Atw8QFop
>>318
>>324
へへへ、そんなに見たいなら見せてやる
ガパッ!!!
Gauche
http://ideone.com/AyhZiU
0327デフォルトの名無しさん2015/01/20(火) 23:25:24.96ID:XwfXlsJa
お題;
1729はラマヌジャンのタクシーナンバーとして知られています。
自然数の立方和として2通りに表される数の最小のものです。
12^3+1^3=10^3+9^3=1729

では、2番目に小さい同様の数を求めるプログラムを書いてください。
0328デフォルトの名無しさん2015/01/21(水) 00:44:44.43ID:jU9FxBDL
適当に書いたら4104だったわ
0329デフォルトの名無しさん2015/01/21(水) 01:37:17.04ID:jhd+CR/o
>>327
Gauche
(use util.combinations)
(use util.match)

(define (taxi)
(combinations-for-each
(cut permutations-for-each
(match-lambda ((a b c d)
(when (eq? (+ (expt a 3) (expt b 3)) (+ (expt c 3) (expt d 3)))
(format #t "~d^3 + ~d^3 = ~d^3 + ~d^3 = ~d\n" a b c d (+ (expt a 3) (expt b 3))))))
<>)
(iota 50 1) 4))

(taxi)

2^3 + 16^3 = 9^3 + 15^3 = 4104
0330デフォルトの名無しさん2015/01/21(水) 08:47:31.47ID:7RGlVA/V
>>327
Sapphire
https://ideone.com/ILHOPj
0331デフォルトの名無しさん2015/01/21(水) 12:13:47.52ID:ij8A/lkc
>>308 Scheme
(define *pr* (primes 10))
;;;sからeまでの自然数を調べ該当する最初の数を得る
(define foo
(lambda (s e)
(cond
((> s e) #f)
((= s (f s)) s)
(else (foo (1+ s) e)))))

;;; f(x)=p1^d1 * p2^d2 * p3^d3 ....* pn^dn を求める
(define f
(lambda (n)
(f-help n (int (floor (log n 10))) 1 *pr* #f (lambda (x) x))))

(define f-help
(lambda (n e cnt pr dn col)
(cond
((< n 1) (col 1))
(else
(set! dn (quotient n (expt 10 e)))
(f-help
(- n (* dn (expt 10 e))) (1- e) (1+ cnt) (cdr pr) #f
(lambda (x) (col (* (expt (car pr) dn) x))))))))

;;;適用例 ;処理に時間がかかる
(foo 80000000 999999999)
81312000
0332デフォルトの名無しさん2015/01/21(水) 12:15:11.86ID:ij8A/lkc
>>331
空白が文字化けしている
0333デフォルトの名無しさん2015/01/21(水) 17:11:44.23ID:qdz7RRGm
>>327 Perl
http://ideone.com/dnE9Yq
0334デフォルトの名無しさん2015/01/21(水) 17:41:12.84ID:jU9FxBDL
>>333
http://ideone.com/aDdQt0
順番がっw
0335デフォルトの名無しさん2015/01/21(水) 17:45:11.62ID:7RGlVA/V
308の出題者でございます。
Meertens数については素朴に書いたものではきついようです。
自前の処理系はダウンです。
0(ゼロ)が各桁にある場合にはゲーデル数には影響しません。
そのあたりをうまく利用して探索範囲を狭めたいと検討中です。
Haskellによる関数プログラミングの本に参考例があるようです。
0336デフォルトの名無しさん2015/01/21(水) 18:40:39.81ID:qdz7RRGm
>>334
ムツカシイネ。
0337デフォルトの名無しさん2015/01/22(木) 00:56:58.82ID:qDOPECs7
>>335
例えば 1020300000 見たいな数字を
10203にして計算するような単純なやり方だと
末尾のゼロを取る処理分逆に遅くなるね。
それより冪乗のメモ化で少し早くなる。
0338デフォルトの名無しさん2015/01/22(木) 06:54:59.67ID:2kZH7b8K
>>318,326 Ruby
http://ideone.com/UUUWDF
0339デフォルトの名無しさん2015/01/22(木) 08:30:12.41ID:fuAzJ/zr
>>337
Haskell本をちょろっと見たのですが、各桁の数を選択する際に
枝刈りをして無駄な探索を避けているような印象です。
それと末尾の0の数は2と5の指数の小さい方なのが使えないかなぁと。
0340デフォルトの名無しさん2015/01/22(木) 08:37:07.43ID:fuAzJ/zr
285の出題者でございます。
間に整数や0(ゼロ)がある場合は自明解になります。
そうでない場合には連分数にして比較、効率よく見つけるという方法を
想定していました。ほかにもうまい方法があるかもしれません。
0341デフォルトの名無しさん2015/01/22(木) 08:48:48.91ID:fuAzJ/zr
>>337
後知恵ですが81312を含む5ケタだけ調べればとりあえずは
見つかるので自前の処理系でもなんとかいけました。
一番よさそうなのは上位桁から調べつつ、調べても無駄な下位の解の
探索を回避する方法ではないかと考えています。
0342デフォルトの名無しさん2015/01/22(木) 13:45:33.41ID:6CVWqQMK
>>340
>>337さんのアイデアでとりあえず10倍ほど早くなったのてますが、まだ、論外の遅さ
勉強中
100万個単位なら良しですが
1000万個の計算が遅すぎる段階
ご示唆を検討しつつ高速化を図ってみます
0343デフォルトの名無しさん2015/01/22(木) 13:48:14.75ID:VatMjg6z
>>342
アンカーミス
>>308さんの問題へのレス
0344デフォルトの名無しさん2015/01/22(木) 17:21:38.47ID:/MwO3ZN1
>>327 Perl
http://ideone.com/02GUWf
0345デフォルトの名無しさん2015/01/22(木) 21:48:42.60ID:GmO7d68t
>>327 Java
http://ideone.com/Xc2uIw
0346デフォルトの名無しさん2015/01/23(金) 04:40:58.62ID:zM33mrEj
 
お世話になります。
私、責任者の加茂と申します。以後、宜しくお願い致します。
http://www.apamanshop.com/membersite/27009206/images/kamo.jpg
浪速建設様の見解と致しましては、メールによる対応に関しましては
受付しないということで、当初より返信を行っていないようで、今後につい
てもメールや書面での対応は致しかねるというお答えでした。
http://www.o-naniwa.com/index.html 事務員 東条 南野
http://www.o-naniwa.com/company/ 岡田常路
このように現在まで6通のメールを送られたとのことですが、結果一度も
返信がないとう状況になっています。
http://www.apamanshop-hd.co.jp/ 加茂正樹 舟橋大介
http://s-at-e.net/scurl/nibn-apaman.html 大村浩次
私どものほうでも現在までのメール履歴は随時削除を致しております
ので実際に11通のメールを頂戴しているか不明なところであります。
  
 ・ハンガー・ゲーム   http://s-at-e.net/scurl/TheHungerGames-Aircraft.html
 ・スタートレック     http://s-at-e.net/scurl/StarTrek-Aircraft.html
 ・アバター        http://s-at-e.net/scurl/Avatar-Shuttle.html
 
 ・アバター       http://s-at-e.net/scurl/Avatar-Dragon.html
 ・トランスフォーマー http://s-at-e.net/scurl/Transformers-Flyingboat.html
 ・Star Citizen     http://s-at-e.net/scurl/StarCitizen-Starfarer.html
 
 ・T   http://s-at-e.net/scurl/ia-T.html
 ・Zle  http://s-at-e.net/scurl/ia-Zle.html
 
大阪府八尾市上之島町南 4-11 クリスタル通り2番館203
に入居の引きこもりニートから長期にわたる執拗な嫌がらせを受けています。
この入居者かその家族、親類などについてご存知の方はお知らせ下さい。
[email protected]
0347デフォルトの名無しさん2015/01/23(金) 04:48:08.78ID:F+B+etzd
>>346
しね精神病
0348デフォルトの名無しさん2015/01/23(金) 05:33:10.08ID:RelCKqww
失敗お題
失敗の原因:問題になっていない

お題
アナログ時計において00:00:00〜11:59:59の間で長針・短針・秒針が重なる時刻を全て挙げよ
長針・短針・秒針は止まることなく常に連続して動いているものとする

答え
http://ideone.com/YmBcmi
0349デフォルトの名無しさん2015/01/23(金) 18:45:26.53ID:emDRVGKQ
>>347
extern は要らない子っ!
0350デフォルトの名無しさん2015/01/23(金) 19:33:05.74ID:PBlTuNvK
お題:
実行から3分経過を通知するタイマーが必要
条件は
・そのためにソフト(バイナリ)をインストールしたりしない
・アラームは音がベスト
・できれば普通のXPのパソコンで動作する
0351デフォルトの名無しさん2015/01/23(金) 19:41:55.10ID:Ust2YlLf
お題:
自然数について各桁の数の和でその数を割り切れるならばその数はNiven数
というそうです。例えば81は各桁の数の和は8+1=9であり81=9*9ですからNiven数です。
では、可能な限り大きなNiven数を求めるプログラムを書いてください。
0352デフォルトの名無しさん2015/01/23(金) 19:43:16.50ID:uMcR+6pK
>>350
timeout.exe
0353デフォルトの名無しさん2015/01/23(金) 19:47:48.86ID:ETPG6twN
>>348
cos(x)=cos(12x)=cos(43200x)
を満たすxを探すんだろうけど
ちゃんと計算してないけど00:00:00以外ないよな。。。。
0354デフォルトの名無しさん2015/01/23(金) 19:50:39.39ID:Ust2YlLf
なんか処理系のbignumの耐久テストみたいでつまんなかったかな。(反省)
0355デフォルトの名無しさん2015/01/23(金) 19:56:08.24ID:Ust2YlLf
>>353
cos(x)=x のような不動点を求めるものでは?
でもこれは簡単でつまらないので、log(x)=xの方が面白いかも。
0356デフォルトの名無しさん2015/01/23(金) 19:58:01.99ID:uMcR+6pK
>>351
#include <stdio.h>
#include <limits.h>
typedef unsigned long int uli;

int main(){
for (uli i = ULONG_MAX; i; --i){
uli r = 0;
uli w = i;
while (w){
r += w % 10;
w /= 10;
}
if (i % r == {
printf("%lu¥n", i);
return 0;
}
}
return 0;
}

// 実行結果
// 18446744073709551534
0357デフォルトの名無しさん2015/01/23(金) 19:59:38.68ID:8F2iKi5Y
>>354
任意の自然数の後ろに0をたくさん並べるだけでよさそうではありませんか?
0358デフォルトの名無しさん2015/01/23(金) 20:15:23.21ID:gEU4m23k
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%82%B7%E3%83%A3%E3%83%83%E3%83%89%E6%95%B0
> 間に0が連続して続く数を使って無数にハーシャッド数を作ることができる。例えば21を使うと、21,201,2001,20001 などは全てハーシャッド数になる。

まあ100000000000000000000000000000000・・・なら任意の位置で終われて楽だろうけど
0359デフォルトの名無しさん2015/01/23(金) 20:16:38.37ID:Ust2YlLf
>>357
1の後に0をたくさん並べたらいくらでも作れるね。これは失敗。
取り下げてください。
0360デフォルトの名無しさん2015/01/23(金) 20:36:26.78ID:Ust2YlLf
お題:
アメリカではマックナゲットを小6個、中9個、大20個の
パックで販売されていたそうです。この注文の組み合わせで
購入できるナゲットの数をマックナゲット数ということにします。
例えば44はマックナゲット数です。なぜなら44=6+2*9+20だからです。
では、マックナゲット数ではない最大数を求めるプログラムを書いてください。
0361デフォルトの名無しさん2015/01/23(金) 20:37:14.93ID:Ust2YlLf
こんどはだいじょうでしょう。
0362デフォルトの名無しさん2015/01/23(金) 20:50:53.53ID:8F2iKi5Y
いや駄目でしょ
素数とかだと
0363デフォルトの名無しさん2015/01/23(金) 21:28:49.39ID:R6X4Juva
>>360 Perl
http://ideone.com/fezfLw

こういうのでいいのかいな。
0364デフォルトの名無しさん2015/01/23(金) 21:30:09.83ID:tSARhC69
プログラムにするまでもないという
0365デフォルトの名無しさん2015/01/23(金) 22:00:57.93ID:v30BfBZP
出題者はここにお題を書く前に自分で解いてみたりしないのか?
0366デフォルトの名無しさん2015/01/23(金) 22:47:35.05ID:NB6mp9Bh
いいかげんなやついるな
問題になっていない問題をただの思いつきで出している奴
しねよカス
0367デフォルトの名無しさん2015/01/24(土) 02:09:16.64ID:7GYThAmo
>>366
一応、専門書をあたってはいるのだよ。
6,9,20の最大公約数以上では解はないという定理があることは調べた上で出題している。
Niven数はほんとはその個数のN(x)について考えると面白いことがあるのだけど
あまりにも数学的すぎて馴染まないので変えたら失敗したんだ。
0368デフォルトの名無しさん2015/01/24(土) 02:12:26.38ID:7GYThAmo
最近の出題ネタがあまりにも低レベルだったので頭をひねってみたが、もう終わり。
後は誰かよろしく。
0369デフォルトの名無しさん2015/01/24(土) 02:38:34.42ID:macVReAj
6,9,20の最大公約数ってーと1かな?
0370デフォルトの名無しさん2015/01/24(土) 02:39:40.96ID:7GYThAmo
間違えたよ。最大公倍数だ。
0371デフォルトの名無しさん2015/01/24(土) 02:40:46.40ID:7GYThAmo
さらに間違えた。最小公倍数だ。
0372デフォルトの名無しさん2015/01/24(土) 04:46:00.10ID:4DXDFyDt
簡単なお題でも私としてはウェルカム。
そうです簡単なお題しか解けないからです。
0373デフォルトの名無しさん2015/01/24(土) 15:05:30.99ID:QRHwUf1W
>>368
そういうの好きなら
https://projecteuler.net/
でもあさったら?
0374デフォルトの名無しさん2015/01/24(土) 15:22:59.36ID:JqXxaDsh
っていうか、いちいち出題者を煽ってモティベーションを奪う馬鹿がいるけど
相手にしないでいいと思うよ。
0375デフォルトの名無しさん2015/01/24(土) 15:34:20.11ID:WCZAZ8R9
質の悪い似非問題だされるよりはシーンとしている方がマシ
0376デフォルトの名無しさん2015/01/24(土) 17:00:21.19ID:Zm1Jjf6/
>>363
その通りです。44〜49が非マックナゲット数であることがわかりば、
43より大きい数のすべてはマックナゲット数であることはコンピューターに
計算させなくてもわかります。6を足せば良いからです。
ディオファントス解析、フロベニウス数と関連するようです。
0377デフォルトの名無しさん2015/01/24(土) 17:02:40.85ID:Zm1Jjf6/
さあ、これでおしまい。
こんどはみなさんのお題を楽しませてもらいましょう。
0378デフォルトの名無しさん2015/01/24(土) 17:05:55.36ID:Zm1Jjf6/
おっとっと訂正、
44〜49が非マックナゲット数であることがわかりば ×
44〜49がマックナゲット数であることがわかれば ○
0379デフォルトの名無しさん2015/01/24(土) 23:21:00.73ID:IKI29R5M
お題
ある自然数nに対して、f(n)を
正のnの倍数で、下9桁が123,456,789になるものが存在すれば、その中で最小のものを
存在しなければ0を
それぞれ返す関数とする
例えばf(123) = 84123456789, f(125) = 0
10^9未満の自然数nに対して、f(n)の最大値はいくつになるか

ちなみに答えは2^60未満です
0380デフォルトの名無しさん2015/01/24(土) 23:23:58.17ID:bKHMmMiq
つまらん
0381デフォルトの名無しさん2015/01/24(土) 23:51:51.05ID:F47SjnxP
面白い問題を解きたいならなんでこんなスレに居るの?
0382デフォルトの名無しさん2015/01/25(日) 05:57:41.93ID:ITyso3aB
おもしろ問題があるかもって期待でな
0383デフォルトの名無しさん2015/01/25(日) 07:42:47.94ID:TpaFIK4z
あのなー、東大入試の数学の問題なんか、
講師連中が1年考えて、
古代ギリシアのパズルと同じ問題を出題している

3つの交わらない円のすべてに、接する円は幾つあるか?
円周率が3.05以上であることを、図で証明せよ

問題を考えるのは、それだけ難しい。
それは数学・情報オリンピックでも同じ。
秋山、ピーター・フランクルも苦労している

作問のプロでも、作問のアイデアが欲しくて、
毎日このスレを見ているぐらいなんだぞ!

魔方陣、虫食い算などで問題を作れないか?
0384デフォルトの名無しさん2015/01/25(日) 09:18:47.80ID:sjrxvez3
>>379 Ruby
http://ideone.com/szUzdk
0385デフォルトの名無しさん2015/01/25(日) 09:22:43.59ID:jonHqlx4
じゃあ、辺が4の魔法陣の任意の場所を入れ替えて3種類の魔方陣を作るとする
最小の入れ替え数はいくつか?
回転と線対称とその組み合わせは除く
斜めの線対称は考えなくて良い
0386デフォルトの名無しさん2015/01/25(日) 13:43:51.48ID:p4bIFHjp
>>383
http://peace.2ch.net/test/read.cgi/tech/1364631733/6
だね‥ここは宿題スレからの発展場、算額や公案を考える者の集うスレ
おっとその前に年越し問題を解かなくては‥
0387デフォルトの名無しさん2015/01/25(日) 18:15:10.75ID:8TvBNMZ1
>>383
作問オリンピックを開催すればいいんじゃね?
0388デフォルトの名無しさん2015/01/26(月) 23:04:58.26ID:Kv2lHoc0
空マス=0,白=1,黒=2として表す8文字8行からなるオセロの盤面データが与えられる
このとき最後に置かれた可能性がある駒を色ごとにそれぞれリストアップする
例外として初期配置の場合は初期配置と表示する

例:
00000000
00000000
00020000
00022000
00111000
00000000
00000000
00000000

白:c5 黒:なし
0389デフォルトの名無しさん2015/01/27(火) 03:03:43.02ID:4hduaAxZ
>>388
1手目からきちんとルールにのっとって進めていった局面で最後に置かれた可能性があるマス?
それとも最後の一手以外は適当に設置したとしてOK?(最初から進めた場合どうやってもその形にならない盤面とか

俺には後者ならできるかもしれんが前者は序盤以外だったら無理w
0390デフォルトの名無しさん2015/01/27(火) 03:10:39.58ID:kuGEzfaQ
1戦の計算量が2^60くらいなので、網羅は大変。
0391デフォルトの名無しさん2015/01/27(火) 05:30:42.23ID:SaWHtS9U
>>388
取りあえず盤面上のコマの数で最後に打ったのが黒か白か解る。
後はゲーム木たどって行くしかないかな?
0392デフォルトの名無しさん2015/01/27(火) 05:46:49.65ID:4hduaAxZ
パスが入った場合を忘れているよ
0393デフォルトの名無しさん2015/01/27(火) 08:38:33.08ID:SaWHtS9U
ああ、そういえばパスって有ったな。。。
0394デフォルトの名無しさん2015/01/27(火) 10:14:45.84ID:mZ6XpjU/
出題者自ら解いてそのコードさらす準備が終わってから出題してくれ。(全列挙系は特に)
03953882015/01/27(火) 20:14:20.28ID:YSaUU6oA
最低限最後の1手だけチェック出来ていればOK
それを超える精度は余裕があればのつもり
0396デフォルトの名無しさん2015/01/27(火) 20:53:38.05ID:GDvEOGFI
初期状態から到達できなくてもいいってことか?
0397デフォルトの名無しさん2015/01/27(火) 21:55:57.60ID:/7J2D32J
>>395
>最低限最後の1手だけチェック出来ていればOK

3つ以上並んだところは殆どの気がする。
0398デフォルトの名無しさん2015/01/28(水) 00:20:29.46ID:kJv0J0VS
市松模様の状態だとしたらどれも斜めに3つ以上並んでるけど
縦横を返さずに置く必要があるので不可能とかそれなりに絞れそう
0399デフォルトの名無しさん2015/01/28(水) 10:09:21.23ID:psA0knd+
最後の一手だけのチェックなら>>388の例だと白にe5も入るよね?
0400デフォルトの名無しさん2015/01/28(水) 19:10:34.88ID:/EklobZY
>>388
Scheme (線形代数拡張機能を含む)
https://ideone.com/OD13nl

処理系のデバッグのために利用させてもらいました。
時間がなくてテキトー。バグがあるかも。
0401デフォルトの名無しさん2015/01/28(水) 19:12:43.48ID:/EklobZY
チェスボード問題なら円環上の準女王問題の方が面白いのでは?
04024012015/01/28(水) 20:28:45.56ID:+GNvzRaf
失礼、訂正
準女王問題の方が 誤
準女王問題の方も 正
0403デフォルトの名無しさん2015/01/28(水) 20:58:25.83ID:kJv0J0VS
初期配置は特別扱いすることになってるんだし
その4つは常に候補から外していいんじゃね
0404デフォルトの名無しさん2015/01/28(水) 21:15:53.85ID:UK1aUFc0
ドワンゴのコンテストだそうな
http://dwango2015-prelims.contest.atcoder.jp/
0405デフォルトの名無しさん2015/01/28(水) 21:44:22.00ID:+GNvzRaf
4つは外しましょう。
0406デフォルトの名無しさん2015/01/30(金) 10:20:23.90ID:4tpD3Nok
2つで十分ですよ。

分かって下さいよ。
0407デフォルトの名無しさん2015/02/01(日) 21:01:41.47ID:7JKts4OY
100から999までの三桁の整数の範囲内

A=100の位を10の位にし、10の位を1の位にした数字
B=1の位
C=10の位
A/B=B*C=Dが成り立つ整数を全て出力せよ

(例)726
A=72
B=6
C=2
A/B=B*C=12
0408デフォルトの名無しさん2015/02/01(日) 21:25:25.45ID:TjaWybkk
>>407 Java
http://ideone.com/ZPM6tB

Dはいずこ・・・?
0409デフォルトの名無しさん2015/02/02(月) 15:30:23.61ID:aSIJhXZn
>>407
Sapphire
https://ideone.com/aYVv8q

処理系のテストに使わせていただきまいした。
0410デフォルトの名無しさん2015/02/02(月) 16:21:12.59ID:aSIJhXZn
お題:
ベルヌーイ数は次の漸化式で与えられる。
b(n) = -1/(n+1)*Σ(k=0 to n-1)n+1Ck * b(k)
b(0)=1

ベルヌーイ数を計算するプログラムを書き、b(8)を求めよ。
効率は考えなくてもよい。
やりたい人は漸化式によらない方法、メモ化する方法など
効率を追求せよ。
0411デフォルトの名無しさん2015/02/02(月) 19:26:11.72ID:CLJS9HuA
>>410 Java
http://ideone.com/DmVnxn

よくわかっていない
0412デフォルトの名無しさん2015/02/02(月) 19:27:36.06ID:BcFq5BbU
1〜99999999999999999999999999999999999999999999999999999999999999999999999999999
までの整数が文字列で与えられる
これが素数かどうか判定しろ
0413デフォルトの名無しさん2015/02/02(月) 19:47:24.92ID:BTw9Mjmb
>>412
リファレンスプリーズ。
0414デフォルトの名無しさん2015/02/02(月) 19:51:25.07ID:WOqQhALa
>>412
すごくくだらなく思うのは俺がそれの難しさをしらんから?
0415デフォルトの名無しさん2015/02/02(月) 20:15:22.80ID:14DADSH+
くだらないのは出題者が山下だからだとおもう
0416デフォルトの名無しさん2015/02/02(月) 20:26:03.56ID:CLJS9HuA
>>412 Java
http://ideone.com/wRbfFg
手抜きwwwwwwww
0417デフォルトの名無しさん2015/02/02(月) 21:50:09.14ID:ay8SqXsj
>>414
自己レス
俺にはとても難しいとこがわかった
atomマシンではあるけれど
50001が素数かどうかを調べるのに25秒もかかった
0418デフォルトの名無しさん2015/02/02(月) 21:54:43.23ID:CLJS9HuA
50001を3から223まで試し割りするだけで25秒掛かるか?
0419デフォルトの名無しさん2015/02/02(月) 21:56:58.64ID:v7wWJREm
素数判定はネットで手に入る既製ソフトウェアの速いやつを抜かせたら
専門家として通じるくらいに研究されてるだろ。
0420デフォルトの名無しさん2015/02/02(月) 22:03:06.69ID:BTw9Mjmb
俺、C++に多倍長精度演算入ったら、素数表つくって売るんだ!(死亡フラグ)
そすうおーぐとか作ってみたいなー。
0421デフォルトの名無しさん2015/02/02(月) 22:05:46.76ID:v7wWJREm
AKS素数判定法 - Wikipedia
与えられた自然数が素数であるかどうかを決定的多項式時間で判定できる、世界初のアルゴリズム。
AKS素数判定法は2002年8月6日に "PRIMES is in P" と題された論文で発表された。
この素数判定法が発見される以前にも、素数の判定方法は多数知られていたが、リーマン予想などの仮説を用いずに、決定的多項式時間で判定できるアルゴリズムは存在しなかった。
素数判定という重要な問題が実際にクラスPに属することを示した点で理論的には大躍進であった。



ミラー-ラビン素数判定法 - Wikipedia
与えられた数が素数かどうかを判定する素数判定アルゴリズムの一種。
フェルマーの素数判定法や Solovay-Strassen 素数判定法と同じく、乱択アルゴリズムの一種。
Gary L. Miller が最初に開発した手法は未だ証明されていない拡張リーマン予想に基づいた決定的アルゴリズムだったが、
マイケル・ラビンはこれを無条件の確率的アルゴリズムに修正した。
0422デフォルトの名無しさん2015/02/02(月) 22:07:38.81ID:ay8SqXsj
>>418
49999までの素数リストをつくり
その要素のどれかで50001が割り切れるかどうかで判定した
0423デフォルトの名無しさん2015/02/02(月) 22:10:48.47ID:BTw9Mjmb
最適化のヒントとして、与えられたNの√Nまでの素数で試し割りすれば必要十分。
さてそれはなんででしょう。
0424デフォルトの名無しさん2015/02/02(月) 22:14:59.60ID:vLsFqgHc
>>412
ruby -rprime -e 'p $<.read.chop.to_i.prime?'
0425デフォルトの名無しさん2015/02/02(月) 22:15:37.88ID:v7wWJREm
>>412は区間すべての素数でなくて、区間の一つだけで良いんだろ。
すべては確実に無理かとおもうが。
何バイト必要か計算してるか。
0426デフォルトの名無しさん2015/02/02(月) 22:20:09.01ID:BTw9Mjmb
つまりAKSを実装しろと。
0427デフォルトの名無しさん2015/02/02(月) 22:22:39.42ID:v7wWJREm
一つの数を1ビットで表現したとして、 10^77/(8*1024^4) = 1.164 * 10^64 テラバイト必要。
キロ < メガ < ギガ < テラ。
0428デフォルトの名無しさん2015/02/02(月) 22:26:48.22ID:iVL53l6K
>>410
Sapphire
https://ideone.com/4wXEIE
0429デフォルトの名無しさん2015/02/02(月) 22:31:02.97ID:iVL53l6K
ラビンミラー法ならその桁数でも可能かも。SICPでやったやつ。
0430デフォルトの名無しさん2015/02/02(月) 22:33:19.38ID:v7wWJREm
カカクコムでHDD単価が最安値のに記録すると、
カネが39737339344962200000000000000000000000000000000000000000兆円ほど掛かる計算。
日本の国家予算は100兆円程度。



SEAGATE(シーゲイト) ST3000DM001  3TB \10,486
1Tあたりの価格 \3495
http://kakaku.com/item/K0000313507/
0431靖国参拝、皇族、国旗国歌、神社神道を異常に嫌うカルト2015/02/03(火) 00:03:06.86ID:DKP7K11t
★マインドコントロールの手法★

・沢山の人が偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法


偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い


10人に一人はカルトか外国人

「ガスライティング」で検索を!
.....
0432デフォルトの名無しさん2015/02/03(火) 00:05:47.66ID:e/znxUiy
コピペマン参上!まで読んだ。
0433デフォルトの名無しさん2015/02/03(火) 02:24:00.74ID:CTwZWZQS
チンコ立たないから泣きながらコピペします!まで読んだ
0434デフォルトの名無しさん2015/02/03(火) 03:32:29.26ID:7jR7Eeuq
>>410 Ruby
http://ideone.com/CamJJE
0435デフォルトの名無しさん2015/02/03(火) 08:47:50.90ID:N42LlXKz
>>412
Scheme
https://ideone.com/EECTGu

SICPを読んでいた頃に書いたもの。内容はもうよく覚えていない。
0436デフォルトの名無しさん2015/02/03(火) 09:01:53.84ID:N42LlXKz
>>360
Sapphire
https://ideone.com/n7S5x1
0437デフォルトの名無しさん2015/02/03(火) 10:35:41.42ID:yu7MxmeT
>>410 Squeak Smalltalk

| bernoulli |
bernoulli := nil.
bernoulli := [:n |
 n = 0 ifTrue: [1] ifFalse: [
  -1/(n+1) * ((0 to: n-1)
   inject: 0
   into: [:sum :k | sum + ((n+1 take: k) * (bernoulli value: k))])
 ]
].

bernoulli value: 8 "=> (-1/30) "
0438デフォルトの名無しさん2015/02/03(火) 12:36:59.30ID:N42LlXKz
お題:
以下の関係記述からSandyが好きな人、ものを調べるプログラムを書き、
Sandyが好きな人、ものを全部列挙せよ。

Kim likes Robin.
Sandy likes Kim.
Robin likes cats.
Sandy likes people(or animal) who likes cats.
Kim likes people who like Lee and Kim.
Sandy likes Lee.
People(or animal) like myself.
0439デフォルトの名無しさん2015/02/03(火) 13:52:37.75ID:RogaT2hh
>>438
https://ideone.com/8JG2Hb
いまいち
0440デフォルトの名無しさん2015/02/03(火) 17:07:00.28ID:N42LlXKz
>>438
Prolog (S式タイプ)
https://ideone.com/nbiXo9
答え確認にどうぞ
0441デフォルトの名無しさん2015/02/03(火) 19:33:20.76ID:Y3wAR2qt
>>438 GNU Smalltalk

| Kim Robin Sandy Lee cats |
Likes members: {
 Kim := People named: #Kim.
 Robin := People named: #Robin.
 Sandy := People named: #Sandy.
 Lee := People named: #Lee.
 cats := Animals named: #cats
}.

Kim likes: Robin.
Sandy likes: Kim.
Robin likes: cats.
Sandy likes: [:who |
 ((who isKindOf: People) or: [who isKindOf: Animals]) and: [who definitelyLikes: cats]].
Kim likes: [:who |
 (who isKindOf: People) and: [who definitelyLikes: {Lee. Kim}]].
Sandy likes: Lee.
Likes members do: [:who |
 ((who isKindOf: People) or: [who isKindOf: Animals]) ifTrue: [who likes: who]].

Likes members asArray collect: [:each | (each -> each allOneLikes) printNl]

"=>
 Robin->(cats Robin )
 cats->(cats )
 Kim->(Robin Sandy Kim )
 Sandy->(Kim Robin cats Lee Sandy )
 Lee->(Lee )
"
http://ideone.com/9Fxawa
0442デフォルトの名無しさん2015/02/04(水) 11:35:57.43ID:S45dflU0
深さ優先探索を使う問題を作ってください
おねがいします
0443デフォルトの名無しさん2015/02/04(水) 11:39:31.04ID:3h7Zr70+
>>442
激問で
0444デフォルトの名無しさん2015/02/04(水) 14:27:29.18ID:UjEKY513
>>442
お題
壁(#)によっていくつの部屋に分断されているか求めるアルゴリズム
(斜めにすり抜けられる空間も一続きとみなす)

例
##..##
#.###.
###.#.
...###
3rooms
0445デフォルトの名無しさん2015/02/04(水) 18:38:35.53ID:disGJSlY
>>444
Python 3
http://ideone.com/PicZia
0446デフォルトの名無しさん2015/02/04(水) 19:15:23.48ID:8Sw6mo5N
>>444
やばいむずかしすぎ
深さ優先探索でかけと言われてもまずこういう問題はどうかんがえていいのかすらわりません
0447デフォルトの名無しさん2015/02/04(水) 19:37:27.86ID:+U2BPPPk
>>446
集合論と人工知能を勉強しなよ
0448デフォルトの名無しさん2015/02/04(水) 23:46:42.69ID:kCAyOTFX
ぱっと見て3部屋だから3って出力するプログラムを書けばええんやで。これでだいたいやっていける
0449デフォルトの名無しさん2015/02/05(木) 01:30:15.69ID:FdXvVIq+
穴だらけやがな。
0450デフォルトの名無しさん2015/02/05(木) 03:09:39.94ID:7CYOAfIQ
>>442

FutureSoftware開発日誌 Ver2.0 ≫ DevQuizのソースコード(スライドパズル編)
http://blog.futuresoftware.jp/?p=56
0451デフォルトの名無しさん2015/02/05(木) 08:47:10.33ID:Xpo5ppTK
>>444
良問! 今、解いてる。2値画像の走査みたいなものかな。
0452デフォルトの名無しさん2015/02/05(木) 10:26:36.44ID:FdXvVIq+
ttp://ideone.com/WGvvlW
C++。深さ優先探査じゃない方法で解けたような気がする。再起つかわなかったなぁ。
重複の検出がちょっと重い。メモリ馬鹿食い。
うーん。あんまりいい出来ではない。速度重視というわけでもないし。
0453デフォルトの名無しさん2015/02/05(木) 11:41:46.26ID:9+9QJS59
>>444ってアルゴリズムとかいう以前のごく単純な問題のように
思っちゃったんだけど違うの?

(1) マップの左上からCRTの走査線状にマスを調べる

(2) そのマスが壁でなく、かつそのマスの左、左上、上、右上がすべて壁なら
  部屋のカウントを+1

これだけのことじゃないの?
0454デフォルトの名無しさん2015/02/05(木) 11:52:03.28ID:6SXQZym/
>>453
#####
#.#.#
##.##
#####
それこういう形が2部屋に判定されないか?
0455デフォルトの名無しさん2015/02/05(木) 11:54:12.95ID:9+9QJS59
>>454
なるほどw
思慮が浅かったありがとう
0456デフォルトの名無しさん2015/02/05(木) 14:32:10.72ID:/VVSvCN5
>444
Sapphire
https://ideone.com/pEoBlP
0457デフォルトの名無しさん2015/02/05(木) 17:29:19.00ID:/VVSvCN5
2値画像のラベリングの問題だよね。昔、Winston本で読んだことがあるよ。
0458デフォルトの名無しさん2015/02/05(木) 20:31:02.61ID:yEh0kGG/
>>444 F#

let points (x, y) = seq { for x in [x-1; x; x+1] do for y in [y-1; y; y+1] -> x, y }
let spaces map p = points p |> Seq.filter(fun p -> Set.contains p map)
let findRoom map p = Seq.tryFind (Set.intersect (Set(spaces map p)) >> Seq.isEmpty >> not)

let lookup map rooms p =
 match findRoom map p rooms with
 | None -> Set.add (Set [p]) rooms
 | Some room -> Set.remove room rooms |> Set.add (Set.add p room)

let charsi data =
 (data+"").Split '\n'
 |> Seq.mapi(fun y -> Seq.mapi(fun x c -> (x,y),c))
 |> Seq.collect id

let makeMap = charsi >> Seq.choose(function p, '.' -> Some p | _ -> None) >> Set.ofSeq

let printCount data =
 let map = makeMap data
 Seq.fold (lookup map) Set.empty map
 |> Set.count
 |> printfn "%s\n%d rooms" data
 
printCount "#####
#.#.#
##.##
#####"
0459デフォルトの名無しさん2015/02/06(金) 03:34:26.31ID:3SQvVc9i
>>444 Ruby
http://ideone.com/4UQNaw
0460デフォルトの名無しさん2015/02/10(火) 05:15:05.03ID:aHCuz8yF
お題:あの悪名高いLZW実装してみましょう。

リファレンス
http://ideone.com/cF0kDA
有ってるか知らんけど下のペーじ参照して実装してみた。
独自解釈が入っているので作法は知らん。
デバッグはあんまりやってない。

参考リンク。
http://kano.arkoak.com/2014/07/lzw/

おひとついかが?
0461デフォルトの名無しさん2015/02/10(火) 05:47:47.38ID:Ae/h3GWY
ものすごくシンプルなアルゴリズムなんだな
びっくりした
0462デフォルトの名無しさん2015/02/10(火) 06:32:51.85ID:aHCuz8yF
シュリンクしながら書いてたから、時間は結構かかってるんだぜ。
頭のいい人の考えることは基本シンプルだけどだから難しい。
0463デフォルトの名無しさん2015/02/10(火) 16:37:06.51ID:aHCuz8yF
反応悪いなー。おもしろくなかったかにゃ?
>>460のコードあってるかもよくわからんので盲信しないでくれ。
0464デフォルトの名無しさん2015/02/10(火) 18:33:46.62ID:Ae/h3GWY
>>460 Common Lisp
http://ideone.com/yQhpY6
伸張アルゴリズムは自分で考えて書いてみたけど楽しかった
実用性は無視
0465デフォルトの名無しさん2015/02/10(火) 18:35:12.90ID:vmUJGgdk
>>460
C++読めないから勘違いかもしれないが、
エンコードの結果に辞書を含めてはいけなくて、
デコードも辞書無しでやるんじゃないの
0466デフォルトの名無しさん2015/02/10(火) 18:50:36.08ID:aHCuz8yF
>>465
え?マジで?辞書破棄するの?
えぇええええええええええ。え?
初耳ですわ。盲信して実装したんで何が何だかさっぱり。
ちょ、サンプルプリーズ。

えええええええええええーーーーーーーーーーーーーーーーーーー。
0467デフォルトの名無しさん2015/02/10(火) 19:01:34.56ID:aHCuz8yF
げげ。間違ってたか。>>460のリファレンスは取り下げで。Orz
0468デフォルトの名無しさん2015/02/10(火) 19:20:37.04ID:aHCuz8yF
辞書をクラウドで生成する方法がよくわからん。。。Orz=3
俺はもうだめだー!!むー。
0469デフォルトの名無しさん2015/02/10(火) 20:35:06.97ID:2nvcEMv/
お題:
1からnまでの自然数の値を記したカードがS枚ずつある。
このs*n枚のカードを1列に並べ、各k(1<=k<=n)に対して
、値kの相隣るカードの中間に必ずk枚ずつ他のカードがある
ようにする。s,nを与えられその解を計算するプログラムを書け。
例えばs=2、n=3の解としては
2,3,1,2,1,3がある。2と2の間に2つカードがあり、3と3の間に3枚の
カードがあり、1と1の間に1枚のカードがある。
0470デフォルトの名無しさん2015/02/10(火) 21:26:15.78ID:aHCuz8yF
数列作ってパーミテーショングルグルすればいいけど、重すぎるな。
結構大変そう。
0471デフォルトの名無しさん2015/02/10(火) 21:48:28.79ID:n5o/EWol
>>468
decompress(chars, indexes) という関数の中で辞書は
m = sizeof(chars) とすると
dict[n]
= chars[n] // n < m の場合
= dict[indexes[n-m]] + dict[indexes[n-m+1]][0] // n >= m の場合
というような定義になる。
もちろん再帰的な定義になってるから順序を気をつけないといけない。
0472デフォルトの名無しさん2015/02/10(火) 22:17:31.91ID:n5o/EWol
>>460
Haskell
https://ideone.com/RCIXMU
0473デフォルトの名無しさん2015/02/10(火) 22:36:00.70ID:aHCuz8yF
>>469
ttp://ideone.com/8yRkdv
C++。サンプルが少なくてあってるかよくわからん。一回やらかしてるので注意してくだせー。
0474デフォルトの名無しさん2015/02/10(火) 22:43:22.10ID:aHCuz8yF
>>471
解説ありがとう。
やっぱ再帰性を担保に構築しないとダメですよね。
頭が悪いとこういう時ツライ。Orz
うーん。なんかできそうなきがする。むー。
0475デフォルトの名無しさん2015/02/10(火) 22:46:47.20ID:aHCuz8yF
速度稼ぐためにMAP使ったけどダメなのか。Vecterでやらないと。
重たいなー。ソートされてないから2分探査も使えないし。
分不相応だったか。
0476デフォルトの名無しさん2015/02/10(火) 22:49:11.15ID:cHYpWE0N
再帰性を担保?
なにそれ?

タンポンの再使用はやめましょう
タンポポの花で耳かきするのはやめましょう
湯たんぽはタオルで包んで使いましょう
ダリホー!イスラム国の兵隊さんみっけ、撃っちゃうぞぉ
0477デフォルトの名無しさん2015/02/10(火) 23:07:40.82ID:gtqcUBDl
>>474
再帰的って言っても単にループでいけるで
0478デフォルトの名無しさん2015/02/10(火) 23:12:18.76ID:aHCuz8yF
頭のなか最適化しなきゃ(使命感
うーん。
0479デフォルトの名無しさん2015/02/10(火) 23:13:48.73ID:F4EjuKl7
再帰的とは言っても再帰性とは言わないし、
再現性を担保っていう言い方があるようにも思えない。
0480デフォルトの名無しさん2015/02/10(火) 23:16:48.97ID:aHCuz8yF
これぞ型破り。とかお茶を濁す。
0481デフォルトの名無しさん2015/02/10(火) 23:27:41.50ID:fRDEvoke
よくわかっていないことを適当に表現してわかっているつもりになる癖がついてるかな?

イメージあれども概念なし

じゃあかんよ
0482デフォルトの名無しさん2015/02/10(火) 23:30:55.86ID:aHCuz8yF
はい。
0483デフォルトの名無しさん2015/02/10(火) 23:31:05.76ID:+AoXQCtw
そんな説教せんでも
0484デフォルトの名無しさん2015/02/10(火) 23:33:59.48ID:F4EjuKl7
文系ってそういう連中の群
0485デフォルトの名無しさん2015/02/10(火) 23:35:37.68ID:F4EjuKl7
頂点に君臨する池上さんら慶應閥
0486デフォルトの名無しさん2015/02/11(水) 08:29:05.49ID:GrZGa77a
>>473
出題者です。
この問題はランフォードの問題というものです。1979年の数セミに紹介されました。
すべてのs,nについて解が存在するわけではなく、必要条件として
n=0,-1(mod4)があるそうです。
0487デフォルトの名無しさん2015/02/11(水) 08:35:45.12ID:GrZGa77a
訂正
必要条件 s=2のとき、n=0,-1(mod 4)
0488デフォルトの名無しさん2015/02/11(水) 10:25:54.44ID:x6JgCX17
Aチケットの価格1500円
Bチケットの価格700円
今日のチケットの売上は462300円
この内,Aチケットの売上は75%, Bチケットの売上は25%である。
Bチケットを購入した人数を求めなさい
0489デフォルトの名無しさん2015/02/11(水) 12:46:25.68ID:Mm+0MgAx
解なし
0490デフォルトの名無しさん2015/02/11(水) 15:05:05.96ID:sJPqGjE7
>>489
売り上げが枚数と金額のどちらを言ってるか、しかも一人一枚限定かどうかを言ってるか
が判然としないと言ってるのか
0491デフォルトの名無しさん2015/02/11(水) 15:50:14.36ID:GrZGa77a
1500x+700y=462300 のディオファントス方程式だと
gcd(1500,700)=100 で 100|462300 だから解はあるはずなのだけど。
後の要件がじゃまをしているような。
0492デフォルトの名無しさん2015/02/11(水) 16:24:42.62ID:PYSPfi0Q
SPIの問題にも出ているので解けない人はアホです
0493デフォルトの名無しさん2015/02/11(水) 16:32:13.62ID:jFiZ2Wwb
ちょいとループさせたら、76%,24%はあった。
アホでいいや。
0494デフォルトの名無しさん2015/02/11(水) 17:03:42.79ID:bo8wnUTr
解の有無以前に"プログラミング"のお題ではない
0495デフォルトの名無しさん2015/02/11(水) 18:00:23.09ID:pkcVw/Y+
いやお題ではあるけど数字がおかしい
0496デフォルトの名無しさん2015/02/11(水) 18:08:57.90ID:eG3WPcOI
出題とは置いといて、算数や数学でもプログラミングは使うのでこれがお題ではないと主張する事自体は間違っている
0497デフォルトの名無しさん2015/02/11(水) 18:26:49.60ID:sJPqGjE7
うん、概数しか出ないね

ダメだなこりゃ
0498デフォルトの名無しさん2015/02/11(水) 18:35:18.91ID:O46sppaP
>>491
間違えた。非負整数だから関係なかった。
でも、75%ってのはわからんなぁ。
0499デフォルトの名無しさん2015/02/11(水) 18:47:28.89ID:FK0tEpRi
連立方程式で解けそうだけど、頭悪いからわからない。
0500デフォルトの名無しさん2015/02/11(水) 19:12:44.05ID:jyDGL2pz
釣りだろ
0501デフォルトの名無しさん2015/02/11(水) 19:48:50.93ID:sJPqGjE7
total = 462300
price_a = 1500
price_b = 700

for i in range(164, 168):
  print "ticket b amount %d" % i
  b_sum = i * price_b
  b_per = (float(b_sum) / total) * 100
  print "ticket b percent %3.2f%%" % b_per
  a_sum = total - b_sum
  a_amt = a_sum / price_a
  print "ticket a amount %d" % a_amt
  a_per = (float(a_sum) / total) * 100
  print "ticket a percent %3.2f%%" % a_per
  print "recalc total %d" % (a_amt * price_a + i
* price_b)
  print "-" * 30

合計を再計算しても元に戻らない
ダメだね
0502デフォルトの名無しさん2015/02/11(水) 21:00:27.43ID:7W5HZePL
出題者さんそろそろ解答例お願いします
0503デフォルトの名無しさん2015/02/11(水) 21:21:32.40ID:FK0tEpRi
A = 462300*0.75/1500 = 231.15
B = 462300*0.25/700 = 165.10714285714285714285714285714

人間を半分にはできないので165人買って0.107人分ボッタクリした。
でFA?

なんだよ。連立方程式すらいらねーじゃん。
0504デフォルトの名無しさん2015/02/11(水) 21:25:46.27ID:FK0tEpRi
ダフ屋じゃねーか。
正確には1人分に満たないくらい過払いがある。か?
0505デフォルトの名無しさん2015/02/11(水) 23:37:21.50ID:FK0tEpRi
>>488
ttp://ideone.com/xcF0ak
C++。これでどうよ。75%きっかりじゃねーじゃねーか。
0506デフォルトの名無しさん2015/02/12(木) 00:04:04.05ID:Q9MlxYPD
まあ(234,159)の所が一番近そう

誤差としてはでか過ぎるけども
0507デフォルトの名無しさん2015/02/12(木) 08:46:16.19ID:MVgfbUe4
連立方程式が不能であることを示せという問題だったのかもしれないなぁ。
0508デフォルトの名無しさん2015/02/12(木) 08:46:59.29ID:MVgfbUe4
お題:
n*nの碁盤にn個の碁石を置く。
このときいずれの碁石2個の距離は異なっていなければならない。
距離とは直線距離である。(ピタゴラスの定理)
例3*3の場合
.___
._|_|
|_._|

5*5の碁盤に5個の碁石を配置するプログラムを書け。
8*8あるいは9*9の碁盤でも配置を見つけられるだろうか?調べよ。
0509デフォルトの名無しさん2015/02/12(木) 08:49:20.54ID:MVgfbUe4
見づらいので直した。
例3*3の場合
._____
.__|__|
|__.__|

5*5はちゃんと答えはあります。
0510デフォルトの名無しさん2015/02/12(木) 10:23:34.70ID:Q9MlxYPD
てすと

print"●□●□□"
print"□□□□□"
print"□□□□●"
print"□□●□□"
print"●□□□□"
0511デフォルトの名無しさん2015/02/12(木) 13:37:24.68ID:YANs7tq6
一見簡単そうに見えて、適当に書くと処理が終わらないっていうパターンか
0512デフォルトの名無しさん2015/02/12(木) 14:27:50.67ID:YANs7tq6
>>508 Common Lisp
http://ideone.com/hgmA7b
手元の処理系なら7*7が限界
あとは任せた
0513デフォルトの名無しさん2015/02/12(木) 14:28:27.65ID:/TeAiWQJ
n=5で鏡像とか回転とか除外しない場合280パターンであってるかな?
0514デフォルトの名無しさん2015/02/12(木) 14:46:31.34ID:YANs7tq6
>>513のおかげで一番大事な枝刈りするの忘れてたことに気づいた
>>512の修正 http://ideone.com/rX6mUV
俺も280パターンになった
8*8, 9*9 共にないことを確認した
0515デフォルトの名無しさん2015/02/12(木) 15:07:14.55ID:/TeAiWQJ
>>508 Java
http://ideone.com/lnlm7p
酷いコードが出来上がった
0516デフォルトの名無しさん2015/02/12(木) 15:49:17.30ID:ChcW/t7D
>>488は学校の課題なのですが、やはり
見られたらまずいので問題文や数値は変えておきました

>>505
サンキューガッツ
0517デフォルトの名無しさん2015/02/12(木) 17:16:56.65ID:Q9MlxYPD
>>508 python2
http://ideone.com/inumf7
肝心の探索アルゴリズムが出来んw
0518デフォルトの名無しさん2015/02/12(木) 17:22:01.37ID:G7IOQrQS
最大の埋め込み数の配置のほうがいいんでは。
0519デフォルトの名無しさん2015/02/12(木) 21:15:45.05ID:MVgfbUe4
>>508 Sapphire
https://ideone.com/2ZrG1W
出題者の責任として書いたが、処理系が非力で5だとメモリ不足を起こす。
0520デフォルトの名無しさん2015/02/12(木) 21:22:19.53ID:MVgfbUe4
元ネタは1976年に別冊数理科学パズル�Tという本に掲載された
「もう一つの碁石パズル」というもので著者は中村義作先生という方です。
さらにその先駆はアメリカのクラヴィッツという人の出題だそうです。
n>=16の場合に置けないことが証明されています。
まだまだパソコンが非力な時代にn=7までは見つかっていたそうです。
0521デフォルトの名無しさん2015/02/12(木) 22:12:00.68ID:Q9MlxYPD
うーむ、オライリーの数学パズル系の本でも読み直そう・・・
0522デフォルトの名無しさん2015/02/12(木) 23:16:31.86ID:BXnkoFsz
>>516
また一人不幸のズンドコへ落としてしまった。罪な俺。
0523デフォルトの名無しさん2015/02/12(木) 23:19:10.49ID:gWTW3ML0
>>519
なんでメモリ不足かと思ったら継続、call/ccだった。
本腰をいれて直すか。
0524デフォルトの名無しさん2015/02/12(木) 23:21:35.14ID:gWTW3ML0
あ、そうか。大域脱出だけだからcall/ecにすれば解決か。
さっさとSchemeの呪縛から逃れたい。
0525デフォルトの名無しさん2015/02/12(木) 23:25:35.25ID:gWTW3ML0
>>516
プログラミングの上達は学校でやる数学や物理をちゃんと勉強するのが近道だよ。
0526デフォルトの名無しさん2015/02/14(土) 14:52:51.93ID:BzTqHYpH
お題:ふたつの素数の和が素数になるものを好きなだけ求める。
0527デフォルトの名無しさん2015/02/14(土) 14:57:14.62ID:xvNWKp27
解なし。必ず一桁目が偶数になるから。奇数+奇数=偶数。
0528デフォルトの名無しさん2015/02/14(土) 14:59:19.61ID:xvNWKp27
って、唯一2が偶数か。うーん
うほ。いきなり間違えた。
素数+2が素数を考えればOKかな?
0529デフォルトの名無しさん2015/02/14(土) 15:12:02.72ID:xKwFGR7n
5+2
0530デフォルトの名無しさん2015/02/14(土) 15:26:58.75ID:BF7Hz1F1
双子素数
0531デフォルトの名無しさん2015/02/14(土) 15:29:01.70ID:kPt70RJT
用途不明な整数論の問題が増え過ぎ。
0532デフォルトの名無しさん2015/02/14(土) 15:50:45.83ID:hFs/AfD2
宿題の季節ですから。
0533デフォルトの名無しさん2015/02/14(土) 15:52:53.30ID:L/dx5qmH
実用的である程度面白いお題ってなんだろう?
0534デフォルトの名無しさん2015/02/14(土) 16:00:11.71ID:hFs/AfD2
っオートマトン
0535デフォルトの名無しさん2015/02/14(土) 16:00:14.98ID:muFMlXYO
HTMLソースをできるだけ正規表現で
DOMオブジェクトに変換するとか
0536デフォルトの名無しさん2015/02/14(土) 16:03:51.43ID:L/dx5qmH
マトン食った事ない
0537デフォルトの名無しさん2015/02/14(土) 16:16:04.87ID:QZdIRAT/
だっちゃ
0538デフォルトの名無しさん2015/02/14(土) 23:10:51.18ID:LPbLDSyd
有名どころだとナップサック問題だな
変数の制約によってさまざまなバージョンが存在する
下の(1)〜(3)はすべて解法が異なるので腕試しにどうぞ

お題
個数と重さと価値がそれぞれn[i] w[i], v[i], (1 <= i <= N) であるようなN種類の品物がある
重さの総和がWを超えないように選んだ時の、価値の総和の最大値を求めなさい

(1)n[i] = 1, 1 <= w[i] <= 100, 1 <= v[i] <= 100, 1 <= N <= 100, 1 <= W <= 10000

(2)n[i] = 1, 1 <= w[i] <= 10^15, 1 <= v[i] <= 10^15, 1 <= N <= 40, 1 <= W <= 10^15

(3)1 <= n[i] <= 10000, 1 <= w[i] <= 100, 1 <= v[i] <= 100, 1 <= N <= 100, 1 <= W <= 10000
0539デフォルトの名無しさん2015/02/14(土) 23:50:09.92ID:LPbLDSyd
>>538
おっと、(1)の条件訂正

(1)n[i] = ∞, 1 <= w[i] <= 100, 1 <= v[i] <= 100, 1 <= N <= 100, 1 <= W <= 10000
0540デフォルトの名無しさん2015/02/15(日) 15:19:15.14ID:Qwk5nQv8
3 not problem http://parametron.blogspot.jp/2008/07/3-not-problem.html

x,y,zの3入力, x',y',z'の3出力を持つブラックボックスがある. 入出力の関係は
x'=not x
y'=not y
z'=not z
である. ブラックボックスには, andとorは好きなだけ使われているが, notは2つしかないことが分かっている.

内部はどうなっているか.
0541デフォルトの名無しさん2015/02/15(日) 17:03:44.74ID:3ebY1fvj
そんなのカルノー図書けば一発だろと思ったら違ったw
0542デフォルトの名無しさん2015/02/15(日) 18:35:21.80ID:95bkybK9
俺の探索アルゴリズムじゃ歯が立たない
0543デフォルトの名無しさん2015/02/15(日) 18:37:12.17ID:pLajBfKs
自力で答え考えるほうが楽だった
0544デフォルトの名無しさん2015/02/16(月) 11:49:48.81ID:f7brl41S
not2つも使わなきゃいけないのか
0545デフォルトの名無しさん2015/02/16(月) 12:51:04.48ID:o9E9nO+7
オライリーのアルゴリズムパズル読んでるけどチュートリアルがまだ読みおわらねw
0546デフォルトの名無しさん2015/02/16(月) 17:55:57.73ID:1x+didfY
>>540 Java
http://ideone.com/sVPIDp
5秒じゃ収まらんかった
0547デフォルトの名無しさん2015/02/16(月) 18:07:14.50ID:1x+didfY
>>546があってるかどうかの確認 Java
http://ideone.com/BLNvZn
0548デフォルトの名無しさん2015/02/16(月) 18:22:10.84ID:1x+didfY
>>546の遅そうな部分を修正
http://ideone.com/l0txFu
0549デフォルトの名無しさん2015/02/17(火) 02:23:01.07ID:ajwgnA0x
2ちゃんねる用ブラウザ「ギコナビ」 Part69 [転載禁止]&copy;2ch.net
http://anago.2ch.net/test/read.cgi/software/1424084122/l50
0550デフォルトの名無しさん2015/02/17(火) 09:01:36.80ID:d+hn81Dl
お題としては重すぎるな
0551デフォルトの名無しさん2015/02/19(木) 14:36:02.85ID:PbZ3mXOh
ギコナビが使えなくなるので3/31一杯で撤退します。
ギコナビそのものはSCでも読めるようなのでそっちに移住するかもしれんです。
裏の利権なんか知らんです。安住の地さえあれば・・・。
0552デフォルトの名無しさん2015/02/19(木) 14:54:07.70ID:KcgCnV2U
思いっきりスレ違いだけれども、データ取ってきてローカルでビューを加工するって
発想が前時代的だと思う。

人も減ったことだし、サーバーで直接見やすいhtml吐くようにすりゃいいのに。
0553デフォルトの名無しさん2015/02/19(木) 14:56:57.14ID:PbZ3mXOh
datより小さいHTML吐ければいいけどね。上位の転送料って従量制だから。
0554デフォルトの名無しさん2015/02/19(木) 15:17:41.03ID:7oFSdK4O
>>552
今時の方法との違いってViewerがHTMLで実装されてるかネイティブで実装されてるかの違いしか無いと思うんだけど。
データを取ってきてクライアント側で表示内容を生成するのは変わらないでしょ。

今時の方法はデータのフォーマットをJSONにしたりするのかもしれないけど
0555デフォルトの名無しさん2015/02/19(木) 15:50:18.65ID:KcgCnV2U
>>554
確かに...
0556デフォルトの名無しさん2015/02/19(木) 15:59:01.49ID:lpMh0T0h
>>552
てか2ch.netはそうなってるんだけどさ。
昨日たまたまスマホ用の2chを、ブラウザで覗いたら、
実は専用アプリは不要だった、という事実に気づいた。
0557デフォルトの名無しさん2015/02/19(木) 16:00:45.76ID:lpMh0T0h
ただあまりにも下品な広告の洪水に辟易したけどね。
乗っ取った側ってやっぱヤクザ的な人たちなのかねえ。
0558デフォルトの名無しさん2015/02/19(木) 16:04:33.86ID:PbZ3mXOh
元々はヒロユキの傀儡だったがヒロユキがへまして乗っ取られた。相手は外人なのに信用しすぎた。
一応、2chは日本の英知に近い部分があるので、そういうのに興味があるやつに乗っ取られたんだと思ってるよ。
0559デフォルトの名無しさん2015/02/19(木) 17:34:36.82ID:06K6cuzM
本家がopenやscに移行への手を貸す形になりそうw
アホやんw
0560デフォルトの名無しさん2015/02/19(木) 17:49:09.03ID:AJBvTtK0
まつもとひろゆき
0561デフォルトの名無しさん2015/02/21(土) 14:38:24.84ID:WPC2wl2D
【実況】向かいの部屋に住んでいる女子高生が窓を開けたままオナニーしているんだが
http://hayabusa6.2ch.net/test/read.cgi/network/1387872458/
0562デフォルトの名無しさん2015/02/21(土) 14:39:39.65ID:lleGAg6p
コピペマン参上!まで読んだ。
0563デフォルトの名無しさん2015/02/27(金) 14:31:48.73ID:wMAAsYaL
お題を…お題をくれっ

簡単すぎない簡単なやつを頼む
0564デフォルトの名無しさん2015/02/27(金) 14:35:00.54ID:HpQtp076
チンコ萎えましたぁ

復活アルゴリズムきぼんぬ
0565デフォルトの名無しさん2015/02/27(金) 15:24:09.18ID:SSnJx+o0
18禁注意
ttp://www.amazon.co.jp/gp/product/4799200550
最近買ったなかではこれが良かった。
特殊趣向なところあるけどな。
0566デフォルトの名無しさん2015/02/27(金) 16:45:28.14ID:UWbFrZRi
>>563
ファミコン上で動くOS
エミュ可
0567デフォルトの名無しさん2015/02/27(金) 16:52:54.87ID:vP93htBG
ファミコンより安いARMでOSが動く環境があるのにどうなんだろうな?
0568デフォルトの名無しさん2015/02/27(金) 17:25:58.98ID:iHoQTjKY
OS作ったって誰も検証できないじゃん
0569デフォルトの名無しさん2015/02/27(金) 17:32:54.27ID:vP93htBG
m人の女子がいてその中の人はチンコが生えていてp人は18歳未満です。

さて、どうでしょう?
0570デフォルトの名無しさん2015/02/27(金) 17:34:26.85ID:vP93htBG
チンコが生えているのはn人でした

安全にナンパできる確率を求めよ
0571デフォルトの名無しさん2015/02/27(金) 18:48:22.81ID:UWbFrZRi
>>568
配布してエミュで動かしてもらえばいいと思ったんだけど
0572デフォルトの名無しさん2015/02/28(土) 14:04:57.27ID:+gtkzrQz
>>563

お題
じゃんけんの手のリストが文字列で与えられるので
その中で勝ちの手がいくつあるか答えよ
(g=グー、c=チョキ、p=パー)

gpgpgppppg -> 6
ggggggggggggggg -> 0
ccpcpppcccpppcppcpcc -> 10
ggcgcgcggggcpgcggcgcggggcgcgcc -> 0
0573デフォルトの名無しさん2015/02/28(土) 14:29:49.62ID:XdlzGyk5
勝ちの手ってどういうことだ
0574デフォルトの名無しさん2015/02/28(土) 14:51:34.58ID:WGZr43/X
計算問題

http://codepad.org/pCMF5uBs

計算例
1: 2.998654
2: 3.150284
3: 3.485522
4: 4.071366
5: 5.000000
以下略
0575デフォルトの名無しさん2015/02/28(土) 14:54:02.13ID:MwE2cKVB
答えはチョキ?となると最後は0ではなく1にならなければいけないから
違うな

というかプログラムにならんしw
0576デフォルトの名無しさん2015/02/28(土) 15:06:38.91ID:yAjdu5nl
最後はp1人いるからあいこで0
他は順にgの数、あいこ、cの数
大勢で一度にジャンケンして勝った人数じゃね
0577デフォルトの名無しさん2015/02/28(土) 18:03:13.14ID:LQWoRAlQ
>>572
Pythonで。
http://ideone.com/zfhBbi
0578デフォルトの名無しさん2015/02/28(土) 19:34:39.36ID:Mpzn4DGR
>>572
ttp://ideone.com/sp7Wdh
C++。適当に書いた。漏れがあったらごめん。
0579デフォルトの名無しさん2015/02/28(土) 21:11:55.74ID:k8/PfXcG
>>572
rubyで
http://codepad.org/gldEahCz
0580デフォルトの名無しさん2015/02/28(土) 21:22:58.42ID:k8/PfXcG
バグってるな…
0581デフォルトの名無しさん2015/02/28(土) 22:34:07.41ID:pM+RKKwV
http://codepad.org/7lieIp2C
0582デフォルトの名無しさん2015/02/28(土) 22:48:27.11ID:Mpzn4DGR
じゅんけん。じゃなくて、じゃんけんな。
0583デフォルトの名無しさん2015/03/01(日) 11:48:28.22ID:KO4EdtEI
>>572
Scheme
http://codepad.org/obIkrj4w
0584デフォルトの名無しさん2015/03/01(日) 17:15:21.26ID:lheYQzbz
参加人数N(1から10の10乗)
「どちらにしようかな 天の神様の言う通り」
最後の「り」に当たる人は何番目の人か出力しなさい
0585デフォルトの名無しさん2015/03/01(日) 18:12:58.94ID:5J5cY+ZW
>>584
常に22番目じゃね?詳細。
0586デフォルトの名無しさん2015/03/01(日) 18:18:59.48ID:KO4EdtEI
>>585
そうじゃなくて
((N div 22) * 22) + (N mod 22)番目の人じゃないか?
最後の「り」に当たる人は何番目?
だと思うよ

div -> 商をもとめる演算とする
0587デフォルトの名無しさん2015/03/01(日) 18:24:15.87ID:KO4EdtEI
>>586
補足
とぉっても大きな数の場合、具体的にどう処理するのか?が出題の眼目だと思うけどね

アアン、大きすぎてぇ入らないのぉ
グゥェヘヘ、工夫しろや!欲しいんやろ?これがほしいんやろ?
0588デフォルトの名無しさん2015/03/01(日) 18:26:40.62ID:5J5cY+ZW
そんな何順もするもん?ローカルルールがありすぎて統一するの難しそうだな。
10の10乗って10億か?そこまで到達しないだろう。
0589デフォルトの名無しさん2015/03/01(日) 18:28:38.92ID:5J5cY+ZW
>>587
どう頑張っても不平等だな。まいったなぁ。
0590デフォルトの名無しさん2015/03/01(日) 19:30:21.33ID:5J5cY+ZW
>>584
ttp://ideone.com/mrCKcD
C++。一応それっぽいの書いてみた。
最初D分割されたグループを再帰的に選んで行って最後のウイナーを決める。感じ?
なんか、小さいころに習得した事ってあんまり整理されてなくてぐちゃぐちゃだな。
すげー、頭こんがらがった。
これでいいか?あっては無いと思うが。デバッグテキトー。
0591デフォルトの名無しさん2015/03/01(日) 19:51:13.89ID:5J5cY+ZW
感想募集中。
0592デフォルトの名無しさん2015/03/01(日) 20:18:38.81ID:StRWusym
>>572 Squeak Smalltalk

#('gpgpgppppg'
'ggggggggggggggg'
'ccpcpppcccpppcppcpcc'
'ggcgcgcggggcpgcggcgcggggcgcgcc'
) collect: [:str |
 | bag |
 bag := str asBag.
 str -> (bag occurrencesOf: (
  bag asSet caseOf: {
   ['gp' asSet] -> [$p].
   ['gc' asSet] -> [$g].
   ['cp' asSet] -> [$c]
  } otherwise: [$z]))
]

"=> {
 'gpgpgppppg'->6 .
 'ggggggggggggggg'->0 .
 'ccpcpppcccpppcppcpcc'->10 .
 'ggcgcgcggggcpgcggcgcggggcgcgcc'->0
} "
0593デフォルトの名無しさん2015/03/01(日) 20:39:15.52ID:VH/O77/u
https://www.cocokawa.jp/photocp/ajax/vote/?id=1721#i.jpg
0594デフォルトの名無しさん2015/03/01(日) 22:00:38.25ID:uBqQu6I9
>>572 Haskell
http://ideone.com/8tuhZi

こういう問題、他の人の実装を見るのが楽しい
0595デフォルトの名無しさん2015/03/02(月) 00:51:48.09ID:u8KCJCBk
>>584
ttp://ideone.com/yF3Q7S
0596デフォルトの名無しさん2015/03/02(月) 01:51:05.10ID:u8KCJCBk
>>577
ちょっと修正。
https://paiza.io/projects/LaoJwg1Msbiy04GxDQmQkw
0597デフォルトの名無しさん2015/03/02(月) 14:47:23.69ID:qt+uKgff
>>572 Perl
http://ideone.com/TDGfOR

アレスグーテ!
0598デフォルトの名無しさん2015/03/02(月) 17:06:34.79ID:ssnAt4RV
>>584は最後の一人になるまで “り” に当たった人を減らしていくって問題な気がする
出題者の意図を考える問題ww

Java
http://ideone.com/GQ6cIU
線形時間ではこんな感じで。
これ計算で求めるのは如何するん?
0599デフォルトの名無しさん2015/03/02(月) 18:29:26.15ID:ssnAt4RV
>>584 Java
>>598のループ回数減らして高速化
http://ideone.com/KK41n4
0600デフォルトの名無しさん2015/03/02(月) 18:40:59.16ID:kcGDdoVo
出題したものだけど計算で一発で求める方法があるか知りたくて問題出しただけだよ
0601デフォルトの名無しさん2015/03/02(月) 18:41:33.82ID:kcGDdoVo
ループなら21回で済む
10^10は釣りで入れただけ
0602デフォルトの名無しさん2015/03/02(月) 18:43:52.82ID:ssnAt4RV
>>601
りふぁれんすぷりーず
0603デフォルトの名無しさん2015/03/02(月) 18:56:13.42ID:uwKuVIvd
>>601
リファレンスぷりーず
0604デフォルトの名無しさん2015/03/02(月) 18:58:13.75ID:uwKuVIvd
っていうか、仕様に釣りとか入れないで。
問題変わっちゃうじゃん。
0605デフォルトの名無しさん2015/03/02(月) 19:05:45.87ID:dDkAzPg+
さよならNG
誠意のない問題はクズ
ID:kcGDdoVo
0606デフォルトの名無しさん2015/03/02(月) 21:38:42.50ID:pFGTGZil
>>604
問題をそのまま見ればわかる
0607デフォルトの名無しさん2015/03/02(月) 21:43:57.52ID:kaLsZZuA
久しぶりにNG宣言してるかまってちゃん奴見たわ
0608デフォルトの名無しさん2015/03/02(月) 21:47:50.41ID:uwKuVIvd
>>606
じゃあ、常に22番目じゃねーか。
0609デフォルトの名無しさん2015/03/02(月) 21:52:03.76ID:9xnlax9t
1 ど
2 れ
3 に
4 し
5 よ
6 う
7 か
8 な
9 て
10 ん
11 の
12 か
13 み
14 さ
15 ま
16 の
17 い
18 う
19 と
20 お
21 り
0610デフォルトの名無しさん2015/03/02(月) 21:56:52.88ID:uwKuVIvd
あら、でも常に定数じゃないか。
正直すまんかった。
21%min(N,22)で済む話か?
0611デフォルトの名無しさん2015/03/02(月) 22:15:18.95ID:uwKuVIvd
なんか微妙に違う気がする。あれ?
0612デフォルトの名無しさん2015/03/02(月) 22:26:31.41ID:uwKuVIvd
21%min(N+1,22)かな?
0613デフォルトの名無しさん2015/03/02(月) 22:33:33.86ID:3sD289zB
普通に 21%N だろ
ただしN番目の人は0番目扱いになるから
そこだけ注意が必要だな
0614デフォルトの名無しさん2015/03/02(月) 22:39:16.37ID:uwKuVIvd
あぁ、喉のつっかえ取れたわ。
そういえばNって別にいくつでもいいのか。
選ばれるのは1開始だけど、21%21=0なので+1しないとだめかな?
まぁ0番目はdevBYzeroでけられる可能性があるので対策しないとだけどな。
1基準だとPGの通例と変わってくる可能性がある。
0615デフォルトの名無しさん2015/03/02(月) 23:51:16.64ID:0LD623h0
>>607
は?精神病?
どこをどうすればかまってちゃんになるんだか
精神病の発想はよくわからん
0616デフォルトの名無しさん2015/03/03(火) 14:35:00.46ID:D8QZLzb7
>>609
>>584
どちら どれ wwww
0617デフォルトの名無しさん2015/03/04(水) 12:00:16.63ID:siY0+JXs
お題:小文字のアルファベットからなる文字列を圧縮して。文字列は複数行あるから。

aabbcc
↓
a2b2c2

abcde
aabbb
↓
a1b1c1d1e1
a2b3

aaa
bbb
ccc
↓
a3
b3
c3
0618デフォルトの名無しさん2015/03/04(水) 12:05:34.33ID:6Z36/r8C
圧縮出来てねえ
0619デフォルトの名無しさん2015/03/04(水) 12:13:37.04ID:siY0+JXs
aaaaaaaaaa
↓
a10
0620デフォルトの名無しさん2015/03/04(水) 12:31:31.89ID:aiebJTF+
3つ以上の連続性無いと意味無いな
アルファベット以外の、例えば数字自体は考えなくてもいいって事?

あと復元のことも考えないとな
0621デフォルトの名無しさん2015/03/04(水) 12:51:35.41ID:XT2eiHg0
『一回の場合'1'は省略する』
くらいのことを思いつかない奴が
プログラムに手を出すなとか思う
0622デフォルトの名無しさん2015/03/04(水) 13:31:56.41ID:p/ReeUop
省略するかしないかは別にいいんじゃないかな
0623デフォルトの名無しさん2015/03/04(水) 14:22:53.36ID:E/p47b86
圧縮したらぁ
abcの三文字がぁ
a1b1c1って倍になっちゃったぁ

それを圧縮というかい!!!!
それに数字の部分はもろに数字かい!!
それに使用文字をアスキー文字に限定してるんかどうか?

仮に、話を簡単にするため
1.圧縮対象文字は英語小文字のaからzとする
2. 指定文字からなる文字列を圧縮せよ。
3. 当然復元できるものとする
さあ、効率と速度を競え

かなぁ。

例
とりあえず文字種を表すのに5bitでたりるな。残り3ビットで連続回数を指定す
る

すると(文字種 ・ 長さ)を1バイトで表現できる

もし、連続回数が8文字以上の場合は
次の1バイトを長さ情報バイトとして付加する。

最後の長さ情報バイトの値は255未満としておけば、次のバイトは(文字種 長さ)バイトだと認識できる。
圧縮文字列の最後は(0 ・0)で終端すれば良い

どうかなぁ
0624デフォルトの名無しさん2015/03/04(水) 14:26:29.89ID:E/p47b86
上をワンパスとして
さらに同一パターンの検出をかますともっと圧縮できるなぁ
abcdeabcxy
これは
p1 cd p2 xy
となるな
真面目な圧縮プログラムはいろいろ工夫してるんだろな
0625デフォルトの名無しさん2015/03/04(水) 15:56:04.47ID:D1jSwNUW
>>617 Squeak Smalltalk

| compress |
compress := [:str |
 String streamContents: [:ss |
  str lines do: [:line |
   self assert: [Character alphabet includesAllOf: line].
   (line as: RunArray) runsAndValuesDo: [:run :val | ss nextPutAll: '', val, run]
  ] separatedBy: [ss cr]
 ]
].

compress value: 'aabbcc'.

"=> 'a2b2c2' "

compress value: 'abcde
aabbb'.

"=> 'a1b1c1d1e1
a2b3' "

compress value: 'aaa
bbb
ccc'.

"=> 'a3
b3
c3' "
0626デフォルトの名無しさん2015/03/06(金) 11:14:35.45ID:uBYudlMK
>>617
Sceme リスト変換版 冗長になったああ
http://codepad.org/Q3eeiyeO
0627デフォルトの名無しさん2015/03/06(金) 20:10:15.80ID:U9T/oBTW
>>617
ruby
$ echo aabbccc | ruby -pe '$_.gsub!(/(.)(\1*)/){$1+"#{$2.size+1}"}'
a2b2c3
0628デフォルトの名無しさん2015/03/06(金) 20:16:07.00ID:U9T/oBTW
ついで
$ echo -e "a3\nb3\nc3" | ruby -pe '$_.gsub!(/(.)(\d+)/){$1*$2.to_i}'
aaa
bbb
ccc
0629デフォルトの名無しさん2015/03/06(金) 21:07:24.47ID:oJtnjCND
>>625
閉じ括弧の位置がきもちわるい
0630デフォルトの名無しさん2015/03/06(金) 22:35:31.63ID:YBksKqE2
>>617
ttp://ideone.com/k9ARJx
C++。今頭腐ってるから手抜きで。
頭腐ってても暇なもんは暇だな。はぁ・・・。
あってるかなー。
0631デフォルトの名無しさん2015/03/06(金) 23:55:15.25ID:MtMWpDAX
すごいプログラミングを考えた!どうよ?
http://fox.2ch.net/test/read.cgi/poverty/1425651890/
0632デフォルトの名無しさん2015/03/07(土) 12:41:43.68ID:JmbQJgEM
>>631
プログラマ余らせるくらいなら別のプロジェクト当てるんじゃね?
0633デフォルトの名無しさん2015/03/07(土) 13:35:07.48ID:/5K+qj6/
1からN未満の自然数で、3または5の倍数の合計を求めよ
ただし、9で割り切れる数は除外すること
0634デフォルトの名無しさん2015/03/07(土) 14:52:07.48ID:hGoDGKC0
>>633 Java
http://ideone.com/bndQ6z
0635デフォルトの名無しさん2015/03/07(土) 14:53:25.42ID:JmbQJgEM
なんか前にも見た覚えあるなー。
0636デフォルトの名無しさん2015/03/07(土) 15:43:28.68ID:JmbQJgEM
>>633
ttp://ideone.com/hN1PIT
C++。一応書いたけど、遅いよ。もう滅茶苦茶遅いよ。それでも・・・いい?
0637デフォルトの名無しさん2015/03/07(土) 16:11:12.51ID:lbaOW+/n
ダメよダメダメって言えばいいの?
0638デフォルトの名無しさん2015/03/07(土) 16:21:20.16ID:bJg/o0s7
チンコ萎えますぅ
0639デフォルトの名無しさん2015/03/07(土) 16:38:26.96ID:JmbQJgEM
最近テレビは見てないのでそのネタはわからんかった。Orz
0640デフォルトの名無しさん2015/03/07(土) 20:52:26.61ID:bJg/o0s7
>>633
Scheme

http://codepad.org/q3DokK52
atomの8インチタブレットでNが百万で5秒くらいの速度
0641デフォルトの名無しさん2015/03/07(土) 20:59:14.75ID:bJg/o0s7
>>636
あれ? 君と答えが違う

↓ Schemeで

(foo 300000 (lambda (x y) x))
17000049996
0642デフォルトの名無しさん2015/03/07(土) 21:10:39.63ID:bJg/o0s7
>>641
>>636
問題文よみちがえていた
間違い 5の倍数と 3の倍数で9の倍数ではないもの
訂正 5の倍数または3の倍数で かつ 9の倍数ではないもの

それでも >>636 と300000の時の答え違う
http://codepad.org/gnMxD2Zf

俺がまちがってるのかなあ
0643デフォルトの名無しさん2015/03/07(土) 21:27:24.16ID:O2EfnUy2
>>633 Squeak Smalltalk

| fn |
fn := [:N |
 ((1 to: N) select: [:x |
  ((x isDivisibleBy: 3) or: [x isDivisibleBy: 5])
   and: [(x isDivisibleBy: 9) not]]
 ) sum
].

fn value: 300000 "=> 16000100001 "
0644デフォルトの名無しさん2015/03/07(土) 21:51:42.87ID:JmbQJgEM
あれ?間違ってるか。あれ?
すまん。>>636は取り下げ。
0645デフォルトの名無しさん2015/03/07(土) 21:52:24.16ID:O2EfnUy2
>>643
未満か…orz

×1 to: N → ○1 to: N-1
×16000100001 → ○15999800001
0646デフォルトの名無しさん2015/03/07(土) 22:14:39.15ID:fJ4fWqRj
>>645
(*´σー`)エヘヘ
だんな、おいらも未満にきづかなかったべ
ま、いいやないの
0647デフォルトの名無しさん2015/03/07(土) 22:15:43.38ID:fJ4fWqRj
>>644
>>646
すまんかったね
0648デフォルトの名無しさん2015/03/07(土) 22:20:36.44ID:8nTZ5hf2
> [*1...300000].delete_if{|x|x%9==0}.select{|x|x%3==0||x%5==0}.reduce(:+)
=> 15999800001
0649デフォルトの名無しさん2015/03/07(土) 22:32:09.50ID:FS79VVDG
>>643
なんで閉じカッコの場所をSmalltalkらしくしないの?
0650デフォルトの名無しさん2015/03/07(土) 22:36:52.43ID:/Hf1PLs3
つうか1からNまでループするのは賢くない気がする
0651デフォルトの名無しさん2015/03/07(土) 22:53:14.58ID:e+qxg0mC
俺のはコレクター(継続し渡し)による末尾再帰最適化を施した再帰処理やで
よって再帰やけど単純ループに相当する速さや
速くていいのは再帰に牛丼
速すぎていけないのは車と早漏
0652デフォルトの名無しさん2015/03/07(土) 23:06:13.12ID:hGoDGKC0
ループや再帰要らんじゃろ
>>634のf2参照

Java 多倍長整数版
http://ideone.com/n5XLyh
0653デフォルトの名無しさん2015/03/07(土) 23:21:46.56ID:JmbQJgEM
>>645-646
なんだ、そういうミスか。びっくりした。
どこ直そうか全然わからなかった。

>>652
こういう一発技を捻れなかったからループを使いました。(偉そう)
今、滅茶苦茶調子悪いの。Orz
0654デフォルトの名無しさん2015/03/07(土) 23:40:23.36ID:4czvFiqV
俺はScheme勉強中だから何が何でも再帰や!
あはは
0655デフォルトの名無しさん2015/03/07(土) 23:45:40.27ID:O2EfnUy2
>>633 GNU Smalltalk

Interval extend [
 sum [^self first + self last * self size / 2]
]

fn := [:N |
 ((3 to: N-1 by: 3) sum + (5 to: N-1 by: 5) sum - (3*5 to: N-1 by: 3*5) sum - (9 to: N-1 by: 9) sum)
].

(fn value: 300000) printNl => 15999800001

http://ideone.com/F6y8M2
0656デフォルトの名無しさん2015/03/08(日) 15:14:08.68ID:Zck1rhOd
深さ優先探索と幅優先探索ってどうやって使い分けていいのかおしえて
0657デフォルトの名無しさん2015/03/08(日) 15:32:45.50ID:mBgBNV1f
マンコに入れる時は深さ優先
オッパイもみもみするときは幅優先かなあ
0658デフォルトの名無しさん2015/03/08(日) 15:34:44.71ID:7Ai8lzeX
キモヲタ丸出しw
馬鹿じゃねえの
0659デフォルトの名無しさん2015/03/08(日) 15:41:41.30ID:dM1B/3iR
俺のそそり立つチンコ見てもそう言えるか?ああん?
0660デフォルトの名無しさん2015/03/08(日) 15:46:07.95ID:qIBf1HTy
自分は、メモリケチりたいときは深さ優先検索でメモリ有り余ってる時は幅検索かな。
問題の質にもよるけど、全幅検索して万能解出したいときは幅検索しないときついときがある。
最適解でいいなら深さ優先検索のほうが早いと思う。
0661吐いた2015/03/08(日) 17:17:12.77ID:ZWLsQWi0
>>659
0662デフォルトの名無しさん2015/03/08(日) 18:13:53.05ID:fVwUy8ph
>>633
Python3で。
ttps://paiza.io/projects/tCMqV9kBbJY5JgXYfF-jNw
手元PCで 0.11s user 0.02s system 93% cpu 0.139 total
0663デフォルトの名無しさん2015/03/08(日) 21:23:41.55ID:fVwUy8ph
>>633
ttp://ideone.com/mcLxK6
0664デフォルトの名無しさん2015/03/08(日) 21:41:30.34ID:4v0KO8Ne
数学の知識が無くても解けるがあると効率良くなる問題を出題してください
0665デフォルトの名無しさん2015/03/08(日) 21:43:26.64ID:HpC0rxgi
>>664
>>633とかいい例じゃないの
0666デフォルトの名無しさん2015/03/08(日) 22:47:49.33ID:4v0KO8Ne
それ、おれですよ出題したのおれなんですよ
その問題しか知りません
0667片山博文MZ ◆T6xkBnTXz7B0 2015/03/08(日) 22:58:12.75ID:mm6WxmZr
お題:Lisp風の丸かっこ( )で構造化されたデータをてきとーにXMLに変換する
0668デフォルトの名無しさん2015/03/08(日) 23:59:50.63ID:5ixTzgyd
>>633 Haskell
http://ideone.com/NDm2tA
0669デフォルトの名無しさん2015/03/09(月) 00:30:47.73ID:tnx2P+0y
>>664
もうやっていらっしゃる気もするけど Project Euler の最初の方とかいいんじゃなかろうか
0670デフォルトの名無しさん2015/03/09(月) 01:56:41.76ID:qBPlQWAy
お題:ネイピア数eを十進数で表記すると0から9までのすべての数字があらわれるのは小数点以下20桁目ですが、
"000"から"999"までのすべての文字列があらわれるのは小数点以下何桁目かを求めてください。
("718"と"182"は小数点以下4桁目までにともに含まれるものとします)

(substring e 1 (+ 20 2))
".71828182845904523536"

(apply #'max (loop for i from 0 to 9 collect (search (format "%d" i) (substring e 1 (+ 20 2)))))
20

(substring e 1 (+ 4 2))
".7182"

(+ (search "718" (substring e 1 (+ 4 2))) 2)
3

(+ (search "182" (substring e 1 (+ 4 2))) 2)
4
0671デフォルトの名無しさん2015/03/09(月) 13:20:22.83ID:EbdUqU5/
>>670 Squeak Smalltalk

| N M epsilon e x max |
N := 10000.
M := 3.
epsilon := 10 raisedTo: N negated.
e := 2 asScaledDecimal: N.
x := 1.
[ | delta | e := e + (delta := 1 / (x := x + 1) factorial). delta < epsilon] whileFalse.
e := e printString.
e := e copyFrom: 3 to: e size - 1 - N printString size.
max := 0.
($0 to: $9) asDigitsToPower: M do: [:digits |
 | loc |
 loc := e indexOfSubCollection: digits.
 loc = 0 ifTrue: [^'not found ', (digits as: String), '. try larger N'].
 loc > max ifTrue: [max := loc]
].
^max "=> 8089 "
0672デフォルトの名無しさん2015/03/09(月) 14:15:47.14ID:/CoHYqtD
>>667 F#

open System
let rec manyAcc p xs = p xs |> function
 | None -> [], xs
 | Some(x, xs) -> let rs, xs = manyAcc p xs in x::rs, xs
let (<|>) l r xs = (l xs, r xs) |> function
 | Some x, _ | _, Some x -> Some x
 | _ -> None
let (|>>) p f = p >> Option.map (fun (x, xs) -> f x, xs)
let (.>.) l r = l >> Option.bind (fun (x1, xs) -> (r |>> fun x2 -> (x1, x2)) xs)
let wrap o c p = o .>. p .>. c |>> (fst >> snd)
let many p = manyAcc p >> Some
let many1 p = p .>. many p |>> List.Cons
let such p = function x::xs when p x -> Some(x, xs) | _ -> None
let (~%) c = such <| (=) c
let space = such Char.IsWhiteSpace
let token p = wrap (many space) (many space) p
let putChars xs _ = Seq.iter (printf "%c") xs
let putElem n xs _ = printf "<"; n(); printf ">"; xs(); printf "</"; n(); printf ">"
let string = wrap %'\'' %'\'' (many (such ((<>) '\''))) |>> (putChars >> putElem (putChars "str"))
let int = many1 (such Char.IsNumber) |>> (putChars >> putElem (putChars "int"))
let name = many1 (such Char.IsLetter) |>> putChars
let _expr = ref <| failwithf "%A"
let expr = fun xs -> !_expr xs
let list = wrap (token %'(') (token %')') (name .>. many expr) |>> fun (n, xs) -> putElem n (fun () -> for e in xs do e())
_expr := list <|> token int <|> token string
let printXml = Seq.toList >> expr >> Option.iter (fst >> (|>) ())

printXml "(data 'ten')" // <data><str>ten</str></data>
printXml "(res 774 (body 'test'))" // <res><int>774</int><body><str>test</str></body></res>
0673デフォルトの名無しさん2015/03/09(月) 15:02:44.27ID:bBnu/gt8
>>671
あ、すみません。最後 + 2 するの忘れました。orz

× ^max → ○ ^max + M - 1
× => 8089 → ○ => 8091
0674デフォルトの名無しさん2015/03/09(月) 17:18:44.92ID:gk6yvFxP
仕様
・a要素の中にはb要素とテキストを挿入できる
・b要素にはテキストのみ挿入できる。
・要素は閉じなければならない<要素名></要素名>

制約
・テキストは[a-zA-Z0-9]のみで最大100文字の長さである事が保証される
・要素はaとbの二つしか存在しないことが保証される。
・テストに使われる文字列は[<>/a-z-A-Z0-9]のみが保証される

以下は正しい構造である
<a>ruby<b>php</b>python</a><a><b></b></a><a></a>

お題
与えられた文字列が正しい構造であれば1、正しくなければ0を出力しなさい
<a>ruby<b>php</b>python</a><a></b></a><a></a>
<a>ruby<b>php</b>python</a><a><b></a><a></a>
<a>ruby<b>php</b>python</a><a><b></b></a><a>
vvvc<a>ruby<b>php</b>python</a><a><b></b></a><a></a>
06756742015/03/09(月) 17:20:18.97ID:gk6yvFxP
HTMLパーサー等のライブラリの仕様禁止
0676デフォルトの名無しさん2015/03/09(月) 17:24:21.95ID:a4rJAsDL
テキストは要素の外にあってもいいんかね?
0677デフォルトの名無しさん2015/03/09(月) 17:58:02.83ID:gk6yvFxP
はい、かまいません
0678デフォルトの名無しさん2015/03/09(月) 19:37:51.14ID:a4rJAsDL
>>674 Java
http://ideone.com/5t4pMZ
酷いコードになったぜ
0679デフォルトの名無しさん2015/03/09(月) 20:51:05.51ID:Jn+3c0fJ
>>674 Ruby
http://ideone.com/GO71b6
0680デフォルトの名無しさん2015/03/09(月) 21:51:58.75ID:a4rJAsDL
>>679
なるほど勉強になる
http://ideone.com/SfLTn3
0681デフォルトの名無しさん2015/03/10(火) 00:31:08.92ID:6esjUope
>>674 C
http://ideone.com/d7bWk8
0682デフォルトの名無しさん2015/03/10(火) 01:16:47.93ID:MirLuamm
>>674 JavaScript
http://ideone.com/GeKkDG
楽をしようと思ったらイマイチだったでござる
0683デフォルトの名無しさん2015/03/10(火) 12:39:28.46ID:WQWlRlS8
メモリ512MのPCで、改行区切りのサイズ500M程度の2つのテキストの共通部分、差分を速く計算するにはどうしたらいいですか。
0684デフォルトの名無しさん2015/03/10(火) 12:48:35.51ID:WQWlRlS8
>>683
unix系でむかしから知られてる方法は遅いんです。


sort moto.txt del.txt | uniq -d > union.txt
sort moto.txt union.txt | uniq -u > difference.txt


uniq
-d : 元のファイルで繰り返し出現した行だけを出力
-u : 元のファイルで繰り返し出現しない行だけを出力
0685デフォルトの名無しさん2015/03/10(火) 23:52:33.87ID:wO0+V1lV
ファイル処理の問題かあ

500Mだけど1行のファイルの場合
06866812015/03/11(水) 11:56:44.17ID:qwMaOuz+
>>681
バグってたのでsage
0687デフォルトの名無しさん2015/03/12(木) 05:22:58.94ID:oUCLN3I3
>>674 C
http://ideone.com/BgrYRy
0688デフォルトの名無しさん2015/03/12(木) 20:59:36.23ID:Df+IQ8v8
>>674
ttp://ideone.com/8J7SB3
C++。Cの方のisalnumを使うアイディアをパクらせてもらったらだいぶん短くなった。
扱いやすい中間形式に変換してパースしてます。正規表現なにそれおいしいの?Orz
白状すると正規表現わかりません。(ToT

こんな感じであってるかな?
0689デフォルトの名無しさん2015/03/12(木) 21:22:48.13ID:kfyJIopR
674のをjavascriptかphpかpythonでも頼む
0690デフォルトの名無しさん2015/03/12(木) 21:45:39.31ID:Df+IQ8v8
>>682 ha?
0691デフォルトの名無しさん2015/03/13(金) 13:42:50.38ID:aDdxIROK
2chの仕様変わったのか
0692デフォルトの名無しさん2015/03/13(金) 15:35:01.56ID:hdb/BW20
>>674 javascript ( ES6 アロー関数使用 )

var i = 0, xs = ""
var alt = (l, r) => () => {
 var i2 = i
 return l() || (i = i2, r())
}
var many = p => () => {
 var i2 = i
 return (!p()) ? (i = i2, true) : many(p)()
}
var such = pred => () => (i < xs.length && pred(xs.charAt(i)) && (i++ , true))
var sym = s => () => (xs.indexOf(s, i) === i) && (i += s.length, true)
var join = (l, r) => () => (l() && r())
var many1 = p => join(p, many(p))
var between = (open, close, p) => join(join(sym(open), p), sym(close))

var text = many1(such(c => c !== "<" && c !== ">" && c !== "/"))
var b = between("<b>", "</b>", many(text))
var a = between("<a>", "</a>", many(alt(b, text)))
var data = many1(alt(alt(a, b), text))
var check = src => (xs = src, i = 0, console.log(data() && i === src.length ? 1 : 0))

check("<a>ruby<b>php</b>python</a><a><b></b></a><a></a>") // 1
check("<a>ruby<b>php</b>python</a><a></b></a><a></a>") // 0
check("<a>ruby<b>php</b>python</a><a><b></a><a></a>") // 0
check("<a>ruby<b>php</b>python</a><a><b></b></a><a>") // 0
check("vvvc<a>ruby<b>php</b>python</a><a><b></b></a><a></a>") // 1
0693デフォルトの名無しさん2015/03/13(金) 17:02:03.04ID:tCCzgFOI
パーサコンビネータってやつか。
0694デフォルトの名無しさん2015/03/13(金) 20:22:12.41ID:5+Y+ymKY
Live2chテスト
0695デフォルトの名無しさん2015/03/14(土) 09:39:08.40ID:dIU+dE4A
問題:http://peace.2ch.net/test/read.cgi/tech/1408962564/546
0696デフォルトの名無しさん2015/03/14(土) 09:44:07.02ID:CKcS8mmw
超高速ワロタ
0697デフォルトの名無しさん2015/03/14(土) 11:09:27.22ID:N6U7sObe
#include <stdio.h>
int main(void){
puts("179424673");
return 0;
}

出来る限りってことはプリプロセスとか何らかの方法でここまで持ってくるのが最低ラインとして
より速くするためには・・・
0698デフォルトの名無しさん2015/03/14(土) 23:15:03.07ID:2sFyhS5H
コンパイルタイム演算しかなくね?
0699デフォルトの名無しさん2015/03/14(土) 23:29:49.53ID:VNpI/kxi
お使いの言語であるメソッドが3秒以内に処理を返すをユニットテストを書いて下さい
0700デフォルトの名無しさん2015/03/15(日) 00:02:38.43ID:yuUWBvb7
>>699
ttp://ideone.com/mDtxqP
C++。口で説明するんだったらこんな感じだが、もっといいユニットツールが存在すると思う。
俺メインユニットだから、デバッガ眺めながら手動修正してるが。
それがVCを手放せない理由でもある。
0701デフォルトの名無しさん2015/03/15(日) 00:08:13.25ID:WZYV6Z2R
>>699
君の日本語大丈夫?
0702デフォルトの名無しさん2015/03/15(日) 00:52:45.82ID:hbQPfywq
>>700
どうでもいいけどassertな。
0703デフォルトの名無しさん2015/03/15(日) 00:55:46.53ID:6Edz2jsN
>>148 Java
http://ideone.com/llfj8w

>>202のコードを今更貼ってみるテスト
0704デフォルトの名無しさん2015/03/15(日) 01:10:28.42ID:yuUWBvb7
>>702
いつも迷うんだよ。どっちだっけなーって。
かき捨てだからうろ覚えでやった。反省はしていない。Orz
0705デフォルトの名無しさん2015/03/15(日) 01:34:02.06ID:yuUWBvb7
あー、間に合ったので修正しておいた。
0706デフォルトの名無しさん2015/03/15(日) 22:42:13.09ID:61SsT7gm
点A,Bと線分ABの同じ距離で交差する点C,Dの座標を求めてください
ちなみに自分まだわかってませんw

http://jsfiddle.net/sj78k3am/7/
0707デフォルトの名無しさん2015/03/16(月) 01:11:01.15ID:MBZ0xd5q
>>706
要するにABを底辺とする2つの正三角形の頂点を求めよってこと?

しかし酷い文章だなw
飛んだ先を見るまで何を言ってるのかまったく分からなかった。
07087062015/03/16(月) 09:35:55.30ID:8YwSKdrn
>>707
あーそうそうゴメン
文章下手でスマン(汗
0709デフォルトの名無しさん2015/03/16(月) 10:31:48.13ID:jlR7htby
atan2/sin/cos使う方法しか思いつかないから困る
0710デフォルトの名無しさん2015/03/16(月) 11:24:35.79ID:vTi+39xu
二次方程式とけばいいのやで
0711デフォルトの名無しさん2015/03/16(月) 11:29:32.70ID:jlR7htby
頭悪いからわからないんやでorz
0712デフォルトの名無しさん2015/03/16(月) 12:28:51.11ID:jlR7htby
var rad = Math.atan2(x2 - x1, y2 - y1);
var x3 = x1 + Math.sin(rad + 60 * (Math.PI / 180)) * r;
var y3 = y1 + Math.cos(rad + 60 * (Math.PI / 180)) * r;
var x4 = x1 + Math.sin(rad - 60 * (Math.PI / 180)) * r;
var y4 = y1 + Math.cos(rad - 60 * (Math.PI / 180)) * r;
drawCircle(x3, y3, 4, "#f00");
drawCircle(x4, y4, 4, "#f00");

var sqrt3 = Math.sqrt(3);
var cx = (x1 + x2) / 2;
var cy = (y1 + y2) / 2;
var x5 = cx - (y2 - y1) / 2 * sqrt3;
var y5 = cy + (x2 - x1) / 2 * sqrt3;
var x6 = cx + (y2 - y1) / 2 * sqrt3;
var y6 = cy - (x2 - x1) / 2 * sqrt3;
drawCircle(x5, y5, 2, "#0f0");
drawCircle(x6, y6, 2, "#0f0");

うん、あたまわるい
07137062015/03/16(月) 12:36:47.60ID:8YwSKdrn
あ、いや、思いつかない私より全然いいです(汗
ちなみに春休みの宿題ではありませんので

forkを押してもらえると別バージョンとして追記可能ですよ
勿論他の言語で解のみの表示も全然ありです
0714デフォルトの名無しさん2015/03/16(月) 15:45:09.60ID:gjop/0w3
pi/3 と -pi/3 回せば良い
0715デフォルトの名無しさん2015/03/16(月) 16:36:14.13ID:zcXVR0aC
http://jsfiddle.net/c6jbo6w5/3/
>>712の方法ってこうか?
三角関数で回す方法しかわからなかった。
0716デフォルトの名無しさん2015/03/16(月) 16:40:55.01ID:zcXVR0aC
C++でGUIはきついのでこのサービスいいなー。
デバッグ大変だけど、文字表示できるから根性でデバッグするしかないな。LOL
0717デフォルトの名無しさん2015/03/16(月) 18:04:00.65ID:jlR7htby
>>712の下段を解りやすいように書こうとしたが変わらんね
http://jsfiddle.net/04tqbabk/2/
0718デフォルトの名無しさん2015/03/16(月) 20:27:03.04ID:VGc0qM86
if( 階.在( "D:/temp/" ) == 否 ) 階.作( "D:/temp/" );

なんかいまいちだな
0719デフォルトの名無しさん2015/03/16(月) 20:51:19.74ID:etHn2x+s
お題:
UCS4コードをutf-8に変換するプログラムを及びその逆関数を書け。


(今、必要があって書いてるところ)
0720デフォルトの名無しさん2015/03/16(月) 21:15:34.37ID:zcXVR0aC
VCだとめんどい。UCS4ってASCIIのレンジだよね。
GCCあたりだと、u8'a'ってやればウニコードなるはずなんだけど。
それをMapあたりに食わせてやれば変換自体は楽なんだけど、プラットフォームに備わってないのでパス。
それにそれは本来標準ライブラリとかに入ってるべきだろう。
0721デフォルトの名無しさん2015/03/17(火) 01:01:40.04ID:02ciAWXG
>719
C++
http://ideone.com/6N1vAB
0722デフォルトの名無しさん2015/03/17(火) 15:33:30.34ID:+ROms8Zy
>>721
すまん、お題の書き方が曖昧だった。
単に文字コードが与えられたらそれをUTF-8の2文字や3文字に変換するという
のが題意だった。申し訳ない。
0723デフォルトの名無しさん2015/03/17(火) 15:42:05.31ID:+ROms8Zy
>>719
C
https://ideone.com/59YnQF
5バイト、6バイトの場合は省略。
片方向のみ。とりあえず。
GCCのライブラリにあるんかいなぁ?
0724デフォルトの名無しさん2015/03/17(火) 16:00:48.60ID:02ciAWXG
>722
そうしてるんだけど・・・
テストコードの箇所変えたよ
出力のところ見てくれ
http://ideone.com/mICUp4
0725デフォルトの名無しさん2015/03/17(火) 16:09:14.67ID:02ciAWXG
>>723
で出題者のレベルを察したのでこれ以上は言わない
0726デフォルトの名無しさん2015/03/17(火) 16:34:35.00ID:+ROms8Zy
まあ、そういうなよ。言語処理系をUnicode対応にするのに
不慣れなCで四苦八苦している。
Windowsではそもそもコンソールがunicode向きではないので
苦労している。
0727デフォルトの名無しさん2015/03/17(火) 16:37:46.97ID:bib3wHS8
C++
http://ideone.com/4ALTDl

標準ライブラリで楽勝・・・のはずだがideoneではヘッダが読み込めない
0728デフォルトの名無しさん2015/03/17(火) 16:39:13.61ID:+ROms8Zy
一応、動いたのでC++のコードを参考に洗練させるよ。
0729デフォルトの名無しさん2015/03/17(火) 17:08:47.77ID:02ciAWXG
>>728
コードの質とかじゃなくideoneでCのコードなのにJavaで張ってる所とかその関数の使ったサンプルすら書いてないのがね
あと実用にするなら環境が許せばcodecvt使った方がいいよ
0730デフォルトの名無しさん2015/03/17(火) 17:14:59.98ID:+ROms8Zy
ああ、そういうことか。
普段、超マイナー言語しか使わないのでideoneでまともに動かないんだ。
ライブラリを探すより自分で書いた方が早いかもと思ったもので。
codecvtか。
0731デフォルトの名無しさん2015/03/17(火) 22:37:44.09ID:HmgYB+Xw
>>684
可変長バッファを固定長にしたらちょっとは早くなるのかなぁ
07327062015/03/18(水) 12:57:28.16ID:KRBoHZKS
回答してくださった方々どうも、自分ももう少し
計算幾何の事勉強してみます。

http://jsfiddle.net/6pb0mqqp/
こういうのはpaper.jsとか使えば早いんだろうけど
それでは勉強になりませんよね(汗
0733デフォルトの名無しさん2015/03/20(金) 11:11:34.09ID:K1QvfZng
お題:辺の長さが整数の長方形がある。長辺の長さは短辺の長さより6大きい。
この長方形の面積が与えられたとき長辺の長さ求める。
0734デフォルトの名無しさん2015/03/20(金) 11:20:26.42ID:wFOg5cKF
整数ってことはループして1からあたるのが早いな
0735デフォルトの名無しさん2015/03/20(金) 12:25:08.17ID:/igQYEhI
l(l-6) = (l-3)^2 + 9 = S

∴l = √(S -9) + 3
0736デフォルトの名無しさん2015/03/20(金) 12:29:30.75ID:/igQYEhI
あ、符号が違うなw
0737デフォルトの名無しさん2015/03/20(金) 12:35:36.56ID:4/NnHRAl
プログラムを使うまでもなかったね
0738デフォルトの名無しさん2015/03/21(土) 16:48:04.78ID:qCyHbsLB
>>731
sortで遅いのならawkを使えば
0739デフォルトの名無しさん2015/03/22(日) 12:59:12.53ID:xanshObH
>>683 C++
http://ideone.com/sC1HyX
>>738
を受けてmapを使ってみた
0740デフォルトの名無しさん2015/03/22(日) 13:04:32.73ID:xanshObH
と思ったら仕様を満たしてなかった
07417062015/03/22(日) 13:12:12.11ID:+U+vfFwl
http://jsfiddle.net/foobarboo/dxtsfd7s/

管理が面倒なんでとりあえず垢作った。
そのうちタートルグラフィックやフラクタル、曲線の補間法とかも試してみよう
07427072015/03/22(日) 13:56:24.10ID:+U+vfFwl
すみません。>>707でしたw

2chの仕様変更の影響でSCの方からみてるから間違えたかな?
0743デフォルトの名無しさん2015/03/22(日) 13:57:26.62ID:xanshObH
>>739
あれ?sortしてから連続した行を出力するならこれでいいの?
0744デフォルトの名無しさん2015/03/22(日) 14:03:09.38ID:xanshObH
やっぱり色々だめでした。
0745デフォルトの名無しさん2015/03/22(日) 14:03:49.57ID:xPoW41or
>>742
どうでもいいけど706で合ってると思う。
だって>>707は私ですw
0746デフォルトの名無しさん2015/03/22(日) 14:06:52.60ID:+U+vfFwl
>>745
あ、本当だwやっぱりscで見てるからずれたのか
jimのおかげで色々面倒になった・・・
0747デフォルトの名無しさん2015/03/22(日) 14:16:01.17ID:t93Sz0z/
串使えばいいじゃない
0748デフォルトの名無しさん2015/03/22(日) 14:24:06.15ID:xanshObH
自信がないので>>683さんの答え合わせを待ってみる
0749デフォルトの名無しさん2015/03/24(火) 02:02:55.50ID:dFQCthj3
>>695 J
p:1e7-1
179424673
p:1e8-1
2038074743
p:1e9-1
|limit error
| p:1000000000-1
0750デフォルトの名無しさん2015/03/24(火) 19:29:13.99ID:1OPYZFvy
>>695 Squeak Smalltalk

(Integer primesUpTo: 180000000) at: 10000000 "=> 179424673 "

Core i7-4650U 1.7-2.3GHz で 7.5 秒。
0751デフォルトの名無しさん2015/03/24(火) 23:31:02.64ID:dFQCthj3
>>706 J
点を複素数で表してyってみた

f =: 3 : 0
e =. -: +/ y
e + (%: 3) * 0j1 * y - e
)


f 2j0 4j0
3j_1.73205 3j1.73205

f 1j1 5j5
6.4641j_0.464102 _0.464102j6.4641

f 5j_3 _2j1
4.9641j5.06218 _1.9641j_7.06218
0752デフォルトの名無しさん2015/03/25(水) 11:36:00.11ID:Z77MlZqb
>>706 Squeak Smalltalk

| fn |
fn := [:x :y | Float pi / 3 * #(1 -1) collect: [:theta | (y - x rotateBy: theta about: 0@0) + x]].

fn value: 2@0 value: 4@0.
"=> {3.0@ -1.732050807568877 . [email protected]} "

fn value: 1@1 value: 5@5.
"=> {6.464101615137755@ -0.464101615137754 . [email protected]}"

fn value: 5@ -3 value: -2@1.
"=> {[email protected] . -1.964101615137754@ -7.06217782649107} "
0753デフォルトの名無しさん2015/03/25(水) 12:09:43.81ID:Z77MlZqb
>>752 差し替え。orz

| fn |
fn := [:A :B | Float pi / 3 * #(1 -1) collect: [:theta | B rotateBy: theta about: A]].
0754デフォルトの名無しさん2015/03/25(水) 17:03:41.39ID:80U2ZB0Y
知ってのとおり表計算のセルを参照するときに"A"とか"AD"とか使われる。
アルファベットは全部で26文字。"Z"の次は"AA"となる。
0番目は無い。

"DBA"は何番目の列になるか?
125番目はどのような文字列になるか?
関数と逆関数を作って答えを出せ
0755デフォルトの名無しさん2015/03/25(水) 17:13:56.60ID:N4cEhh/y
基数変換ですか?
0756デフォルトの名無しさん2015/03/25(水) 17:36:48.93ID:6iAVibo4
ずいぶん前に書いたことあるわこれ
ゼロがないから単純な26進数じゃないんだよねw
0757デフォルトの名無しさん2015/03/25(水) 18:22:21.12ID:H06Hko84
26進計算でいいだろう。
A=0, B=1, …, Y=24, Z=25
として、
・文字→数値:変換後 +1
・数値→文字:数値-1後文字に
0758デフォルトの名無しさん2015/03/25(水) 18:23:32.71ID:H06Hko84
間違いた。
それじゃ AA = 1 になっちゃうん
0759デフォルトの名無しさん2015/03/25(水) 18:42:50.06ID:6iAVibo4
うん。
最下位桁だけ特別扱いする必要がある。
0760デフォルトの名無しさん2015/03/25(水) 19:12:14.12ID:vt8qdq9T
>>754 Squeak Smalltalk

| decode encode |
decode := [:code |
 (26 raisedTo: (0 to: code size - 1)) sum asInteger
 + (code reversed asByteArray - 65 polynomialEval: 26)
].

encode := [:N |
 | size M digits |
 size := 0.
 [N >= (M := 26 raisedTo: size)] whileTrue: [N := N - M. size := size + 1].
 digits := (N radix: 26) forceTo: size paddingStartWith: $0.
 ((digits asArray collect: #digitValue) + 65) asByteArray asString
].

decode value: 'A'. "=> 1 "
decode value: 'Z'. "=> 26 "
decode value: 'AA'. "=> 27 "
decode value: 'DBA'. "=> 2757 "

encode value: 2757. "=> 'DBA' "
encode value: 125. "=> 'DU' "
0761デフォルトの名無しさん2015/03/25(水) 22:59:35.52ID:ovi4DFcr
>>760
c++
でもお願いします。
0762デフォルトの名無しさん2015/03/25(水) 23:20:07.99ID:proRqoBt
お願いしますてw
0763デフォルトの名無しさん2015/03/26(木) 00:09:26.14ID:YojhVKRt
>>754 C
http://ideone.com/WlYyoS
0764デフォルトの名無しさん2015/03/26(木) 00:35:11.53ID:DVfty8jF
ZZZが復号できないよ〜。
なんでだよ〜。
難しいなぁ・・・。
0765デフォルトの名無しさん2015/03/26(木) 01:07:30.92ID:7QpaiPyE
>>754
>>761
http://peace.2ch.net/test/read.cgi/tech/1313183984/796
0766デフォルトの名無しさん2015/03/26(木) 01:23:17.33ID:YojhVKRt
>>764
ありゃ本当だ
>>763 sageます
0767デフォルトの名無しさん2015/03/26(木) 01:29:35.17ID:DVfty8jF
なんで1起点なんだよ。0起点にしてくれよ〜。(TT
境界線系のエラーがとれねー。
0768デフォルトの名無しさん2015/03/26(木) 01:56:14.08ID:DVfty8jF
>>754
ttp://ideone.com/MGjJTI
C++。4時間位涙目になりながら作った。賃金払ってくれ。
まぁ、冗談だが。超汚くなった。
もう触りたくない(TT
0769デフォルトの名無しさん2015/03/26(木) 02:14:36.15ID:YojhVKRt
>>754
http://ideone.com/LsH7Hf
0770デフォルトの名無しさん2015/03/26(木) 02:17:23.06ID:YojhVKRt
>>769 C
0771デフォルトの名無しさん2015/03/26(木) 02:46:29.24ID:wzg/LgHT
>>754 Ruby
http://ideone.com/PkArNw
0772デフォルトの名無しさん2015/03/26(木) 04:54:36.27ID:CAW+eRdC
>>754 Io
a2n := method(a,
n := 0
a foreach(v, n = n * 26 + v - 64)
n
)

n2a := method(n,
a := ""
while(n > 0,
a = ((n - 1) % 26 + 65) asCharacter .. a
n = ((n - 1) / 26) floor
)
a
)

Io> a2n("DBA")
==> 2757

Io> n2a(125)
==> DU
0773デフォルトの名無しさん2015/03/26(木) 04:59:01.57ID:xiBnTdtx
>>754 Java
http://ideone.com/SM0HXt
0774デフォルトの名無しさん2015/03/26(木) 09:30:07.00ID:qBGRNxEY
関係ないけどIdeoneのドメイン名見る度にイデオン連想してしまう俺はおっさんw
正に思考結果の集合体だわ
0775デフォルトの名無しさん2015/03/26(木) 13:36:12.89ID:fp05WbSk
普通でしょ。俺もイデオンて読んでる
0776デフォルトの名無しさん2015/03/26(木) 13:46:54.26ID:IJASSi0s
イデオンとは?

NHK海外ドラマ「ミステリアスアイランド」のギデオンを思いだしてけど、そういうのはオレだけだろうな。
0777デフォルトの名無しさん2015/03/26(木) 15:34:58.62ID:8HDliiWB
アイディーイーワン
0778デフォルトの名無しさん2015/03/26(木) 18:05:27.15ID:DVfty8jF
イデポン宮森発動編
0779デフォルトの名無しさん2015/03/27(金) 01:00:23.90ID:JGziY7id
>>754 C
>>773
http://ideone.com/hMHCR8
0780デフォルトの名無しさん2015/03/28(土) 14:14:49.76ID:XLghex9W
>>773さんや他の人のコードを読んでて思ったが、やはりシンプルなロジックには数学的な考えが必要なのかな
0781デフォルトの名無しさん2015/03/28(土) 15:23:44.47ID:ouLE6oGR
>>780
数学も役に立つけど、シンプルさのためには、計算モデルについて描いた、以下の本がおすすめ。

Concepts, Techniques, and Models of Computer Programming
「コンピュータプログラミングの概念・技法・モデル」
0782デフォルトの名無しさん2015/03/28(土) 15:57:51.36ID:XLghex9W
>>781
869ページってすごいボリュームですね。
羊数える代わりに読んでみようかな。ありがとう。
07837652015/03/28(土) 18:08:05.57ID:p+oUvV+T
>>768
負けた‥5時間だ、そんな時間間隔や意識がまったくないのは、なにか悪い病気なのかもしれない
0784デフォルトの名無しさん2015/03/28(土) 18:48:13.22ID:LEMMFsQ5
>>754
@Mathematica

http://ideone.com/XfiDpK
07857842015/03/28(土) 19:01:01.15ID:LEMMFsQ5
ドキュメントセンターで関数探しながら、15分で。

http://reference.wolfram.com/language/
0786デフォルトの名無しさん2015/03/28(土) 21:35:26.51ID:WrLMXSwN
>>783
それだけ集中してたんでしょ。よくあるさ。
>>784
単純変換なら30分でできたんだけど、そこからバグを二つも見つけてしまって泥沼・・・。Orz
0787デフォルトの名無しさん2015/03/29(日) 20:40:40.46ID:oTCwOtrh
>>754
C#
http://ideone.com/RswjZk
これで合ってる?
0788デフォルトの名無しさん2015/03/30(月) 01:26:13.82ID:+lKo0XBW
>>754 Octave
function n = a2n(a)
n = polyval([a - 64], 26);
end

function a = n2a(n)
a = "";
while n > 0
a = [mod(n - 1, 26) + 65, a];
n = fix((n - 1) / 26);
end
end

> a2n("DBA")
ans = 2757

> n2a(125)
ans = DU
0789デフォルトの名無しさん2015/03/30(月) 17:27:10.65ID:+lKo0XBW
>>754 Julia
function a2n(a)
n = 0
for i= 1:length(a)
n = n * 26 + int(a[i]) - 64
end
return n
end

function n2a(n)
a = ""
while n > 0
a = string(char((n - 1) % 26 + 65)) * a
n = div(n - 1, 26)
end
return a
end

julia> a2n("DAB")
2732

julia> n2a(125)
"DU"
0790デフォルトの名無しさん2015/03/30(月) 19:53:36.33ID:ijMma7CQ
このネタでゴルフするならString.succでRubyが強いのかな
0791デフォルトの名無しさん2015/03/30(月) 22:17:59.67ID:vDmNFgKG
小ネタをひとつ
お題:
10進法表示で4桁の自然数がある
その数の千の位の数を一の位にもってきた数は、もとの数の 3/4 倍に1を加えた数に等しいという
その数は?
0792デフォルトの名無しさん2015/03/30(月) 22:22:49.56ID:J389JLUs
お題:入力された分数を記録して昇順ソート後に出力。
例
 I> 1/2
 O> '1/2'
 I> 1/3
 O> '1/3' '1/2'
 I> 2/3
 O> '1/3' '1/2' '2/3'

次の条件は取捨選択自由です。

a. 帯分数(1 1/2等)の入出力に対応。
 I> 1 1/3
 O> '1 1/3'

b. 等しい値をグループ化して出力。
 O> '1/3' ('2/4' '1/2')

c. 仮分数(2/2, 3/2等)の入力を帯分数または整数に変換してから出力。
 I> 2/2
 O> '1'
 I> 3/2
 O> '1' '1 1/2'
 I> 4/2
 O> '1' '1 1/2' '2'
0793デフォルトの名無しさん2015/03/30(月) 22:29:54.67ID:AInhYm7h
>>754
Python3で。
ttps://paiza.io/projects/v-iMgi3NbBkA2ArPbHa_ww
0794デフォルトの名無しさん2015/03/30(月) 22:45:23.31ID:s5ciux35
>>791は存在するのか?
0795デフォルトの名無しさん2015/03/30(月) 22:51:21.85ID:gWRpw4Dc
>>791
ttp://ideone.com/4FpVad
C++。答えなかったんだけど、このコードあってるか?
返答求む。
0796デフォルトの名無しさん2015/03/30(月) 23:00:24.09ID:J389JLUs
>>792
条件c. に約分を追加します。
 I> 2/8
 O> '1/4'
 I> 9/6
 O> '1/4' '1 1/2'
0797デフォルトの名無しさん2015/03/30(月) 23:06:54.17ID:vDmNFgKG
>>795
>(i / 1000) == static_cast<std::uint64_t> ...

問題文が悪かったかな?
>その数の千の位の数を一の位にもってき
て元の一の位の数を十の位に、十の位の数を百の位に、百の位の数を千の位にシフトさせた数は

とさせてほしい。
0798デフォルトの名無しさん2015/03/30(月) 23:12:55.19ID:yIGGY1Mf
>>797
プログラマならローテイトって言ってよそういうのw
0799デフォルトの名無しさん2015/03/30(月) 23:13:29.93ID:s5ciux35
>>797 Java
http://ideone.com/IPfN3S
0800デフォルトの名無しさん2015/03/30(月) 23:44:44.71ID:+lKo0XBW
>>791 >>797 Julia
julia> for i=1000:9999 if i*3/4+1==i%1000*10+div(i,1000) println(i)end end
4324
0801デフォルトの名無しさん2015/03/31(火) 00:08:17.67ID:mOW7a5j3
>>792
ttp://ideone.com/K4Dcri
C++。>>796はやってない。C++は最大公約数を出すのの面倒なんだよ。
GCDがライブラリに入ったらやってくれ。
0802デフォルトの名無しさん2015/03/31(火) 00:20:19.39ID:9BMi81XW
>>792 Java
http://ideone.com/T9g2Ea

>>801
下はjavaだが
> int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
0803デフォルトの名無しさん2015/03/31(火) 00:23:22.44ID:mOW7a5j3
>>791 >>797
ttp://ideone.com/gQvg47
C++。これであってるかな?
0804デフォルトの名無しさん2015/03/31(火) 00:26:02.58ID:9BMi81XW
>>801
てかソートするところ整数型の除算で切り捨てられてちゃんとソートできてないんじゃね?
0805デフォルトの名無しさん2015/03/31(火) 00:36:37.63ID:mOW7a5j3
>>792
ttp://ideone.com/DIYIrK
C++。>>802のGCDパクって実装した。適当に実装したので間違ってるかも。
グルーピングはめんどくさいのでやってない。
std::map<double,std::vector<Data>>とかやればできるけど、今日は無理。
0806デフォルトの名無しさん2015/03/31(火) 00:39:40.71ID:mOW7a5j3
>>804
言われてからシレっと直しておいた。Orz
0807デフォルトの名無しさん2015/03/31(火) 02:11:11.14ID:XpnSzaSp
>>792
CLISPで。
(let ((x
'()))
(loop
(print `i>)
(let((w
(eval(read))))
(setq x(cons w x)))
(print `o>)
(print (sort x #'<) )
))

実行例:
I> 1/2
(1/2)
I> 4/1
(1/2 4)
I> 2/2
(1/2 1 4)
I> 6/4
(1/2 1 3/2 4)
I> 1
(1/2 1 1 3/2 4)
I> 3 4/5
(1/2 1 1 3/2 3 4)
(1/2 4/5 1 1 3/2 3 4)
0808デフォルトの名無しさん2015/03/31(火) 07:55:54.52ID:j73ohXrG
>>792 Io
f:=method(x,x sortBy(block(a,b,doString(a)<doString(b))))

Io> f(list("1/2","1/3","2/3"))
==> list("1/3", "1/2", "2/3")
0809デフォルトの名無しさん2015/03/31(火) 09:10:17.34ID:GGQhc+lc
>>792 C
http://ideone.com/3ghkXS
無駄に長くてすんません
0810デフォルトの名無しさん2015/03/31(火) 12:40:09.41ID:mOW7a5j3
>>792
ttp://ideone.com/CNRO9H
C++。グルーピング対応?
>>802には、GCDありがとう。っていうの忘れてた。ありがとう。
0811デフォルトの名無しさん2015/03/31(火) 12:57:53.96ID:PVjNVX85
>>792 Squeak Smalltalk

| dict sorted input |
dict := Dictionary new.
sorted := [(dict associations sortBy: [:a :b | a key < b key]) asArray
 collect: [:assoc | assoc value size = 1
  ifTrue: [assoc value anyOne] ifFalse: [assoc value asArray]]].
[(input := FillInTheBlank request: sorted value asString) notEmpty] whileTrue: [
 | elems value |
 elems := input findTokens: ' /'.
 value := elems size caseOf: {
  [1]->[elems first asInteger].
  [2]->[elems first asInteger / elems last].
  [3]->[elems second asInteger / elems third + elems first]}.
 value >= 1 ifTrue: [
  true caseOf: {
   [value isInteger]->[input := value asString].
   [value isFraction]->[
    input := value truncated asString, ' ',
     (value - value truncated) asString unparenthetically]}].
 (dict at: value ifAbsentPut: Set new) add: input].
^sorted value

入力 => 出力
1/2 => #('1/2')
1/3 => #('1/3' '1/2')
2/3 => #('1/3' '1/2' '2/3')
1 1/3 => #('1/3' '1/2' '2/3' '1 1/3')
2/4 => #('1/3' #('1/2' '2/4') '2/3' '1 1/3')
2/2 => #('1/3' #('1/2' '2/4') '2/3' '1' '1 1/3')
3/2 => #('1/3' #('1/2' '2/4') '2/3' '1' '1 1/3' '1 1/2')
4/2 => #('1/3' #('1/2' '2/4') '2/3' '1' '1 1/3' '1 1/2' '2')
0812デフォルトの名無しさん2015/03/31(火) 17:56:37.72ID:86+ozzAp
このスレ見てると可読性ってものに価値を置かないプログラマが
いまだにいかに多いか痛感するなw
0813デフォルトの名無しさん2015/03/31(火) 17:57:23.93ID:mOW7a5j3
どこらへん?
知らない言語だったら可読性もなんもないぞ。
0814デフォルトの名無しさん2015/03/31(火) 18:52:51.97ID:jIkoyFTK
どうすれば可読性があがるのだろう?
0815デフォルトの名無しさん2015/03/31(火) 18:59:19.46ID:mOW7a5j3
俺は変数の多重使用はしないようにしてる。
意味が変わったら新しく宣言してる。変数名適当だけど。
あと、変数は減らすようにしてる。
それと、基本的に細かいことはデータ構造にお任せしてるかな。
クイックソート手で書けない人だからね俺。
0816デフォルトの名無しさん2015/03/31(火) 19:07:48.07ID:XpnSzaSp
>>812
可読性のあるものに書き換えて見せなよ。
それも出来ないでイチャモンだけじゃあるまい?
0817デフォルトの名無しさん2015/03/31(火) 19:49:51.45ID:Ap5TJl/7
>>812
まあ、こんな短いソースだとなあ
可読性意識しなくても十分に可読的なものが多いような
それをいちいち時間をかけて構造化的記述とか変数名の一意性を確保とかやるとメンドイし、記述量が増えてかえって読むのに時間がかかる!って場合もあるぞ
記述を構造化する訓練目的なら別だが、ここはそういうスレじゃないし

というわけで、リーダビリティというのは実践上は「固定的な記述規則の適用」とはちょいちがうよ
0818デフォルトの名無しさん2015/03/31(火) 20:02:37.79ID:/tmN4sxh
AA職人的なものを求めてるんじゃないの?
0819デフォルトの名無しさん2015/03/31(火) 20:04:11.08ID:Ap5TJl/7
次の例なんか、読む人の力量によって、読みやすいか読みにくいかが別れる例だな

(progn
(setq x 10) (setq y 20) ;環境
(defmacro /m (x y)
(list '+ x 'x y 'y)) ;マクロ定義
(/m (* 2 3 ) 1)) ;マクロ適用

ちなみに走らせてないけど結果は37のはず
ま、一般論から言えば変数の使い方はクソだけど
0820デフォルトの名無しさん2015/03/31(火) 20:06:54.10ID:Ap5TJl/7
>>819
誤 変数
正 変数名
0821デフォルトの名無しさん2015/03/31(火) 23:08:41.27ID:j73ohXrG
豆電球を点灯させたいとき私の場合、乾電池に手で線をおえてつないで
ああ点いた、で満足している気がする。
ちゃんとケースに入れてスイッチつけて商品名も付けないと嫌だとう人も
いるだろうけど。
0822デフォルトの名無しさん2015/04/01(水) 02:42:37.84ID:lJt3I89n
自分も動けばいい。動かすときにバグさえ出なければOK。
そのための施策もやってるはず。
0823デフォルトの名無しさん2015/04/01(水) 03:28:23.58ID:Oi1NEZSS
あわよくば商品名まで付けたい派だけどシンプルさを維持するのがむずかしい。
豆電球もシャンデリアもどっちも好きかな自分は。
0824デフォルトの名無しさん2015/04/01(水) 20:25:32.05ID:4GC0YTad
題意を満たすことのみを目的として
晒す前にわざわざそれ以外の部分を削ったりしてる
0825デフォルトの名無しさん2015/04/01(水) 21:19:06.50ID:uAmxK3gz
>>821
場合によって電球がつかないようなこと(>>822)をするのはマズいが
確実につく手順を踏んでいるなら良いんだよ
0826デフォルトの名無しさん2015/04/01(水) 21:58:41.27ID:+Gvnwt7L
何の話をしてるのか訳わからんが、

>確実につく手順を踏んでいるなら
だから誰がそれを保証するんだよw

可読性に無頓着なコーダーって自分の主観で十分だと思ってるんだろうね。
俺はそう思わないから、後から自分や他人が検証しやすくなるように可読性に気を使う。
0827デフォルトの名無しさん2015/04/01(水) 23:45:20.42ID:RZ2eoSfu
こんな独りよがりで終わるようなところで可読性とか考えたってしょうがないだろ
0828デフォルトの名無しさん2015/04/02(木) 00:01:50.70ID:gJpqUGiZ
>>826
あははははは
スレチ

俺はリーダビリティ講座を何年もしていたけれど、こんなスレでリーダビリティ云々述べる気はないな
こんな短く、そして、あくまでアルゴリズムアイデアを問題とするスレでリーダビリティ!!
あたまおかしいんじゃね?
0829デフォルトの名無しさん2015/04/02(木) 00:15:17.91ID:Rb/VTf7B
そういえばリーダビリティなお題ってのは出てないな
0830デフォルトの名無しさん2015/04/02(木) 06:58:53.24ID:mly0Vlsl
お題:以下の問題提起に対してリーダビリティを優先したコードを示せ、コードの実際の内容は適宜定めよ
http://peace.2ch.net/test/read.cgi/tech/1425092139/139,141
0831デフォルトの名無しさん2015/04/03(金) 00:06:55.82ID:4xe5j0Xk
>>830 C
ttps://www.ideone.com/qH01ND
0832片山博文MZ ◆T6xkBnTXz7B0 2015/04/03(金) 00:26:57.45ID:d2wNb10R
お題:n次元ベクトル空間VにおいてVの基底をなすn個のベクトルv_1,...,v_nが与えられているとき、
V上の二点をいくつかの連続した最短の線分で結べ。
ただし、線分はそれぞれ、基底をなすベクトルの一つと平行である。
0833デフォルトの名無しさん2015/04/03(金) 00:30:52.93ID:QvsW2vdT
プログラム以前に問題が何言ってんだこいつ状態
0834片山博文MZ ◆T6xkBnTXz7B0 2015/04/03(金) 00:54:31.98ID:d2wNb10R
ごめん。言い替える。

お題:平面上の異なる二点を結ぶ、二つの連続した最短の線分を求め、それらの始点と終点の組を出力せよ。
ただし、それぞれの線分は、与えられた2個の1次独立なベクトルv_1,v_2のいずれかと平行である。
0835デフォルトの名無しさん2015/04/03(金) 01:24:26.43ID:dleY0YhY
点Aからベクトルv_1と平行に線を伸ばす
点Bからベクトルv_2と平行に線を伸ばす
交差した場所を調べる

だけでいいんかね
0836デフォルトの名無しさん2015/04/03(金) 01:39:23.16ID:tvdSBltH
*「2個の1次独立なベクトルv_1,v_2」が平行な場合解なし
*「平面上の異なる二点を結ぶ」直線と「ベクトルv_1,v_2のいずれか」が平行な場合解が無限に存在する
0837デフォルトの名無しさん2015/04/03(金) 01:42:45.06ID:tvdSBltH
ああ1次独立だったな
まあいいか
0838デフォルトの名無しさん2015/04/03(金) 02:17:29.80ID:dsV57OoU
>>830
ttp://ideone.com/lTOnWX
多分C。こういうコードって読みやすいと思う?
C++は楽だなー。
0839デフォルトの名無しさん2015/04/03(金) 03:45:15.40ID:dsV57OoU
ちょ、誰か反応してよ。
Ping!Ping!!
0840デフォルトの名無しさん2015/04/03(金) 04:41:45.67ID:KTkPgi8n
>>838
見やすいけど、個人的に
・構造体 Memory を扱う関数だから Memory_XXXX(); みたいな名前にしてほしい
・ConstructMemory(); は Memoryをコピーで返すのではなく、他の関数同様
  bool ConstructMemory(Memory *M, size_t Length, size_t ElementSize);
 のようにMemory構造体へのポインタを渡した方が見やすい
・main()でM.Memoryにアクセスするつもりなら、IsMemoryNull(); 必要?

ちなみにMemory構造体を文字列(char *)だけにしか使わないなら良いけど、
汎用で使いたいなら、要素elementのために確保されている数 Lengthの他に、
データとして有効なelement数もメンバにあった方がいいと思う。というか必要
0841デフォルトの名無しさん2015/04/03(金) 05:09:14.67ID:dsV57OoU
>>840
こういう感じが読みやすいのかな。
型にはまってて自分はあんまり好きじゃないんだけど。
エレメント数がlengthで全体サイズ取りたいときは、Length*ESizeする。
IsMemoryNullはまぁ、無いよりまし程度。
ConstructMemoryがコピーを返すのは、ポインタ渡しだと解放とか書かないといけないので面倒だった。
コピーでも速度以外の副作用ってほぼないからこれがベターだと思っている。
命名規則は、ムーブ->コンテキストの感じで書いている。これは癖なので何とも。
まぁ、インテリセンスには乗りにくいかもね。

まぁ、反論ばっかしててもしょうがないので、ちょっと考えてみる。
ご意見ありがとう。
0842デフォルトの名無しさん2015/04/03(金) 05:26:33.71ID:+nPn+M4W
>>840
うわぁぁぁぁ!

やっぱり精神病だろ
「僕の意味の感性にあう規則が宇宙の普遍なんだもん」
0843デフォルトの名無しさん2015/04/03(金) 05:28:19.32ID:+nPn+M4W
この精神病のせいでスレが汚れる汚れる
何にファシズムやってんだ、この馬鹿
0844デフォルトの名無しさん2015/04/03(金) 05:37:48.51ID:+nPn+M4W
>>840
この阿呆のリーダビリティとは単に変数の命名規則を指しているのか!
構文の記述スタイルと制御記述こそがリーダビリティの核だろうに。
一意的に意味をとりうる名前にしか言及してないんじゃないか!!
まるでアホ学生が
「英語力を上げるには使える単語を増やすことだ」
と言うに等しい物を感じるな

全く、精神病はメンヘルスレで語ってろよ。長年リーダビリティをうるさく言ってきた俺だが、こんなリーダビリティ自体が自己目的化している主張は初めて見た
誰が従うか、ファシズム野郎
どあほ
0845デフォルトの名無しさん2015/04/03(金) 05:55:12.53ID:dsV57OoU
>>842-844
貴方のコードに期待します。
0846デフォルトの名無しさん2015/04/03(金) 06:47:45.43ID:ZtmCnQSu
だからあ、こんなスレで書くような短いコードでは
他者にとっての可読性や、バグ予防のためや 、今後の拡張性やデバックのしやすさためのリーダビリティ確保なんていちいちするかい
言語コミュニティーで一般的なリーダビリティのための方策というモノもあるが、結構狭い集団、乃至、個人における定形的なスタイルによってリーダビリティを確保している場合も多い。
上の精神病は自分のそれの感覚を普遍化してるんだな。
その結果、このスレを見ているとリーダビリティを意識していない人が多いことがわかるなんてたわごとからこの話題は始まった。

たかがこんなスレのソース、つまり、超短いソースを見て
「リーダビリティを意識していない人が多い」
ということがどれだけお馬鹿な発言か考えたほうが良い
ソースにリーダビリティのための工夫が見られないといことと、ソースを書いた人間にリーダビリティ意識がないということは別だ。馬鹿または
精神病はそこが区別てできない。
そもそも俺が見る限り短いソースのなかでも、各人、リーダビリティを意識した書き方してるよ
この精神病のバカがいってるのは
何度も書いたが名前の命名基準だけだろ
それで可読性だあ?
精神病!としか言いようがない
0847デフォルトの名無しさん2015/04/03(金) 06:53:31.95ID:dsV57OoU
まぁ確かに、この規模では判断は難しいわな。
ふーむ。
0848デフォルトの名無しさん2015/04/03(金) 06:53:31.95ID:rSWPypFh
>>838
1. あまり優れたインターフェースとはいえない calloc() の呼び出し方法を、踏襲するはどうかね?
calloc(n, sizeof(char)) とするんだったら、sizeof char を隠蔽したもの
というか、なんのための M.ESize なんだ??

2. main() でも直に M.Memory を触りまくるのか?なんか大事なところを外に触らせるとか大丈夫か?
言語的に隠蔽できなくても作法として外からべたべたやるのは気持ち悪い、というかそんなことを自ら実践とは安全か?
strcat() もサブ関数に持ってきたほうがいいのでは?

3. >>830 は、もっともっと文字列をべたべた張ったときでも main() の記述をかるくしたいんだと思うよ
>>830 は一回しか追加貼り付けしていないにもかかわらず、main() が重過ぎる
0849デフォルトの名無しさん2015/04/03(金) 06:57:42.11ID:rSWPypFh
>>846
いやいや「リーダビリティ」を意識させたときに、微妙にかわる何かをみたかったんですよ、多分
>>830 はメモリー(リ)アロケートという泥臭い部分だから、リーダビリティと絡むとわりと面白い
それに >>830 はリーダビリティもさることあがら、エラー処理の記述も重要
0850デフォルトの名無しさん2015/04/03(金) 07:08:18.39ID:dsV57OoU
>>848
1、Memory構造体は別にCharのために設計したわけではないです。Callocは個人的には好きですよ。
2、まぁ、そこはもうちょっと真面目に関数増やすべきでしたね。
3、AppendStirng書くべきでしたかね。メモリのインタフェース書いたら力尽きちゃった面もあって微妙に後悔してます。

AppendString関数書けば5行位圧縮できるかなー??
表示関数も結構場所食うんだよなぁ。
うーん。マダマダ。

余裕があったらサンプル書いてください。お願いします。
0851デフォルトの名無しさん2015/04/03(金) 07:19:47.05ID:dsV57OoU
今日は寝ます。なんかあったら書いておいてください。
0852デフォルトの名無しさん2015/04/03(金) 07:49:55.25ID:dsV57OoU
>>830 >>838
ttp://ideone.com/Nbn7ND
寝る前に思い付いた分だけ修正。
オヤスミ。
0853デフォルトの名無しさん2015/04/03(金) 12:19:50.56ID:XJDjNk3c
>>846
こういうスレだからこそ可読的に書こうよ。
他人の考えたアルゴリズムを理解するだけでもやっかいなのに
その上コードそれ自体が暗号みたいだったらわざわざ他人に見せる意味が半減だ。

ちなみに俺が最近ここにポストしたコードは>>787

一時間ぐらいで書いて書きっぱなしのコードだから当然突っ込みどころはあるが、
それでも読めば誰でも何をやってるのか分かるだろうと自分で思える程度には
命名や機能分割には気を使って書いてる。
0854デフォルトの名無しさん2015/04/03(金) 13:06:09.01ID:/gPIw7xI
文字リテラルに[helowrdHELOWRD ]の文字を使わずに Hello Worldを表示するプログラムを書きなさい
0855Lv22015/04/03(金) 13:06:43.13ID:/gPIw7xI
文字リテラルに[helowrdHELOWRD 0123456789]の文字を使わずに Hello Worldを表示するプログラムを書きなさい
0856デフォルトの名無しさん2015/04/03(金) 14:21:59.14ID:qCJXkSXO
>>855
Python3で。
print(''.join(list(map(lambda x: chr(ord(x) - 2), "Jgnnq¥"Yqtnf"))))
0857デフォルトの名無しさん2015/04/03(金) 16:14:50.45ID:dleY0YhY
>>854,855
http://ideone.com/TkRmSz
0858デフォルトの名無しさん2015/04/03(金) 17:14:32.27ID:0EmLzw+t
>>855
以前Common Lispで書いたのがあったけど文字列に R を含んでた
http://ideone.com/JK0OGo
同じネタをRubyで
http://ideone.com/jgmtzd
0859デフォルトの名無しさん2015/04/03(金) 17:19:09.68ID:2J3LeOys
>>855 C
#include <stdio.h>
struct table {
char pad0[32], _, pad1[32];
char A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, pad2[6];
char a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
};
int main() {
struct table table;
#define p(c) putchar((void *)&amp;table.c - (void *)&amp;table)
p(H);p(e);p(l);p(l);p(o);p(_);p(W);p(o);p(r);p(l);p(d);
#undef p
return 0;
}
0860デフォルトの名無しさん2015/04/03(金) 17:53:47.73ID:dsV57OoU
>>855
ttp://ideone.com/SXl0o0
C++。あんまり面白い感じに書けなかった。
文字列リテラル使ってないからいいよね。
0861デフォルトの名無しさん2015/04/03(金) 18:25:35.70ID:rSWPypFh
>>859
はじめ、A, B, C, ..., a, b, c に数値をいれるのかと思ったら、アドレス計算なんですね‥、メンバ変数って順序は保障されているのですか?
0862デフォルトの名無しさん2015/04/03(金) 18:34:14.97ID:KTkPgi8n
>>838
・型のMemoryとメンバのMemoryがまぎらわしい

>>841
> 型にはまってて自分はあんまり好きじゃないんだけど。
え?
> エレメント数がlengthで全体サイズ取りたいときは、Length*ESizeする。
Memory構造体は文字列に特化してないんでしょ?(void *Memory;としているのは)
確保したメモリ(レコード)は増える一方なんでしょ?
だったら、記憶されている有効なレコード(要素)が減った時にどうするの?って言ってるの。
Lengthは「確保されたレコード数」。「有効なレコード数」
> IsMemoryNullはまぁ、無いよりまし程度。
一貫性をそこねる。
> ConstructMemoryがコピーを返すのは、ポインタ渡しだと解放とか書かないといけないので面倒だった。
それはお好きなように。
> まぁ、反論ばっかしててもしょうがないので、ちょっと考えてみる。
反論と言える論が無い。内容にではなく言われたことそのものに脊髄反射して
口答えしているだけの姿勢なので喧嘩売っていると客観的に判断できる。

断言する。このままだとあなたはいずれ、見通しが悪く何書いてるかすぐに分からない
自分の書いたコードに自ら苦しみ自滅するか、他の人に多大な迷惑をかけて職場を追い出される。
0863デフォルトの名無しさん2015/04/03(金) 18:39:11.38ID:roc5cKjr
>>862
揚げ足取るようだけど、真面目な話あんたのその文章もかなり見通し悪いよw
こういう文章書く人って、他人の目からこれがどう見えるだろうかとか考えないのかね。

断言するけど、文書を書くときに可読性に留意できないような人が
コードを書く時に限って可読性に気を使うとかありえないと思う。
0864デフォルトの名無しさん2015/04/03(金) 19:09:14.52ID:KTkPgi8n
>>863
あなたが読んでも分からんだろうさ。相手の眼の付け所(思考回路)に合わせたつもりだからw

>>841は、Cでの命名は意識して慎重確実にするクセを付けたほうがいい。後で後悔する。
C#とかIDEやってるとメソッドやメンバは最初からクラスに内包され整理整頓されてるし
インテリセンスで候補が出てきたりリファクタリングで途中からの名前変更も
簡単に出来るだろうけど。
0865デフォルトの名無しさん2015/04/03(金) 19:30:25.99ID:rSWPypFh
このスレに出入りしている人間は、リーダビリティに問題はないと思うんだけれども‥
0866デフォルトの名無しさん2015/04/03(金) 19:45:54.28ID:dleY0YhY
>>858
.join(" ") の" "は文字リテラルじゃなかと?
0867デフォルトの名無しさん2015/04/03(金) 19:52:04.38ID:AmSC88IG
>>866
ああ、空白もなんだ
見落としてました
0868デフォルトの名無しさん2015/04/03(金) 20:47:30.16ID:FV1oE0HB
>>865
同感
論外ムチャクチャでスパリゾートイタリアン状態のソースなんて見たことないな
ここで書かれるソースさえろくに読めない奴はセンスないだけどな
0869デフォルトの名無しさん2015/04/03(金) 21:28:56.94ID:dsV57OoU
>>862
・記憶されている有効なレコード(要素)が減った時にどうするの?
それはベクタクラスの仕事。メモリが保持する内容ではない。
0870デフォルトの名無しさん2015/04/04(土) 02:05:45.14ID:jQphjfpE
リーダビリティのお題は言語が限定されやすいね
回答も集まりにくいから出題が難しそう
0871デフォルトの名無しさん2015/04/04(土) 08:52:12.71ID:0mmWusUJ
>>855 C
http://ideone.com/RoxxA6
0872デフォルトの名無しさん2015/04/04(土) 10:11:38.00ID:jQphjfpE
>>871
なにこれすごい
0873デフォルトの名無しさん2015/04/04(土) 12:24:34.05ID:MqkaNLx+
>>855 whitespace
http://ideone.com/gTEoSj
0874デフォルトの名無しさん2015/04/04(土) 12:44:05.76ID:IRaJusQu
>>855 Python
http://ideone.com/wCXnYa
0875デフォルトの名無しさん2015/04/04(土) 15:13:50.87ID:knpZoffv
お題:
[a,b,c,d]の値は、[1,0,0,1]
または[0,1,0,0]
または[0,1,0,0]
となります。
このような場合、a=dである事を導き出してください。
0876デフォルトの名無しさん2015/04/04(土) 15:25:01.66ID:+0eWzzse
>>875
そんなの見たら分かるじゃないか(ワラ
0877デフォルトの名無しさん2015/04/04(土) 22:38:05.53ID:b1B36uxJ
>>875
初期値を巡回させないと無理?
0878デフォルトの名無しさん2015/04/04(土) 23:28:32.92ID:36j4uuIZ
>>875
無理です
お題としての体をなしてない
0879デフォルトの名無しさん2015/04/05(日) 00:16:17.15ID:WBZFTdNy
論理学を習ってない人にも分かる問題にすべきだったね。
0880デフォルトの名無しさん2015/04/05(日) 00:21:54.52ID:XqnpqZbw
>>871
ここは IOCCC の会場か?
0881デフォルトの名無しさん2015/04/05(日) 00:28:20.00ID:UrJ8NZb0
>>879
だね。
> または[0,1,0,0]
> または[0,1,0,0]
> となります。
なんて見たこtねーしw
0882デフォルトの名無しさん2015/04/05(日) 01:05:39.97ID:WB4f+k9O
>>875
これ、可読性のあるソースを書けって言っていた人の出題?
0883デフォルトの名無しさん2015/04/05(日) 01:11:18.20ID:CUClbhMi
>>882
自覚ないと思うけど、なんかその思考回路って典型的な2ch脳だねw
0884デフォルトの名無しさん2015/04/05(日) 01:51:12.88ID:CEtSuiik
>>883
出版多数の頭脳が思う意外な可能性への着眼だとは推測できない常識頭のレス乙です
0885デフォルトの名無しさん2015/04/05(日) 02:00:21.85ID:CEtSuiik
一応推論を書いておくか
前提
1.可読性を言い出した奴Aはかなり頭が悪く精神病の疑いも濃い
2. >>875の文章はおよそ可読性にかける笑止論外級。それを書いた人物をBとする

推論と期待
1. Aのお馬鹿さをBレベルだとすると
Aが自分なりに可読性を意識した文を書いても前提2の文になってしまうのではないか?本人としては明晰判明なる可読性をもつと思いながら(爆笑)

2. ここはAが前提2の問題を出したとすれば裸の大様状態の大笑いネタになる

結論
次のようにぶつけてみよう。反応が楽しみだ。わはははは
「>>875
これ、可読性のあるソースを書けって言っていた人の出題?」

おバカ相手のお遊びはこの辺にしておこう
0886デフォルトの名無しさん2015/04/05(日) 06:47:30.25ID:A+93Nbjb
>>855
C++
http://ideone.com/VlHSgV
0887デフォルトの名無しさん2015/04/05(日) 08:47:26.55ID:lc+vonxV
モールス来たかw
0888デフォルトの名無しさん2015/04/05(日) 12:24:21.98ID:XqnpqZbw
次はコガネムシとか踊る人間とかで頼む
0889デフォルトの名無しさん2015/04/05(日) 12:55:30.44ID:v29eRWzH
>>885
マジモンの重症の2ch脳だな。
ネタばらしをすると、可読性を言い出した人物 = 883 = 俺 ≠ 875

2ch脳の主な症状は異常な被害妄想かつその本人にその自覚が皆無なこと。
その被害妄想のタイプは、自分の感情を乱す者を「敵」とみなす幼稚な二元論(ネトウヨを見よ)。

真面目に一度精神科を受診した方がいいよ。
上記の通り2ch脳患者って自覚がないから聞かないだろうけどねw
0890デフォルトの名無しさん2015/04/05(日) 13:00:34.40ID:XqnpqZbw
QZに完敗した精神科の先生(注:患者も兼ねる)か‥
コード書けないあんたの来る場所じゃないんだよ‥
0891デフォルトの名無しさん2015/04/05(日) 13:03:47.44ID:SAQPlJ7x
>>889
わはははは
お前、自分で馬鹿だと宣言してどうする
どうせ著作の一冊もないヘタレだろ
ネタバラシもなにも
俺は可能性を述べただけなのを
おまえはそれを実然断定としてとらえたわけだ。
そこがお前が馬鹿であることの現れなんだぞ
ま、アホは背伸びしてバカ晒しし続けるのやめておけ
0892デフォルトの名無しさん2015/04/05(日) 14:37:08.03ID:XqnpqZbw
小ネタを一つ
お題:「笑わない数学者」(森博嗣)の「ビリヤード問題」

小手調べ
五つのビリヤードの玉を円形に並べる。
玉には自然数が書いてある(連続しているとは限らない)。
玉をいくつとってもいいが、隣通し連続したものしかとれないとする(離れているものはとれない)。
この条件でとった玉の数字を足し合わせて1から21までのすべての数ができるようにするには、ビリヤードの玉をどう並べればいいか

本題
小手調べ問題ではビリヤードの玉を五つとしたが、これをもっと大きな数に拡張せよ。
解が存在しない個数のうちもっとも小さいものはいくらか?
ビリヤードの玉の上限に限界はあるか?
0893デフォルトの名無しさん2015/04/05(日) 16:36:19.91ID:khPCncoE
>>892 Haskell
小手調べだけ
愚直に探索できる計算量で助かった
http://ideone.com/zB2bTl
0894デフォルトの名無しさん2015/04/06(月) 02:32:37.53ID:BV5HpsIR
1から21までっていうのがどう出てきたんだろうと思っていたが、
そもそも5つの玉を使った時の和のパターンが21しかないのね
これで本題の意味がわかった(解くとは言ってない)
0895デフォルトの名無しさん2015/04/07(火) 03:32:13.38ID:v4cb0BJk
>>892
ttp://ideone.com/z0Dpai
C++。コードはオリジナルだが、計算上限は>>893の結果を拝借した。
無かったら。R=21-5とかやってたと思う。計算量大爆発する。
ハスケール読めないからコードの盗用はしてません。
しかし、Atomで30秒かかるんだが、イデオンはえーな。まじはえーな。
コンビネーション関数ほすぃ。
0896デフォルトの名無しさん2015/04/07(火) 03:35:18.36ID:v4cb0BJk
違うわ。1分かかるわ。
30秒はデバッグする前の数だった。
0897デフォルトの名無しさん2015/04/07(火) 04:02:26.43ID:v4cb0BJk
ttp://ideone.com/IAcA0d
イデオンはえー。当初の予定だと4秒程度かかってたらしい。
手元のAtomだと、リリースで1分程度。イデオンすごいな。
そのうちスカイレークに変えようと思ってるので楽しみだ。
0898デフォルトの名無しさん2015/04/07(火) 08:47:55.93ID:tPergwIj
うちなんてCelM1.46GHzなんだが
0899デフォルトの名無しさん2015/04/07(火) 13:59:18.69ID:v4cb0BJk
ATOMより早いよかん。
0900山下雄介2015/04/07(火) 19:31:49.18ID:9WC2TS+N
1<=A<B<=100000000
AからBの範囲で2で割り切れて4で割り切れない数字の数を求めろ
0901デフォルトの名無しさん2015/04/07(火) 20:11:50.75ID:xdVzBNxU
>>900
算数レベルじゃねえかw
0902デフォルトの名無しさん2015/04/07(火) 20:31:18.24ID:tZbvQ49b
食指がw
0903デフォルトの名無しさん2015/04/07(火) 20:41:32.93ID:Dl73u8Fu
>>900
main() {
int n = 1;
int cnt = 0;
while (n++ <= 100000000)
(n mod 2) ? : (n mod 4)? : (++cnt);
}
0904山下雄介2015/04/07(火) 21:24:17.04ID:Qidfpn7c
ループとか文系だろ
ループなしで求めろ
0905デフォルトの名無しさん2015/04/07(火) 21:39:36.33ID:nVor6DE3
意味不明、再帰させろって?
0906デフォルトの名無しさん2015/04/07(火) 21:52:39.51ID:xdVzBNxU
4n + 2 ≦ 100000000
∴4n ≦ 99999998

つまりC系統の言語なら
99999998 / 4 + 1
を表示すればいいわけだ。
0907デフォルトの名無しさん2015/04/07(火) 21:58:37.43ID:Bh5rJVAm
100000000/2-100000000/4
0908デフォルトの名無しさん2015/04/07(火) 22:00:23.18ID:nVor6DE3
なるほど
0909デフォルトの名無しさん2015/04/07(火) 22:02:12.49ID:6eaaD3gY
>>900
>>906 でC
#include <stdio.h>

int main(void) {
printf("%d\n", 99999998 / 4 + 1);
return 0;
}
0910デフォルトの名無しさん2015/04/07(火) 22:40:16.19ID:v4cb0BJk
>>904
このひと何が面白いのかよくわからん。
0911山下雄介2015/04/07(火) 23:14:13.90ID:HApRr4Kb
>>909

間違ってないか
A=4
B=12
の場合は?
0912山下雄介2015/04/07(火) 23:17:09.12ID:HApRr4Kb
>>907
これは最小値が2決め打ちなので不正解
0913デフォルトの名無しさん2015/04/08(水) 00:20:25.58ID:UTc93s1G
(b >> 1) + (a - 1 >> 2) - (a - 1 >> 1) - (b >> 2)
もっときれいに書けそうな気がするけど頭動いてないなー
0914デフォルトの名無しさん2015/04/08(水) 00:26:20.22ID:aYgHbxwV
A<x<=Bとして、
(B/2-B/4)-(A/2-A/4)
0915デフォルトの名無しさん2015/04/08(水) 00:35:49.20ID:nkhJ1BcX
f a b = g b - g (a - 1)
 where g c = c `div` 2 - c `div` 4
0916デフォルトの名無しさん2015/04/08(水) 03:11:25.74ID:uHSZv0Q8
>>900
n = (B+2)/4 - (A+1)/4
0917デフォルトの名無しさん2015/04/08(水) 03:25:51.95ID:iBT50pBv
コードゴルフ問題なら最初から言ってくれ
0918デフォルトの名無しさん2015/04/08(水) 10:27:22.18ID:lPFAmU0v
さすがにループで一つずつ調べるのは論外だろ
0919デフォルトの名無しさん2015/04/10(金) 07:25:02.20ID:FkC0/7rt
>>897
イデオンのCPUはなんだろうね
Xeonか何かかな
そんな2chの鯖並のクラスタを使う必要もないのかも知れないけどあまり遅いと
誰も使わなくなるからジワジワと交換しているのかも

ちなみにgcc4.9.2 i7-4790K リリースビルドで 1663msと出た

イデオンは同時に他のプログラムを走らせたりしてコア数を超えるタスクが走ると
遅くなるかも知れないからな
0920デフォルトの名無しさん2015/04/10(金) 07:40:02.48ID:eGKlq6HE
>>919
おぉ。早いね。
IAシリーズじゃない可能性も微レ存。
ほんと、スカイレーク楽しみ。その数字を見てさらに!
0921デフォルトの名無しさん2015/04/10(金) 12:37:04.17ID:qDdK4mPi
>>892 Java
http://ideone.com/VK7JC8
0922デフォルトの名無しさん2015/04/10(金) 13:46:14.74ID:qDdK4mPi
>>892 Java
http://ideone.com/JjZwqQ
0923デフォルトの名無しさん2015/04/10(金) 17:30:14.93ID:MUrLbbsE
-march=haswell なんてオプションを付けるとAVX2命令使ってくるもんな
gccは相当すごいよ

まあVS2013にもあるんだけどあっちはC++11から掛け離れている感じがするんで
C++はほとんど使ってない
0924デフォルトの名無しさん2015/04/10(金) 20:36:16.10ID:eGKlq6HE
まぁ、この程度のコードで最適化カリカリやりたくないから、常識的な範囲で答えが出ればいいよ。
CPUのアップデートはワクワクするけど。
0925デフォルトの名無しさん2015/04/10(金) 21:04:21.45ID:TXzItjWq
何様のつもりだよそれw
0926デフォルトの名無しさん2015/04/10(金) 21:49:56.93ID:+Mv1j6DB
お題:英数字1文字が与えられたとき、その英数字以外の英数字1文字を返す。
0927デフォルトの名無しさん2015/04/10(金) 22:33:41.13ID:UrL4IJRt
意味わからなくてチンコ萎えましたぁ!
0928デフォルトの名無しさん2015/04/10(金) 22:40:23.78ID:9sVpyOtZ
>>922
N=7 のとき M=43 のはず
0929デフォルトの名無しさん2015/04/10(金) 23:00:06.69ID:qDdK4mPi
>>928
なにっ
どこがバグってるんだろうw

M43の1例わかります?
0930デフォルトの名無しさん2015/04/11(土) 00:14:45.66ID:hdU0XbS+
>>929
N=7, M=43 のとき解はない、はず
43= 7 * 6 + 1
0931デフォルトの名無しさん2015/04/11(土) 01:02:23.06ID:ZKq6/Wyw
>>926
ttp://ideone.com/pvvlMJ
C++。こんなんでいいのか?どっかの課題か?
0932デフォルトの名無しさん2015/04/11(土) 01:33:29.20ID:uXnaHaT6
>>926
perl5

my $c = 'a';
$c =~ tr/A-Za-z0-9/0-9A-Za-z/;
print $c;
0933デフォルトの名無しさん2015/04/11(土) 08:27:14.93ID:I+KljnAo
>>892
参考にしようとしたが基礎体力不足で歯が立たず。

魔円陣と有限幾何
math.tsukuba.ac.jp/~akiyama/papers/proc/MagicCircle.pdf
0934デフォルトの名無しさん2015/04/11(土) 08:47:27.91ID:ZKq6/Wyw
>>933
やっぱ俺に数学は無理だな。説明が頭に入ってこない。Orz
算数で頑張るよ。
0935デフォルトの名無しさん2015/04/11(土) 11:30:31.22ID:DdXkBTfC
>>926
@Mathematica

http://ideone.com/jQzm01
0936デフォルトの名無しさん2015/04/11(土) 21:19:40.28ID:oHFx420S
>>928,930
>>922はM=N*(N-1)+1を探しているのではなく、
総当たりで作れるMが一番大きい物を表示しているだけなのですw
0937デフォルトの名無しさん2015/04/12(日) 08:58:54.06ID:Vi6a17uJ
>>855 dc
87521618088882533792115812P
Hello World
0938デフォルトの名無しさん2015/04/12(日) 10:47:53.04ID:tR9Eg8dR
>>936
その場合、ダブりが発生していることにはなり、明示はされていないが >>892 の題意を満たさないのでは?
興味があるので、>>922 の結果を調べてみる
0939デフォルトの名無しさん2015/04/12(日) 11:10:08.25ID:5oPlUArh
初めて来た。こういうこと?

○1、○2、○3、・・・○N、のボールの両端はつながってるとして。

○1・・・[・・・]・・・○N、  [・・・]は取り除く部分として、上手く取り除いたらで残りの合計で1から21のすべての数字を作れるということか。
0940デフォルトの名無しさん2015/04/12(日) 11:21:04.76ID:5oPlUArh
{1、・・・、M}を作れる最小ボール個数を求める問題としていいか?
0941デフォルトの名無しさん2015/04/12(日) 11:29:49.63ID:5oPlUArh
>>940は>>892とは別問題だな。21は固定で最大のボール個数を求めるってことだな。
0942デフォルトの名無しさん2015/04/12(日) 11:41:13.69ID:5oPlUArh
ビリアード玉の数字は上限があるのか?
ないなら1から21までの玉を1つずつ含めれば、一つを除き全部取ることで全数字作れるよな。
0943デフォルトの名無しさん2015/04/12(日) 11:44:32.56ID:tR9Eg8dR
つまり各 M における意味のある最大玉数は決まっていて、そこからどれだけ削れるか、という問題だね
それはそれで面白いお題だ
0944デフォルトの名無しさん2015/04/12(日) 11:56:09.67ID:5oPlUArh
標準のビリヤードだと、1から15をそれぞれ最大1回使えるということか?
最大15球だと上手くやったら全パターン計算できそう。
0945デフォルトの名無しさん2015/04/12(日) 11:59:46.64ID:5IvJvm44
問題ぐらい読もうよ
0946デフォルトの名無しさん2015/04/12(日) 12:28:03.52ID:5oPlUArh
問題はビリヤードの玉を使うとあるが。
幾つまで数字があるか、一セットしか使えないとは書いてない。
玉が7個や8個や21個あるビリヤードもあるかもしれない。
何セットでも使用可なら1のみ選ぶのもある。
0947デフォルトの名無しさん2015/04/12(日) 14:08:51.74ID:Kyho4V/V
両方やればいいじゃない
0948デフォルトの名無しさん2015/04/12(日) 15:51:21.40ID:5IvJvm44
>>946
やっぱり日本語が読めないのか
何セットでも使っていいが、それだと解の条件を満たさないでしょ
0949デフォルトの名無しさん2015/04/12(日) 17:56:42.16ID:Vi6a17uJ
>>855 J
smoutput u: _12 + a. i. 'Tqxx{,c{~xp'
Hello World
0950デフォルトの名無しさん2015/04/12(日) 18:28:22.89ID:tR9Eg8dR
一所懸命に、回答例まで作ってみた >>574 に回答はつかないのね‥泣
0951デフォルトの名無しさん2015/04/12(日) 20:12:25.21ID:4fkLnYAO
キルヒホッフの法則?
0952デフォルトの名無しさん2015/04/12(日) 22:03:28.87ID:Nj+dqsUa
>>950 Ruby
http://ideone.com/1ZXHUe
0953デフォルトの名無しさん2015/04/13(月) 03:25:44.46ID:aCGk6LVm
>>892
お題が数学パズルっぽいので一般解があるのかもしれないと
しばらく考えてたけど降参><
力ずくで C++
http://ideone.com/hA1mFM
7個のとき解なし

合っているか自信ないけど以下:
8個で解96(鏡像回転除いて6)
9個で解72(鏡像回転除いて4)
10個は・・・計算に数時間かかりそう
0954デフォルトの名無しさん2015/04/13(月) 05:20:48.59ID:kgFkwbxk
コンビネーション自作とか猛者だな。いいなー。才能クレ。
0955デフォルトの名無しさん2015/04/13(月) 12:28:50.22ID:O30lCFiy
お題:1に3,5,7をそれぞれ0回以上掛けてできる数を小さいものから100個もとめる
0956デフォルトの名無しさん2015/04/13(月) 12:47:22.04ID:aN+rsjOQ
3 < 5 < 7 < 3^2
だから簡単そうだなw
0957デフォルトの名無しさん2015/04/13(月) 13:44:31.76ID:/Aa3hGZM
>>955 Haskell
これでええんか?
http://ideone.com/7oBoFa
0958デフォルトの名無しさん2015/04/13(月) 14:08:57.97ID:V7jnRRgk
>>955 Java
http://ideone.com/JR3YQB

>>957 こうじゃないかな?
0959デフォルトの名無しさん2015/04/13(月) 14:27:48.20ID:/Aa3hGZM
>>958
そういうことだろうとは思っていたが
こう書けばわかってもらえるだろうというやっつけな出題が嫌いだ
0960デフォルトの名無しさん2015/04/13(月) 14:38:20.40ID:V7jnRRgk
>>955 Java
http://ideone.com/dGoBER
出力をちょっと解りやすくした
0961デフォルトの名無しさん2015/04/13(月) 19:25:23.90ID:e1V4T9fq
>>955
bc
(3 * 5 * 7) ^ n % n とやりたかったのだけどタイムアウトしてしまうのでちょっとインチキ
http://ideone.com/0bwAQe
0962デフォルトの名無しさん2015/04/14(火) 03:57:13.20ID:JKwd4u3i
>>955
>>961 さんの方法を使って剰余で使う数を
少しずつ拡張するようにしてみた
C
http://ideone.com/93iWtW
0963デフォルトの名無しさん2015/04/14(火) 04:01:15.48ID:JKwd4u3i
お題: 金額はいくら?

箱に日本の硬貨が1枚以上入っています
中身は外からは見えませんが、硬貨のみの正確な重量は箱の重量がわかっている
ので知ることができます
硬貨の重量から箱の中の硬貨の総額を、取り得る値全て求めてください

各硬貨の1枚の重量は以下の通りです(実際の重量と同じです)
1円玉: 1.0g
5円玉: 3.7g
10円玉: 4.5g
50円玉: 4.0g
100円玉: 4.8g
500円玉: 7.0g

例:8.0gの場合 「8円(1円x8)、54円(50円+1円x4)、100円(50円x2)、501円(500円+1円)」
金額と同時に各コインの内訳も表示(オプション)

とりあえずサンプルとして 23.7g になる金額を求めてみてください

解答例(C言語 見づらいですが><):
http://ideone.com/g5rNf2
0964デフォルトの名無しさん2015/04/14(火) 05:31:50.99ID:8K9J72Mn
>>963 Java
http://ideone.com/v0OU66
結果が違うw
0965デフォルトの名無しさん2015/04/14(火) 06:13:02.26ID:JKwd4u3i
>>964
ほんとだ どこか間違ってたみたい
というわけで、正しい答えは >>964 さんのを参考にしてください
自分は出直してきますw
0966デフォルトの名無しさん2015/04/14(火) 07:45:02.78ID:JKwd4u3i
>>965
以下は>>963の解答例のループ途中のdouble型の数値を書きだしたもの

a1 = 3.700000, a2 = 3.700000 // 値
a1 = 98 99 99 99 99 99 0d 40 // double 8バイトのメモリイメージ
a2 = 9a 99 99 99 99 99 0d 40 // double 8バイトのメモリイメージ

リトルエンディアンなので最初のバイトが最下位ビットになるのですが、
このちょっとの誤差でうまくいかなかったのでした
double型の比較問題の好例みたいな解答例になってしまった

値を丸めても良いのですが、重量を10倍して整数で扱う形に書き直しました
http://ideone.com/vE7UPP

>>964と同じになって安心
0967デフォルトの名無しさん2015/04/14(火) 07:50:41.58ID:1aqhfbLs
ああJavaは浮動小数点演算を厳密にやるから(つまり遅い)そこで差が出たんだな
0968デフォルトの名無しさん2015/04/14(火) 08:29:45.21ID:8K9J72Mn
http://ideone.com/Tzsj8S
インタープリターで動いてる1回目は遅い
2回目以降はまあまあ早い

static boolean epsilonEquals(double a, double b, double epsilon)
{
 return Math.abs(a - b) <= epsilon;
}
こんな感じでdouble同士の比較は幅持たせてる
そのまま==で比較したら23.7だと結果21個だわ
0969デフォルトの名無しさん2015/04/14(火) 14:13:43.75ID:/iQm+CFv
>>963
なんとか綺麗に書けないか考えてみたがこういうのどうやっても泥臭いコードになっちゃうなw
0970デフォルトの名無しさん2015/04/14(火) 14:42:20.19ID:I9ozslwe
>>963 Haskell
http://ideone.com/6eAtB2
出力フォーマットは合わせてない
0971デフォルトの名無しさん2015/04/14(火) 16:21:37.62ID:lELr+SZG
ほら、これでも解いとけ
https://paiza.jp/poh/enshura-special
0972デフォルトの名無しさん2015/04/14(火) 16:34:59.75ID:5erMhlO7
>>971
非常に有名な問題でついに手抜きか?
なんの独自性もないだろ?
0973デフォルトの名無しさん2015/04/14(火) 17:54:46.45ID:JdejwVu9
いつのまに国際化したし
0974デフォルトの名無しさん2015/04/14(火) 19:15:05.79ID:8K9J72Mn
>>963 Java
http://ideone.com/p9TGWl
無駄に高速化したら酷いコードにw
0975デフォルトの名無しさん2015/04/14(火) 19:56:25.33ID:5erMhlO7
>>971は速度ではなく最短手順を競うところに新規性があるのか。
ルービックキューブの速どきは速度を競うが、無駄な動作が無い方が速いわけで、最短解法を追求してるとも言える。
それと同じようなことをプログラムでやると。
0976デフォルトの名無しさん2015/04/14(火) 20:17:07.43ID:j0yztYMW
もはや2次絵に何の反応もないとか
0977デフォルトの名無しさん2015/04/14(火) 20:52:34.57ID:sl3GRVWt
>>971
大分前に問題作成コードのお題がこのスレに出てたような。
解くのは無理だなぁ。
0978デフォルトの名無しさん2015/04/14(火) 20:54:52.66ID:sl3GRVWt
>>89か
0979デフォルトの名無しさん2015/04/15(水) 15:54:39.56ID:bGMPFrzy
>>963
ttp://ideone.com/JeUEIU
C++。>>968の関数パクらせてもらった。
この前のビリヤード計算と同じ要領で組んだ。
浮動小数演算はやっぱあんまり好きじゃないな。
はよ十進化少数入らんかな。
0980デフォルトの名無しさん2015/04/15(水) 21:04:21.47ID:pT7gC8kj
>>963
Python3で。
ttps://paiza.io/projects/sAc2clQwAQMEf9jWroBcXg
0981デフォルトの名無しさん2015/04/16(木) 02:08:17.97ID:Q9DdJM30
>>963
C#
http://ideone.com/gfMQ0l

IDEONEだとタイムアウトで全部答えを出さないうちに終了するな...
0982デフォルトの名無しさん2015/04/16(木) 05:27:44.10ID:axBf0iFy
そろそろ次スレの季節ですかね・・・。
0983デフォルトの名無しさん2015/04/16(木) 09:26:51.82ID:jLDb4Tyi
>>974
速いですね
ソート無しの探索部分だけで倍時間かかってたわ
200.0g -> 412ms
http://ideone.com/tA1zvD
0984デフォルトの名無しさん2015/04/16(木) 11:51:43.54ID:PkMvowGQ
1から7までの部屋がある
各部屋のつながりはこのようになっている
1-2
1-3
1-4
2-5
3-5
4-5
2-6
3-6
4-6
5-7
6-7

1から7までの最短経路を全て出力しなさい
0985デフォルトの名無しさん2015/04/16(木) 23:42:32.35ID:XyyhtFlt
>>982
プログラミングのお題スレ Part7
http://peace.2ch.net/test/read.cgi/tech/1429195275/

mail:sageteoff しわすれた
0986デフォルトの名無しさん2015/04/17(金) 12:46:06.42ID:3AKzHyjc
>>984 C
http://ideone.com/rFYGRr  な・・長い!
>>985 乙
0987デフォルトの名無しさん2015/04/17(金) 13:36:57.69ID:T4tyuJgr
レナとミナミの国際プログラミング選手権|paizaオンラインハッカソン5+


盤面を完成させた平均手数のランキングです。

1位 uwi   40.4 回 1.7 秒 Java

2位 orisano 41.6 回 0.85 秒 C++

3位 holydc 43.2 回 0.03 秒 C++

4位 y_mazun 43.2 回 0.75 秒 C++

5位 siman 50.0 回 0.63 秒 C++


https://paiza.jp/poh/enshura-special
0988デフォルトの名無しさん2015/04/17(金) 20:43:22.34ID:5nKDLfaK
>>963
>>981改良
http://ideone.com/Y6ygrm

このスレ学生が多いのかC#少ないな。
っていうか、俺もへっぽこプログラマだけどこのぐらい「読める」コードを書いて欲しい。
0989デフォルトの名無しさん2015/04/17(金) 20:52:05.48ID:AdcsK90A
  |=番兵|_
 (  ・ω・) < オツカレサマナノン
  〇={=}〇
  |::::::::::\
、、、し 、、、(((.@)fri sat sun vv..
0990デフォルトの名無しさん2015/04/17(金) 21:10:46.89ID:5axG3xuM
C系言語のコードはどれも読みにくく感じるが、俺がいいと思ったのは>>966
0991デフォルトの名無しさん2015/04/17(金) 23:05:18.52ID:3AKzHyjc
>>984 C++
http://ideone.com/plSjsF

>>986をC++に書き直してみたけどぜんぜん短くならなかった・・・
このスレのHaskellの簡潔なソースにひかれて勉強し始めたけど
なかなか思うようには作れないね エラーメッセージもちょっと難解
0992デフォルトの名無しさん2015/04/17(金) 23:57:48.49ID:QyW2mAP8
>>988
それじゃ、出力結果を合計金額でソートもできるようにしておいて。
0993デフォルトの名無しさん2015/04/18(土) 00:10:44.74ID:XxMX+y8Q
>>992
何がそれじゃかわからんけど、19行目を
foreach (var c in combinations.OrderBy(x => x.Value))
に変えるだけ。
0994デフォルトの名無しさん2015/04/18(土) 08:07:22.72ID:mvDinqtT
リーダビリティは強制しなくてもいいじゃない
それは短いコードの対極で、どちらも良いものだと思うけど
レス数が950を超えています。1000を超えると書き込みができなくなります。