1 名前:デフォルトの名無しさん mailto:sage [2014/01/24(金) 09:59:09.83 ] プログラミングのお題スレです。 前スレ プログラミングのお題スレ toro.2ch.net/test/read.cgi/tech/1357191974/ 出されたお題をコーディングして罵られるスレ toro.2ch.net/test/read.cgi/tech/1354393458/ 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 【ソースコードが長くなったら】 codepad.org/ ideone.com/ 宿題は宿題スレがあるのでそちらへ。
809 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 23:48:42.97 ID:5Qu+jOxY] >>794 ttp://ideone.com/do33Ns ほぼC。マジで死ぬよー。あってるのか?? Mod使いました。変換可能らしいので変換してください。 スナイプさえ作れば後は足し算で済むし、Notあれば逆変換も作れるし。 たぶん大丈夫だよね?表示関数は正確性のために組み込み演算子使ってます。 計算量落とすってどうやってやるんだぁ〜〜〜〜!!!!!死ぬ。
810 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 00:02:18.77 ID:BR1Tkgwo] modって余り? a - d * (a / d) で?
811 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 00:08:12.82 ID:1CfqcAEA] >>810 そう。余り。剰余。説明は>>798 かな? それであってると思うよ。
812 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 01:09:11.29 ID:1CfqcAEA] >>803 馬鹿ですが解けましたよ?(ニッコリ 多分。(がくがくぶるぶる。
813 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 19:28:15.71 ID:r7yQZe0C] >>517 模範解答の解説来たね paiza.hatenablog.com/
814 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 19:35:45.93 ID:BR1Tkgwo] >>813 > スタックを使うO(HW) 解法が存在します。 どんな方法や
815 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 21:24:07.39 ID:EZ6i74UC] >>794 C ideone.com/vPuYAR 1bitずつ32個計算する方法しか思いつかんかった。。。
816 名前:809 mailto:sage [2014/05/29(木) 03:20:59.54 ID:xZLwX0Bk] >>815 ジェネリックでよいねー。かなりコンパクト!
817 名前:デフォルトの名無しさん mailto:sage [2014/05/29(木) 08:52:56.01 ID:QcRCI5DY] >>815 正解っぽいね 乙でした
818 名前:809 mailto:sage [2014/05/29(木) 23:10:25.35 ID:xZLwX0Bk] あえてやらなかったが、pow使っていいなら定数値省けるんだよなぁ。多ビット対応もできるし。
819 名前:デフォルトの名無しさん mailto:sage [2014/05/30(金) 10:04:16.43 ID:ap828pqo] pow は四則演算じゃないよね
820 名前:デフォルトの名無しさん mailto:sage [2014/05/30(金) 11:04:19.83 ID:K92fSmS+] >>815 俺には難しい マイナスは2の補数で表現するってあたりから勉強する でも、とても励みになった、サンクスです
821 名前:809 mailto:sage [2014/05/30(金) 23:04:18.74 ID:1PtW452N] >>819 それもそうだね。作るには四則演算とループがいるんだよな。 使わなくてよかったか。
822 名前:809 mailto:sage [2014/05/31(土) 02:27:23.08 ID:RzySFflE] ところで、>>794 召喚して、>>809 があってるかそろそろ聞きたいんだが。
823 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 05:11:19.49 ID:74UzWmZV] 四則演算になってないような
824 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 06:28:06.16 ID:S66lgqUj] ideone.com/3zXOy4
825 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 20:17:31.24 ID:RzySFflE] >>823 四則演算+剰余しか使ってないのにぃ〜。 1ビット算出して大きくしてるだけじゃないですかー。Orz 関数も使っちゃダメなの?そんな話ないよ。 たとえ関数がだめでも展開するだけになっちゃうよ?マクロ組むとか。 具体的にどう四則演算になってないか教えてください。 お願いします。
826 名前:デフォルトの名無しさん mailto:sage [2014/06/01(日) 10:03:30.64 ID:JwNR3eSO] >>823 ビット演算になっていにょいようにょ
827 名前:デフォルトの名無しさん mailto:sage [2014/06/01(日) 10:50:18.35 ID:QQAPK+BU] templatだけでも実装できそうだな
828 名前:デフォルトの名無しさん mailto:sage [2014/06/01(日) 21:15:24.10 ID:073ZpLpT] >>827 再起禁止なんですよね。 テンプレートの扱いについては未定義ですが・・・。
829 名前:809 mailto:sage [2014/06/02(月) 00:03:02.55 ID:Zd9YSbvW] うぅ。断片的にああでもないこうでもないと言われても! わけがわからないよ。 うぅわああああん。(ToT
830 名前: ◆0qAv26otVI mailto:sage [2014/06/03(火) 01:29:23.25 ID:x50KDxpk] >>781 4x4x4 > 2x4x3 ideone.com/cs3nmw
831 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 02:23:16.40 ID:R8wsXVj9] >>830 がんばってるねー。 これだけ真面目に改造してくれると書いた方も誉れだよ。 がんばって! そうそう、ループ回数が4*4*4のようだけど、あってる? 自分でやれってこと?
832 名前:デフォルトの名無しさん mailto:sage [2014/06/03(火) 02:30:34.43 ID:R8wsXVj9] >>830 そうそう、投稿するときは一言ほしいなー。 このテストパターンは全部真になることを想定して書いてあるの?
833 名前:デフォルトの名無しさん mailto:sage [2014/06/04(水) 05:30:43.92 ID:QbUS6u7k] |=番兵|_ ( ・ω・) <ステンバーイ ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)
834 名前:デフォルトの名無しさん mailto:sage [2014/06/04(水) 09:59:31.38 ID:q8b8aypY] >>832 VSExpress2010 用に C++11 から C++ に直してくれ。アップアップ溺れそう
835 名前:デフォルトの名無しさん mailto:sage [2014/06/04(水) 23:41:52.12 ID:1iROfyZz] お題:n個の任意の自然数の和がxのとき、n個の自然数の積の最大値を求める。 例 x=10 -> 36 x=64 -> 13947137604 x=100 -> 7412080755407364
836 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 01:08:46.94 ID:MiWap7Hz] 1/2の自乗は1/4 1/3の三乗は1/27だから 中央値に近い自乗が最大?
837 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 01:12:17.98 ID:t1UhlRAe] >>835 C ideone.com/PtLu5N
838 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 01:20:29.41 ID:MiWap7Hz] 36って2*3*2*3か
839 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 02:36:57.82 ID:g1rky1u8] >>835 Python from __future__ import print_function def f835(x): a, b = x % 3, int(x / 3) if a <= 1 and b >= 1: a += 3 b -= 1 s = "{}*3**{}".format(a, b) m = eval(s) print("x={0} -> {3}={1}".format(x,m,a,s)) for i in range(10): f835(i) f835(10) f835(64) f835(100)
840 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 06:15:27.83 ID:/utsiCTM] >>834 特に特殊なことやってないと思うんだけど。 for文がForeachなだけで。俺もvc2013eeで書いてるし。 C++03は忘れました。テヘッ!
841 名前:ゴアー神風 ◆mW2uevDxfA mailto:sage [2014/06/05(木) 07:26:17.09 ID:tu5JPzwB] >>835 ttp://ideone.com/i8yatB ほぼC。間違ってること確定だが、問題が不明瞭で正確性がない。 言い訳はソースに書いておいた。 テストとは一致してないので、多分俺のだめだね。 結果が与えられてるんだったら、素数で割ってけばNを求められるんだがね〜。 結果書いてあるけど、それは計算前に取得できるのか、計算後に取得できるのか不明瞭だ。 とりあえず書いたので、>>837 を参照しようと思う。
842 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 07:27:28.84 ID:tu5JPzwB] げ、間違えた。ハンドルなんていらない・・・。Orz PCゲーのHeathstoneをよろしく!
843 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 07:40:09.12 ID:tu5JPzwB] なるほど、こうやって解くのね。 上限値を超えない保障をどうやってやってるのかよくわからん・・・。Orz
844 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 08:49:21.85 ID:tu5JPzwB] ttp://ideone.com/l6EyKA うーん。お手軽実装だと、ここら辺が限界。 一応、偏ってるが思いつく総当たりはしてるが、思った結果にならんね。 うーん。よくわからん。
845 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 09:18:40.08 ID:nSDQrrzJ] >>835 ruby ttp://ideone.com/vKiuYj
846 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 09:25:06.90 ID:tu5JPzwB] お前ら頭いいなー。メッキがはがれてきたよ。シクシク。
847 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 11:01:34.79 ID:2vI6486P] >>846 大丈夫、はなから諦めてる俺がいる
848 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 11:42:34.78 ID:tu5JPzwB] >>847 とりあえず、間違ってもいいから答えを出すのがモットーだが、 あきらめた時の敗北感だけはどうしても許せん。ので書くんだが、この格差ですよ。 世の中広い!Orz
849 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 12:36:51.82 ID:fFqYdufV] >>835 Io f := method(x,(3**((x/3)floor-1)*(2+2**(x%3)))floor) Io> f(10) ==> 36 Io> f(64)asString(0,0) ==> 13947137604 Io> f(100)asString(0,0) ==> 7412080755407364
850 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 15:15:41.63 ID:X0QJHSOX] >>848 Schme 手順1 自然数xは3をm回加えて、2をn回加えた数となるような m,nを求める 手順2 3をm回かけた数に2をn回かけた数をかける (求める最大値= 3^m * 2^n ) ttp://codepad.org/20fkwUl9
851 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 15:19:17.67 ID:X0QJHSOX] >>850 のアンカーまちがえた 正しくは >>835 への解答
852 名前:デフォルトの名無しさん [2014/06/05(木) 18:22:28.75 ID:O76MB/nL] >>835 Go で動的計画法 gist.github.com/anonymous/c30826b49bcdd418b08e
853 名前:デフォルトの名無しさん [2014/06/05(木) 18:48:16.27 ID:O76MB/nL] つーか漸化式直接書き下せるのか、なんで 3 で割ったら最大値になるんだ?
854 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 20:04:01.52 ID:O76MB/nL] >>853 自己解決。 簡単のため N を k "等"分した場合の最大値を求めることにする。 この時 Σ(i ~ k) (N/k) = N/k Σ(i ~ k) = (N / k) * k = N と表せることから Π(i ~ k) (N/k) = (N/k) ^ k ... (1) を最大にするような k を選べばよい。 (1)の対数を取って f(k) として、対数の最大値を求めることにする。 f(k) = log((N/k)^k) = k * log(N/k) k を微分して極値を求めると f'(k) = log(N) - log(k) - 1 より f'(k) = 0 の時 k = (N/e) となる。 つまり (N/e) 等分した場合最大値を取る。 e = 2.718 で、この値は今回の場合実数ではなくて、自然数でなければならない。 ここで、以下の点に着目することにより f(N/2) = N * log(2)/2 = N * 0.34657 f(N/3) = N * log(3)/3 = N * 0.36620 から f(N/2) < f(N/3) となるので、N = 3 で分割させるのがよい。 (もし余りが存在する場合は、余りを 2 の倍数にするようにする) よって >>850 のようなアルゴリズムになる。
855 名前:デフォルトの名無しさん mailto:sage [2014/06/05(木) 20:07:01.78 ID:2vI6486P] >>835 Scheme >>850 のデバッグ版 ;;; 手順1 ;;; 自然数xは3をm回加えて2をn回加えた数 ;;; であるようなm,nを求める。mは可能な最大値を ;;; 求める ;;; (例) ;;; 14 -> (+ 3 3 3 3 2) m=4,n=1 Ok ;;; 14 -> (+ 3 3 2 2 2 2) m=2,n=4 No ;;; ;;; 手順2 ;;; 3をm回かけた数に2をn回かけた数をかける ;;; 求める最大値-> 3^m * 2^n ttp://codepad.org/WVzTwBh6
856 名前:841 mailto:sage [2014/06/05(木) 23:25:09.50 ID:tu5JPzwB] >>854 なるほど、わからん。 けど、3^m*2^nにすればいいことが分かったのでこれなら解けるわ。 数学できる人ってすごいなー。
857 名前:841 mailto:sage [2014/06/06(金) 00:04:08.90 ID:tu5JPzwB] ttp://ideone.com/n9bWEl >>855 メソッドをパクッてそれっぽい値を出してみた。 確かに出るなー。うーん。俺ってほんと馬鹿。
858 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 00:16:27.56 ID:K7YTK/42] >>835 って一般解じゃなく10と64と100のケースだけ考えろってことなの?
859 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 00:20:59.52 ID:gpt2nU9A] >>835 召喚しないとなー。 最近出題者の失踪が相次いでて出てきてくれないんだよね。
860 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 00:39:43.36 ID:tIw3lkPh] >>858 全ケースの一般解じゃない? ちなみに 8 バイトの long long でも 1000 までは計算できない 問題としてはシンプルで面白いと思うけど
861 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 00:48:59.44 ID:K7YTK/42] そかありがと
862 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 00:53:56.18 ID:K7YTK/42] 2+2+2=6 -> 2*2*2=8 と 3+3=6 -> 3*3=9 の このパターンのみが和と積の大小関係が逆転するケースって感じなのかな?
863 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 01:07:41.46 ID:K7YTK/42] つまり6の倍数で場合わけ? ideone.com/ZFLn23
864 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 01:27:53.53 ID:oWmY0rhm] #include <stdio.h> long long int pow3(int a){ if(a == 0) return 1; return 3 * pow3(a-1); } void f(int n){ int a2, a3; long long int m; a3 = n/3; a2 = n%3; if(a2 == 0) a2 = 1; else if(a2 == 1) {a3--; a2 = 4;} m = pow3(a3) * a2; printf("%lld\n", m); } int main(){ int i; for(i = 2; i < 120; i++){ printf("%d\t", i); f(i); } return 0; }
865 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 02:50:28.11 ID:gpt2nU9A] >>862 へぇ、同じコストで逆転することがあるのか。 例外ってこういうことを言うのかねぇ〜。 べんきょうになるわ。
866 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 03:55:37.93 ID:GstR2kK+] >>862 これは2をはじめに考えてしまっている なるべく積がおおきくなるようにしたいのだから 3をはじめに考えなければならない そうすれば6で場合分けする必要はない
867 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 03:59:18.71 ID:GstR2kK+] Scheme >>855 のデバッグ版(+ m,n表示付き) ttp://codepad.org/UKKAW4Cy
868 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 04:39:58.94 ID:LPhXdKGT] function f835(x) { return pow(3*3, (int)(x/6)) * (x%6 ? (x%6==5? 2*3 : x%6) : 1); }
869 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 05:40:59.09 ID:47r183By] >>864 f(1)がキケン
870 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 05:52:02.29 ID:47r183By] >>869 数が1個では和も積も計算できませんね。失礼しました。前言、忘れてください。
871 名前:デフォルトの名無しさん mailto:sage [2014/06/06(金) 05:53:24.09 ID:LPhXdKGT] function f835(x) { return pow(3, (int)((x-4*((x%3)%2))/3)) * (4*((x%3)%2) + (x%3)*(1-(x%3)%2)); }
872 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 07:57:32.21 ID:rofUEf38] >>853 >>854 >>856 ■なぜ3^m * 2^nが最大値となるのか ええと、別表現です(ま、いろいろ言えるわけですが) なぜ3のm乗と2のn乗との積が最大値になるのか?というと 1. 自然数2と3はそれを1ではない2つの自然数の和としては表現できない。 ( 1は乗法の単位元なので最大の積を求めるためには最悪だから無視するよーん 1を認めてしまうと (a1 + a2) > ( a1 * a2) となってしまい、最大の積を求めるもクソもなくなる 例:x=100 100 = ( 1 + 99) -> ( 1 * 99)=99 ) 2. しかし4以上は2または3の和として表現できる 3. さて一般に1でない自然数数a1,a2の積はその和に等しいかそれよりも大きい (a1 * a2) >= ( a1 * a2) 4. 以上から4以上は3と2の和に分解したほうが大きな積を得ることができる(正確には小さな積を得ることを防げる) 5. そこで、3のm乗と2のn乗の積にするのが一番大きな積にできる 例1: x=10の場合 (+ 4 6) -> (* 4 6)=24 とするよりも (* (* 2 2) (* 3 3))=36 としたほうが大きな数になる 例2:x=4の場合 (+ 2 2)しかないので(* 2 2) これは(+ a1 a2 ) = (* a1 2)の場合
873 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 08:12:47.01 ID:rofUEf38] 補足・ どうして、自然数4以上は、2と3の和として表現できるか?といえば、 1. 自然数は偶数か奇数である 2. 偶数は2の和として表現できる 3. 奇数はan = (3+ 2*(n 1)) なので3と2の和として表現できる おしまい
874 名前:864 mailto:sage [2014/06/07(土) 08:19:48.14 ID:tEh/6PYv] >>871 TorF ? (x-4*((x%3)%2))/3 : x/3-((x%3)%2)
875 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 08:33:20.60 ID:y6RJGWR3] >>868 のほうがシンプル
876 名前:864 mailto:sage [2014/06/07(土) 12:44:00.88 ID:tEh/6PYv] a3 = n/3 - n%3%2; a2 = 4*(n%3%2) + (1+n%3/2) * (1-n%3%2); m = pow3(a3) * a2; >>875 その前にダメなんだけど。(:->)
877 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 16:47:10.59 ID:fH+IC/Nz] お題:長さが3文字以上の文字列が与えられたとき、2文字の組合せを求める。 例 today -> to td ta ty od oa oy da dy ay
878 名前: ◆0qAv26otVI mailto:sage [2014/06/07(土) 17:17:14.66 ID:tEh/6PYv] だだし、文字の順番は変えない
879 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 18:33:44.13 ID:rofUEf38] 例を見れば自明
880 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 19:26:39.16 ID:3R8CEA88] //未テスト char buf[1000]; fgets(buf,1000,stdin); int len=strlen(buf); buf[--len]=0; for (int i=0;i<len-1;++i) for(int j=i+1;j<len;++j) {putchar(buf[i]);putchar(buf[j]);putchar(' ');}
881 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 19:33:16.22 ID:y6RJGWR3] >>876 > その前にダメなんだけど。(:->) ダメって?
882 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 19:35:01.70 ID:lO6x1Rj4] >>877 Haskell subseq2 [] = [] subseq2 (x:xs) = foldr (\y acc -> [x,y] : acc) (subseq2 xs) xs main = print $ subseq2 "today" -- ["to","td","ta","ty","od","oa","oy","da","dy","ay"]
883 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 21:19:33.26 ID:uZb6ezHd] >>877 Scheme ;;; 手順1 ;;; 文字列strを最初の1文字carと ;;; 2文字目以降の文字列cdrに分ける ;;; 例:"today" ;;; str="today" ;;; car = 't ;;; cdr = "oday" ;;; ;;; 手順2 ;;; carと(cdrのn文字目)の組set1を作る ;;; 例 car= 't cdr="oday" ;;; set=("to" "td" "ta" "ty") ;;; ;;; 手順3 ;;; strを2文字目以降に更新する ;;; 例 str="today" -> str="oday" ;;; ;;; もしstrの長さが1以下になったらset1が解答 ;;; そうでなければset1に(手順1から手順3を ;;; 繰り返してできた組を加えたものが答え) ;;; (再帰させる) ttp://codepad.org/kT3XrspK
884 名前:デフォルトの名無しさん mailto:sage [2014/06/07(土) 23:27:58.59 ID:fH+IC/Nz] >>877 J f =: {~4$.[:$.[:</~i.@# ,' ',.f 'mevius' me mv mi mu ms ev ei eu es vi vu vs iu is us
885 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 08:26:25.33 ID:W6M7L2Zj] >>877 Prolog '長さが3文字以上の文字列が与えられたとき、2文字の組合せを求める。'(_文字列,_文字組合せ) :- sub_atom(_文字列,0,1,_,_文字_1), sub_atom(_文字列,1,_,0,_文字列_2), '長さが3文字以上の文字列が与えられたとき、2文字の組合せ'(_文字列_2,_文字_1,_文字組合せ). '長さが3文字以上の文字列が与えられたとき、2文字の組合せ'(_文字列_2,_文字_1,_文字組合せ) :- sub_atom(_文字列_2,_,1,_,_文字_2), atom_concat(_文字_1,_文字_2,_文字組合せ). '長さが3文字以上の文字列が与えられたとき、2文字の組合せ'(_文字列_2,_,_文字組合せ) :- '長さが3文字以上の文字列が与えられたとき、2文字の組合せを求める。'(_文字列_2,_文字組合せ).
886 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 16:48:08.68 ID:R0ABWUTD] >>877 ttp://ideone.com/hpiuHI べたーC。あってるかな? おまけで逆順検索入れておいた。簡単だったし。 なんか途中で動かないコードに出会って泣いてたが、アドレス計算になってたのかなぁ。 この辺があいまいだな。俺。
887 名前: ◆0qAv26otVI mailto:sage [2014/06/08(日) 17:12:46.08 ID:GKqJwll3] 重複(同じ2文字)は除く
888 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 17:17:45.89 ID:R0ABWUTD] >>887 やっといてあれだけど、遅いよ。 問題は正確に作りましょう。仕様書だからねぇ。
889 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 17:26:59.27 ID:8aybWNLh] >>887 え? そうなの? なら書き直すか
890 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 17:29:35.06 ID:8aybWNLh] 確かに今回は異様に簡単な問題だったな
891 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 17:33:25.88 ID:R0ABWUTD] >>887 同じ2文字というのは、たとえば"aa"という組み合わせはおk? それとも、"AB"と"BA"が同じ意味ということでNG? その両方?
892 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 17:39:01.44 ID:8aybWNLh] >>891 出題者に聞かないとわからないね "abababab"の場合、どうなりますかあ? ま、問題が甚だ曖昧だった!かな
893 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 17:45:09.43 ID:R0ABWUTD] >>892 まぁ、そうだねー。 その例題解いてくれればヒントになるわな。 俺の場合"aa"は許可してるからねぇ。
894 名前: ◆0qAv26otVI mailto:sage [2014/06/08(日) 18:01:50.51 ID:GKqJwll3] Not except same character, but except same word.
895 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 18:03:24.82 ID:8aybWNLh] >>894 ん?出題者? あれれ?
896 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 18:09:55.46 ID:R0ABWUTD] >>894 英語読めない情弱に英語で立ち向かってくるとはやるな!!
897 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 18:12:51.81 ID:R0ABWUTD] えーっと、文字単位では区別しないが、ワード単位では区別するかな。 あってる?
898 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 18:16:16.90 ID:FvrpJhIi] >>887 Python from __future__ import print_function import itertools def f887(s): a = ["".join(x) for x in itertools.combinations(s, 2)] b = [] for x in a: if x in b: continue # if x[0] == x[1]: continue b.append(x) print("{} -> {}".format(s, " ".join(b))) f887("today") f887("abcdcba") 言葉足らずな出題者様の仰せのままに。
899 名前:877 mailto:sage [2014/06/08(日) 18:28:34.45 ID:6CdOGeRB] >>877 Io f := method(s, a := s size - 1 for(i, 0, a - 1, for(j, i + 1, a, write(s slice(i, i + 1),s slice(j, j + 1), " ") ) ) ) Io> f("book") bo bo bk oo ok ok >>878 >>887 >>894 は私は関知しません。 組合せの問題も2個に限れば簡単にできるな、という問題のつもりでした。
900 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 18:41:23.39 ID:R0ABWUTD] ぐあ、便乗だったか。まぁ、いい。 解答は示した。としておこう。 俺の微妙に間違ってるけど、いっか。
901 名前:デフォルトの名無しさん mailto:sage [2014/06/08(日) 19:41:38.65 ID:Qs6rCHv1] >>877 Perl ideone.com/05potW