1 名前:デフォルトの名無しさん [2019/02/03(日) 11:21:53.20 ID:72eosYJ+.net] プログラミングのお題スレです。 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 結果がある場合はそれも 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ https://mevius.2ch.net/test/read.cgi/tech/1538096947/
891 名前:デフォルトの名無しさん mailto:sage [2019/05/02(木) 10:15:40.84 ID:uedhNxa1.net] 死ね
892 名前:デフォルトの名無しさん mailto:sage [2019/05/02(木) 10:36:17.75 ID:aiQlF5oy.net] >>871 時間全部同じなら1にしちゃってえーんちゃう?
893 名前:デフォルトの名無しさん mailto:sage [2019/05/02(木) 12:40:19.89 ID:6TxNQP9X.net] 死んで良し。こんな長たらしいのを貼るなんて迷惑。 どこかに貼ってリンクだけにしろ。
894 名前:デフォルトの名無しさん [2019/05/03(金) 00:09:09.98 ID:zqE/J/GT.net] >>836 C https://ideone.com/UPx6IS もうどうでもいいかもしれんが、各列で幅調整ができるようにした
895 名前:デフォルトの名無しさん [2019/05/07(火) 18:32:57.10 ID:dWjIX09N.net] COST_TIME: 2903 0 : ( 4, 799, 1141), ( 1, 1141, 1385), ( 2, 1385, 1736), ( 3, 2023, 2316), ( 0, 2477, 2819) 1 : ( 2, 0, 306), ( 4, 457, 799), ( 3, 1114, 1500), ( 1, 1500, 1886), ( 0, 1980, 2393) 2 : ( 3, 368, 536), ( 0, 913, 1179), ( 2, 1203, 1385), ( 1, 1385, 1491), ( 4, 2122, 2490) 3 : ( 3, 0, 368), ( 2, 1052, 1203), ( 4, 1838, 2122), ( 0, 2393, 2477), ( 1, 2639, 2803) 4 : ( 4, 0, 240), ( 1, 240, 431), ( 0, 562, 913), ( 3, 1615, 2023), ( 2, 2593, 2868) 5 : ( 2, 306, 648), ( 3, 763, 1114), ( 4, 1141, 1332), ( 0, 1332, 1665), ( 1, 1886, 2312) 6 : ( 0, 75, 168), ( 1, 568, 803), ( 2, 1736, 2158), ( 3, 2508, 2752), ( 4, 2752, 2903) 7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 457, 568), ( 3, 568, 763), ( 2, 2158, 2593) 8 : ( 2, 879, 1052), ( 4, 1403, 1838), ( 3, 2316, 2502), ( 1, 2502, 2639), ( 0, 2819, 2872) 9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 1332, 1403), ( 3, 1500, 1615), ( 0, 1665, 1980) MACHINE Schedule 0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 562, 913), ( 2, 913, 1179), ( 5, 1332, 1665), ( 9, 1665, 1980), ( 1, 1980, 2393), ( 3, 2393, 2477), ( 0, 2477, 2819), ( 8, 2819, 2872) 1 : ( 9, 0, 93), ( 4, 240, 431), ( 7, 457, 568), ( 6, 568, 803), ( 0, 1141, 1385), ( 2, 1385, 1491), ( 1, 1500, 1886), ( 5, 1886, 2312), ( 8, 2502, 2639), ( 3, 2639, 2803) 2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 3, 1052, 1203), ( 2, 1203, 1385), ( 0, 1385, 1736), ( 6, 1736, 2158), ( 7, 2158, 2593), ( 4, 2593, 2868) 3 : ( 3, 0, 368), ( 2, 368, 536), ( 7, 568, 763), ( 5, 763, 1114), ( 1, 1114, 1500), ( 9, 1500, 1615), ( 4, 1615, 2023), ( 0, 2023, 2316), ( 8, 2316, 2502), ( 6, 2508, 2752) 4 : ( 4, 0, 240), ( 7, 240, 457), ( 1, 457, 799), ( 0, 799, 1141), ( 5, 1141, 1332), ( 9, 1332, 1403), ( 8, 1403, 1838), ( 3, 1838, 2122), ( 2, 2122, 2490), ( 6, 2752, 2903)
896 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 19:09:14.64 ID:T//WWibe.net] 死ねやマジで
897 名前:デフォルトの名無しさん [2019/05/09(木) 08:23:28.37 ID:iHKmUIWi.net] COST_TIME: 2868 0 : ( 4, 970, 1312), ( 1, 1312, 1556), ( 2, 1807, 2158), ( 3, 2177, 2470), ( 0, 2470, 2812) 1 : ( 2, 0, 306), ( 4, 557, 899), ( 3, 1197, 1583), ( 1, 1583, 1969), ( 0, 1969, 2382) 2 : ( 3, 0, 168), ( 0, 394, 660), ( 2, 1474, 1656), ( 1, 1969, 2075), ( 4, 2222, 2590) 3 : ( 3, 168, 536), ( 2, 1656, 1807), ( 4, 1938, 2222), ( 0, 2382, 2466), ( 1, 2696, 2860) 4 : ( 4, 292, 532), ( 1, 532, 723), ( 0, 723, 1074), ( 3, 1583, 1991), ( 2, 2158, 2433) 5 : ( 2, 306, 648), ( 3, 731, 1082), ( 4, 1312, 1503), ( 0, 1512, 1845), ( 1, 2133, 2559) 6 : ( 0, 75, 168), ( 1, 723, 958), ( 2, 1052, 1474), ( 3, 2470, 2714), ( 4, 2714, 2865) 7 : ( 0, 0, 75), ( 4, 75, 292), ( 1, 292, 403), ( 3, 536, 731), ( 2, 2433, 2868) 8 : ( 2, 879, 1052), ( 4, 1503, 1938), ( 3, 1991, 2177), ( 1, 2559, 2696), ( 0, 2812, 2865) 9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 899, 970), ( 3, 1082, 1197), ( 0, 1197, 1512) MACHINE Schedule 0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 394, 660), ( 4, 723, 1074), ( 9, 1197, 1512), ( 5, 1512, 1845), ( 1, 1969, 2382), ( 3, 2382, 2466), ( 0, 2470, 2812), ( 8, 2812, 2865) 1 : ( 9, 0, 93), ( 7, 292, 403), ( 4, 532, 723), ( 6, 723, 958), ( 0, 1312, 1556), ( 1, 1583, 1969), ( 2, 1969, 2075), ( 5, 2133, 2559), ( 8, 2559, 2696), ( 3, 2696, 2860) 2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 6, 1052, 1474), ( 2, 1474, 1656), ( 3, 1656, 1807), ( 0, 1807, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868) 3 : ( 2, 0, 168), ( 3, 168, 536), ( 7, 536, 731), ( 5, 731, 1082), ( 9, 1082, 1197), ( 1, 1197, 1583), ( 4, 1583, 1991), ( 8, 1991, 2177), ( 0, 2177, 2470), ( 6, 2470, 2714) 4 : ( 7, 75, 292), ( 4, 292, 532), ( 1, 557, 899), ( 9, 899, 970), ( 0, 970, 1312), ( 5, 1312, 1503), ( 8, 1503, 1938), ( 3, 1938, 2222), ( 2, 2222, 2590), ( 6, 2714, 2865)
898 名前:デフォルトの名無しさん [2019/05/09(木) 09:37:18.89 ID:pu1Iu6no.net] ここはプログラミングのお題スレであって結果と思われる出力を書き込むスレではない。
899 名前:デフォルトの名無しさん [2019/05/09(木) 19:00:51.34 ID:n0QdGvKz.net] コラッツ数列を作る関数chainを書け コラッツ数列の定義 任意の自然数から開始する 数が 1ならば 、終了 数が偶数なら 、 2で割る 数が奇数なら 、 3倍して 1を足す 新しい値でこのアルゴリズムを繰り返す 使用例 >chain 10 [ 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ] >chain 1 [ 1 ] >chain 30 [ 3 0 , 1 5 , 4 6 , 2 3 , 7 0 , 3 5 , 1 0 6 , 5 3 , 1 6 0 , 8 0 , 4 0 , 2 0 , 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]
900 名前:デフォルトの名無しさん [2019/05/09(木) 21:28:06.85 ID:V3giiBFx.net] >>880 C https://ideone.com/vpQG5P
901 名前:さまよえる蟻人間 mailto:sage [2019/05/09(木) 22:20:55.24 ID:sZO2t0w0.net] お題: 改行とスペースを含むASCII文字列が与えられる。 改行とスペース以外の各印字可能文字の位置を以下のように順番に出力せよ。 (入力) a b c d (出力) [a, 0, 0] [b, 2, 0] [c, 5, 0] [d, 0, 2]
902 名前:デフォルトの名無しさん [2019/05/10(金) 08:21:41.55 ID:Z1uC1A15.net] >>880 python def chain(n): lst = [] if n < 1: raise ValueError("Please n > 0 number") while n != 1: lst.append(n) if n % 2 == 0: n //= 2 else: n = n * 3 + 1 lst.append(1) return lst for i in [10,1,30,0]: print(chain(i))
903 名前:デフォルトの名無しさん [2019/05/10(金) 08:24:53.49 ID:Z1uC1A15.net] >>880 Haskell main = mapM_ (print.chain) [10,1,30,0] chain 1 = [1] chain n | n < 1 = error "Please n > 0 number" chain n | even n = n:chain (n `div` 2) chain n = n:chain (n * 3 + 1)
904 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 11:11:44.01 ID:VtNtFyvg.net] >>880 C https://ideone.com/mBt0yE 1未満の値の判定はchain関数に実装すべきなのかどうなのか……
905 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 11:56:36.34 ID:sggjdX/2.net] >>882 [c, 5, 0]? [c, 4, 0]じゃなくて?
906 名前:さすらいの蟻人間 mailto:sage [2019/05/10(金) 12:18:04.49 ID:8LSsTFj9.net] >>882 >>886 4の間違いでした。訂正。
907 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 12:30:05.58 ID:k7gY5pMP.net] >>882 出力は、行列番号が0から始まるとして 文字,列番号、行番号 だと思うから c の列番号は間違ってるんじゃないの? (入力) a b c d (出力) [a, 0, 0] [b, 2, 0] [c, 4, 0] << 5じゃなくて4だろ。 [d, 0, 2]
908 名前:デフォルトの名無しさん [2019/05/10(金) 12:47:01.79 ID:6xQjM2XG.net] >>881 ,885 この問題、入門書から抜粋したけど次に1ー100の間に長さ15以上は何個あるかとか出てるから、 Cだとリストから作らないといけないのは分かるが、リスト返す様にした方が仕様変更に強いと思う。
909 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 12:53:54.51 ID:KAkBQh2y.net] 宿題誘導か 最近のアホは小賢しいな
910 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 13:27:19.10 ID:k7gY5pMP.net] >>882 python st = '''a b c d ''' line = 0 ; col = 0 for c in st : __if c == '\n' : ____line += 1 ____col = 0 ____continue __if c != ' ' : ____print ('['+c, col,str(line)+']', sep=',') __col += 1
911 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 13:40:11.78 ID:k7gY5pMP.net] >>891 出力フォーマットが ['a', 0, 0] ['b', 2, 0] ['c', 4, 0] ['d', 0, 2] でもよければ print文は簡単になる print ([c, col,line])
912 名前:さすらいの蟻人間 mailto:sage [2019/05/10(金) 14:51:58.21 ID:CF7UUf9v.net] お題: >>882 の入出力を逆転。
913 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 15:12:02.76 ID:bODSyEKx.net] >>893 手抜きすんな面白くない
914 名前:デフォルトの名無しさん [2019/05/10(金) 15:43:29.85 ID:aTy0NCJ4.net] >>880 与えられた数の3倍以上の個数を持つ系列を を3個示せ。
915 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 17:50:33.37 ID:58PV3kUA.net] >>880 ,889 Squeak Smalltalk | chain | chain := [:n | Array streamContents: [:ss | ss nextPut: n. [n > 1] whileTrue: [ss nextPut: (n := n even ifTrue: [n / 2] ifFalse: [n * 3 + 1])] ] ]. chain value: 10. "=> #(10 5 16 8 4 2 1) " (1 to: 100) count: [:n | (chain value: n) size >= 15] "=> 71 "
916 名前:デフォルトの名無しさん [2019/05/10(金) 20:05:13.80 ID:0Zlxa6bH.net] >>880 Perl のワンライナー。 perl -ne '$n=$_;chomp($n);@d=($n);while($n!=1){$n=$n&1?($n*3+1):($n/2);push(@d,$n)}print "[".join(", ", @d)."]\n"' 実行する場合はbash等のシェルから行う(シングルクォートの中がそのままperlに引き渡されさえすれば他のシェルでも良い)。 標準入力から1行1データで入力して結果を出力するようにした。
917 名前:デフォルトの名無しさん [2019/05/10(金) 20:29:31.76 ID:/+/am3CQ.net] >>895 27のとき112個 31のとき107個 10億くらいまで回したけど、これら以外なくね? 数列の初期値と長さは、初期値が小さいうちは同じくらいだが、初期値を大きくしても数列の長さはさほど伸びない。 ttps://imgur.com/wm0kCEQ グラフはxが大きくなるほど飛ばす間隔も大きくしてあるからあまり正確ではない。
918 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 21:48:47.85 ID:LM2YqzO0.net] お題 https://www.youtube.com/watch?v=2JNgkMMaNlw このようなルートの数を数え上げるプログラムを作る N=5位まででよい
919 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 22:09:58.71 ID:KAkBQh2y.net] ZDDやるなら出来合いのもの使って終わりじゃねえの? https://github.com/junkawahara/frontier-basic https://hs-nazuna.github.io/tdzdd-manual/intro.html
920 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 11:54:01.37 ID:Ze1v8w/9.net] >>880 Perl5 sub chain { my $i = shift; $i == 1 ? $i : ($i, ($i & 1 ? chain(3*$i + 1) : chain($i / 2))) } for (qw{10 1 30}) { @a = chain $_; print "[@a]\n"; } 実行 ~ $ perl 13_875_collatz.pl [10 5 16 8 4 2 1] [1] [30 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1]
921 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:16:05.54 ID:Ze1v8w/9.net] >>882 Perl5 @in = map{[split'']} map{split '\n'} <<EOF; a b c d EOF for $j (0..$#in) { for $i (0..$#{$in[$j]}) { $c = $in[$j][$i]; print "[$c,$i,$j]\n" if $c =~ /\w/; } } 実行 ~ $ perl 13_877.pl [a,0,0] [b,2,0] [c,4,0] [d,0,2]
922 名前:デフォルトの名無しさん [2019/05/11(土) 13:06:48.39 ID:bKjSBhWB.net] >>880 Ruby で module Collatz def self.next_number( num ) if num.even? # 偶数 num / 2 else # 奇数 num * 3 + 1 end end def self.chain( num ) @@results = [ ] tmp = num while true @@results.push tmp break if tmp == 1 tmp = next_number( tmp ) end @@results end end [ 1, 27 ].each do | num | p Collatz.chain( num ) end
923 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 18:55:11.91 ID:fAbbaveG.net] >>880 c https://ideone.com/jwtvbF >>880 ruby https://ideone.com/MIKeM7 >>880 ocaml https://ideone.com/CEassZ
924 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 20:54:08.94 ID:wddfxsLz.net] ideone.comはMATLABに対応してないのね。 書いてみた後で気がついた。
925 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 23:44:29.57 ID:fAbbaveG.net] >>880 octave https://ideone.com/eNqIim
926 名前:デフォルトの名無しさん [2019/05/12(日) 02:01:10.46 ID:FbICTnq7.net] >>880 Java https://paiza.io/projects/VSqA-UZgWeXB-YzVTnrQRg takeUntilが欲しいなー
927 名前:デフォルトの名無しさん [2019/05/12(日) 06:46:28.87 ID:R9TUiFuu.net] >>880 コラッツ樹で作れば出力を減らせる。
928 名前:デフォルトの名無しさん [2019/05/14(火) 02:59:08.35 ID:3xJ0OqNt.net] >>882 Kotlin https://paiza.io/projects/Aab0mA1WSwXHnHL2049hCA for や while ループ使わずに forEachIndexed で入れ子にしてみました。
929 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 09:26:15.81 ID:zeev4Evh.net] >>882 Ruby で text = <<"EOT" a b c d EOT re = /[^ ]+/ # 空白以外 text.each_line.with_index do | line, idx | # 1行ずつ処理する line.strip! # trim # $~.begin は、マッチした先頭文字の位置 line.scan( re ) { puts "[" + [ $~.to_s, $~.begin(0), idx ].join( ", " ) + "]" } end
930 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 10:07:03.30 ID:rKVVoOG1.net] >>891 をスッキリ修正してみた 改行コード指定をやめ、for loop のカウンタを利用 >>882 の解 st = '''a b c d ''' for line,l in enumerate(st.splitlines()) : for col,c in enumerate(l): if c != ' ' : print('['+c, col,str(line)+']',sep=',')
931 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 14:12:15.49 ID:8QdSJZ63.net] >>910 空白以外は\Sでマッチするぞ
932 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 23:52:44.04 ID:AtHJrRxM.net] >>882 Squeak Smalltalk | fn | fn := [:str | ((str lines collectWithIndex: [:line :lIdx | (line reject: #isSeparator) asArray collect: [:chr | {chr. (line indexOf: chr) - 1. lIdx - 1}]] ) concatenation select: #notEmpty) asStringWithCr ]. fn value: 'a b c d' "=> '#($a 0 0) #($b 2 0) #($c 4 0) #($d 0 2)' "
933 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 01:06:44.65 ID:tCUIeJeC.net] >>913 smalltalk って全く知らないけど、最後が出力のつもり? だったらお題の出力フォーマットと似ても似つかないじゃん。
934 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 03:57:52.07 ID:i8y0s24p.net] いや似てる
935 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 04:50:48.17 ID:TsVBVaTo.net] >>882 Squeak/Pharo Smalltalk 出力はともかく同行に同文字があるとダメだった^^;ので>>913 差し替え | fn | fn := [:str | ((str lines collectWithIndex: [:line :lIdx | (line asArray collectWithIndex: [:chr :cIdx | {chr. cIdx - 1. lIdx - 1}] ) reject: [:each | each first isSeparator]] ) concatenation select: #notEmpty thenCollect: [:each | '[{1}, {2}, {3}]' format: each]) asStringWithCr ]. fn value: 'a b c d' "=> [a, 0, 0] [b, 2, 0] [c, 4, 0] [d, 0, 2] "
936 名前:905 [2019/05/15(水) 09:57:59.71 ID:AfKgri37.net] >>912 re = /[^ ]+/ 空白以外だから、上のようにしたけど、空白"類"以外なら、\S+ でよい 問題の意図がどちらなのか、よく分からない
937 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 23:43:58.92 ID:jmndeABE.net] >>882 c https://ideone.com/tIcQPK >>882 ruby https://ideone.com/qMREyy >>882 ocaml https://ideone.com/uaNmRF >>882 octave https://ideone.com/psnXl5
938 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 01:50:16.53 ID:4fy8zsNP.net] >>918 C以外は助長だな
939 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 03:57:55.40 ID:6BLr95cC.net] >>919 具体的にはどの処理のどの部分を冗長に感じられたのでしょうか? たとえばRubyの回答がどう冗長か(あるいはどう書けば良いか)教えてください!
940 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 08:25:20.49 ID:MujhV/Cm.net] >>918 故意にpython 外しはずるい。 >>882 python https://ideone.com/yvFuOl printフォーマットは、コメントにしたpython3.6のf文字列の方がシンプルだが、ideone は3.5しかないのでformat文にした。
941 名前:デフォルトの名無しさん [2019/05/16(木) 10:18:52.91 ID:YVMjr/q8.net] >>882 Go https://ideone.com/mJOisR コンパクトにならんね
942 名前:デフォルトの名無しさん [2019/05/16(木) 14:34:08.16 ID:YVMjr/q8.net] >>893 Go https://ideone.com/x2iyka
943 名前:デフォルトの名無しさん [2019/05/16(木) 19:26:40.27 ID:ktv4pd0R.net] >>882 C++ https://ideone.com/cbDkCt
944 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 20:28:13.91 ID:3sIrlJF4.net] お題 整数の数列が与えられるので、各値の大小関係を変えないように値をなるべく小さくせよ ただし1番小さい要素は1にすること 入力 -6 3 9 5 3 -7 出力 2 3 5 4 3 1
945 名前:デフォルトの名無しさん [2019/05/16(木) 21:00:21.83 ID:/dAesd8e.net] >>925 c++ https://ideone.com/zEwKOk
946 名前: mailto:sage [2019/05/16(木) 21:47:12.78 ID:m1RdOLwU.net] >>925 >値をなるべく小さくせよ 絶対値を小さく、という意味ですか?
947 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 22:59:47.34 ID:0eZXbfha.net] >>925 Pharo/Squeak Smalltalk | fn | fn := [:arr | | sorted | sorted := arr asSet sorted. arr collect: [:x | sorted indexOf: x] ]. fn value: #(-6 3 9 5 3 -7). "=> #(2 3 5 4 3 1) "
948 名前:913 mailto:sage [2019/05/16(木) 23:00:52.84 ID:02wuysYU.net] >>882 ocaml https://ideone.com/waZZh7 ・自分に正直になってrefとforループで書いた >>919 じょ、助長… >>921 外しと言うより、たんに不勉強 python書けないんよね(´・ω・`)
949 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:34:17.56 ID:YXKZQo24.net] >>928 Perl5 @a = qw{-6 3 9 5 3 -7}; $h{$_}=1 for @a; %o = map{$_=>++$i} sort{$a<=>$b} keys %h; @b = map{$o{$_}} @a; print "@a => @b\n"; 実行 ~ $ perl 13_920.pl -6 3 9 5 3 -7 => 2 3 5 4 3 1
950 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:42:11.94 ID:YXKZQo24.net] >>930 アンカーしくった、>>925 宛だった…orz
951 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:44:54.09 ID:02wuysYU.net] >>925 octave https://ideone.com/f9S91N
952 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:26:31.35 ID:SI3/qEwo.net] >>893 Pharo/Squeak Smalltalk | fn | fn := [:arr | String streamContents: [:ss | | cIdx lIdx | cIdx := lIdx := 0. arr do: [:spec | spec third > lIdx ifTrue: [ ss nextPutAll: (String new: spec third - lIdx withAll: Character cr). lIdx := spec third. cIdx := 0 ]. ss nextPutAll: (String new: spec second - cIdx withAll: Character space). ss nextPutAll: spec first. cIdx := spec second + 1. ] ] ]. fn value: #( (a 0 0) (b 2 0) (c 4 0) (d 0 2)). "=> a b c d "
953 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:35:47.85 ID:HrEfbPs9.net] >>932 重複除去でソート後のインデックスを返す関数? チート過ぎてわろたw
954 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:55:59.72 ID:TuAgku6e.net] 最近jニキ来ないな
955 名前:デフォルトの名無しさん [2019/05/17(金) 01:23:24.98 ID:UHIjSpei.net] >>925 Kotlin https://paiza.io/projects/NMOKqrUnEfwIbLSRmrMMmQ
956 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 07:54:47.22 ID:9a+COZnd.net] >>893 s = '''\ [a, 0, 0] [b, 2, 0] [c, 4, 0] [d, 0, 2] ''' from parse import * #pip install col2 = 0 ; line2 = 0 for l in s.splitlines(): col = col2 ; line = line2 r=parse('[{},{},{}]',l) c= r[0] col2 = int(r[1]) ; line2 = int(r[2]) {print() for _ in range(line2-line) } {print(' ',end='') for _ in range(col2-col)} print(c, end='') col2 += 1 print() '''#出力 a b c d '''
957 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 08:32:11.25 ID:9a+COZnd.net] >>937 parse に型指定追加 >>893 Python s = '''\ [a, 0, 0] [b, 2, 0] [c, 4, 0] [d, 0, 2] ''' from parse import * #pip install col2 = 0 ; line2 = 0 for l in s.splitlines(): col = col2 ; line = line2 (c,col2,line2) = parse('[{},{:d},{:d}]',l) {print() for _ in range(line2-line) } {print(' ',end='') for _ in range(col2-col)} print(c, end='') col2 += 1 print() '''#出力 a b c d '''
958 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:14:50.20 ID:8VLhbVxR.net] >>925 は、ランク付けの問題だろ 入力データ -6 3 9 5 3 -7 出力・ランク 2 3 5 4 3 1 入力データの最も小さい数字を、ランク1 にして、 数字が大きくなるほど、ランクも大きくしていく 同値の場合は、同じランクにして、次のランクも間隔を空けない。 ランク3 が2つあっても、次は、ランク4 つまり、ランクが欠けることはない!
959 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:23:14.18 ID:99nnd/tf.net] >>939 うるせぇ死ね
960 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:39:09.53 ID:L8EHraRu.net] 難しく書いてたけど結局これだけなのか 問題文をわざと複雑に見せかける現代文読解と同じ仕組みじゃないか
961 名前:デフォルトの名無しさん [2019/05/17(金) 12:49:18.63 ID:ut9H1r3U.net] プログラム作る前に気づいたので>>936 のリンク先のブログラムのタイトルは密かに「順位」にしといたw
962 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:50:56.11 ID:l82uGMBO.net] >>941 わざと難しく見せかけているというよ
963 名前:閨Aたんに説明が下手なだけだと思う [] [ここ壊れてます]
964 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 13:23:46.56 ID:gFFtTihX.net] 別に難しくない件
965 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 13:29:01.98 ID:L8EHraRu.net] そうですね 難易度は主観ですね なら短さ長さを比べるとこうなります ・各値の大小関係を変えないように値をなるべく小さくせよ ・ランク付けせよ もしかしたらこれが要するにただのランク付けだと分かるまで何人が挑戦するかを試してみる社会調査だったのかもしれません
966 名前:デフォルトの名無しさん [2019/05/17(金) 13:36:08.80 ID:/5AjAxyT.net] >ランク付けだと分かるまで何人が挑戦するかを試してみる まさにそうじゃないの?
967 名前:デフォルトの名無しさん [2019/05/17(金) 13:44:50.72 ID:mxL0YWmq.net] >>925 J f =: >: @ (i.~ /:~ @ ~.) f _6 3 9 5 3 _7 2 3 5 4 3 1
968 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:08:19.69 ID:gFFtTihX.net] >>945 アスペ
969 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:08:53.72 ID:gFFtTihX.net] 問題文を添削しちゃう皆さん
970 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:20:43.10 ID:gFFtTihX.net] >>927
971 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 15:06:17.59 ID:Jb6joIEA.net] さすがにいちゃもん付け過ぎだろ 元の問題文読めば普通はわかるだろ
972 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 15:51:11.97 ID:99nnd/tf.net] 問題: おっぱいをなるべく小さくせよ。
973 名前:デフォルトの名無しさん [2019/05/17(金) 16:00:34.70 ID:ut9H1r3U.net] >>952 (・)(・) ↓ (・)(・)
974 名前:デフォルトの名無しさん [2019/05/17(金) 16:18:22.99 ID:X2USxdO3.net] お題:自然数を隙間なく自分自身以外の数に対応させよ。
975 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 16:46:21.83 ID:9GdSR9hc.net] >>954 先生、対応させると言う日本語がわかりません。 日本人には難しいです。
976 名前:デフォルトの名無しさん [2019/05/17(金) 17:04:52.99 ID:ut9H1r3U.net] >>954 君が何を言っているのかわからない。
977 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 17:24:51.97 ID:L8EHraRu.net] >>954 パッ見で分からん
978 名前:デフォルトの名無しさん [2019/05/17(金) 18:07:07.73 ID:nEasvejW.net] 偶数なら1引く 奇数なら1足すとかでいいんじゃないの
979 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 18:39:31.46 ID:9GdSR9hc.net] >>958 良いんじゃないのじゃなくて、他の人が理解できる言葉に翻訳してよ。 これじゃ小学校の国語で平均点以下だろ。 日本語が不自由ならプログラム例を示せば良い。変な言語はダメだけど、C系の素直な言語なら万国共通
980 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:30:38.86 ID:Jb6joIEA.net] 要はf: N -> N の∀n∈N f(n) ≠ n かつ全単射な写像を求めろってことでしょ
981 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:35:23.29 ID:Jb6joIEA.net] あ、単射じゃなくてもいいか
982 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:40:06.71 ID:9GdSR9hc.net] >>960 あのさ、それで人に通じると思ってるの? そんな仕様書を書いて誰がコーディングするんだよ。 日本語に翻訳して明後日出直してこい。 言語能力にかけてるやつは、自分の頭の中が周りの人からスケスケに見えてると言う妄想を持ってる。 狭い世界で通用しても社会では通用しない。
983 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:47:34.60 ID:9GdSR9hc.net] ここまで何人もの人がわからんと言ってるのは、その仕様を出した人間の素質が失格という事だろ。 それを何で庇うんだ? 庇う理由を説明してみろよ。 ここがバカばかりと思うならバカに解るように説明しろよな。 バカにわからせなければ、PLは務まらないよ。 と言うか、仕事は一般人としてるのに何をトチ狂ってるんだ? かなり精神を疑うな。
984 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:50:16.70 ID:Jb6joIEA.net] 教養のないやつに限ってブチ切れる
985 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 20:11:05.80 ID:KIX3RA0i.net] >>952 桃白白改めミスターポポ改めピラフ改めピッコロさん、くだらない出題はやめてください
986 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 20:11:56.63 ID:9a+COZnd.net] >>964 で、どんな問題なんだ? プログラミングできる仕様として出してくれよ。
987 名前: mailto:sage [2019/05/17(金) 20:21:17.94 ID:e+Q6zZPk.net] >>961 単射でないとなると、n に対して n % 10 を対応付けるとかもありになりますね… >>962 全射、単射、全単射とかは普通に使う単語ですよ、知らないのなら、これらの術語を含む数学の本…代数ですかね?解析ですかね?よくわからないや、を一冊読んでみるのがいいですね
988 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 20:46:06.10 ID:Jb6joIEA.net] >>966 出題者に言えよ >>967 %じゃ全射にも単射にもならんぞ 上で誰かが言ってた遇奇を入れ替えたりだとか f(n) = n - 1, f(0) = 0以外の任意の値 とかなんでもありだね。つまらんけど
989 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 20:48:13.95 ID:99nnd/tf.net] 顔射は普通に使う単語ですか?
990 名前: mailto:sage [2019/05/17(金) 20:51:49.11 ID:e+Q6zZPk.net] >>968 >%じゃ全射にも単射にもならんぞ そうですね、じゃ、割り算の商の整数部分「/」とかはどうでしょう
991 名前:デフォルトの名無しさん [2019/05/17(金) 21:06:32.38 ID:ut9H1r3U.net] >>969 はい。
992 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 21:09:38.99 ID:Jb6joIEA.net] >>970 そりゃなんでもありよ その場合は0の時だけ別の値を定義すれば良し
993 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 21:30:53.57 ID:0M7uQZeH.net] 920だが、ランク付けだと解が236531と解釈される可能性が有ったので避けた もっと簡単な書き方があるはそう思う、座圧+1とかでも伝わるだろうし……
994 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 22:36:31.21 ID:gcMK/Ofn.net] 数値のリストを入力し、値の小さい順に1から順位を付けて、 順位のリストを出力する。同じ値は同じ順位とする
995 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 22:47:54.41 ID:TGYryIO4.net] ほんとそれ ピラフ改めピッコロはさっさと自害しろ
996 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 23:20:58.53 ID:L8EHraRu.net] >>954 やっぱりどういう入出力の具体例になるのか分からない どういうことなんだよ
997 名前:デフォルトの名無しさん [2019/05/17(金) 23:47:24.37 ID:xYITnAAv.net] >>976 あくまで俺の推測だが 一例として、自分自身の数が3のとき自然数から3を除去して (1) 1, 2, 3, 4, 5, 6, ... ↓ (2) 1, 2, NULL, 4, 5, 6, ... NULLになった部分をなくすために4以降を左へシフトする (3) 1, 2, 4, 5, 6, 7, ... こんな感じで(1)の入力を(3)のような出力にする関数じゃないか? ただお題の条件としてはもっとゆるくて、入力はオーバーフローしない範囲の自然数、出力は「自分自身の数」を含まない自然数になれば何でもよくて、 定数関数でもハッシュ関数でもいいはず。 ただし、ある入力に対して必ず決まった値にならなければならず、同じ入力で呼び出すたびに出力が違うのはダメ。
998 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 00:15:42.42 ID:w6U4ewGf.net] >>977 何をアホな事を言ってるんだ? そんなの小学生に数を数えなさいと言ってるのと等しいぞ。 それのどこがプログラミングのお題なんだ? バカじゃないのか?
999 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 01:03:14.81 ID:bbC9YGRR.net] >>947 乙、見事。
1000 名前:デフォルトの名無しさん [2019/05/18(土) 01:57:48.06 ID:jjK+y75q.net] >>925 C# https://paiza.io/projects/OXVNCyMqgCySX7dUhwYh5Q
1001 名前:デフォルトの名無しさん [2019/05/18(土) 02:15:29.87 ID:jjK+y75q.net] >>925 Java https://paiza.io/projects/VRVZT8GnP7oLaOjx4B8LtQ?language=java
1002 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 07:46:37.95 ID:w6U4ewGf.net] >>925 Python ol = [-6, 3, 9, 5, 3, -7] print([ sorted(set(ol)).index(x)+1 for x in ol ] ) # [2, 3, 5, 4, 3, 1]
1003 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 10:52:55.70 ID:0WkfcTHM.net] >>976 1. すべての自然数nに対してf(n)≠n 2. 自然数m,nがm≠nを満たすときf(m)≠f(n) を満たすような関数f(n)を作れってこと 例えば 1. 入力が1のとき出力は1以外 2. 入力が1のときと2のときで出力が同じになってはダメ
1004 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 11:06:29.35 ID:spo9+l+a.net] >>983 2はいらんやろ 適当なコト抜かすなごかすぞぼけ
1005 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 11:10:21.66 ID:vBrA8iCH.net] 単射である必要はない。全射でさえあればよい
1006 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 12:08:52.78 ID:R97vL30T.net] 難しすぎて全くわからん… ハローワールド始めて間もない男にも分かる問題を出してくれぬか 優しく教えて欲しい
1007 名前:デフォルトの名無しさん [2019/05/18(土) 12:10:33.89 ID:HBaY+7WM.net] >>954 これがあれば1Mbyteのファイルが2byteになっちゃうのか?
1008 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 12:48:31.15 ID:PrlqGkYa.net] >>983 これのどこがプログラムの問題なのかさっぱりわからん。 小学生の練習問題か? 例えば自然数が 1から4までとした場合、f(n) の出力配列は f(1) 2,3,4 f(2) 1,3,4 f(3) 1,2,4 f(4) 1,2,3 と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?
1009 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 14:29:45.05 ID:5ij/PJHb.net] >>925 c https://ideone.com/JBbm04
1010 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 14:46:59.19 ID:0WkfcTHM.net] >>984 「隙間なく」を満たすには全射である必要があるけど、今回は定義域と終域が等しいから単射なら自動的に全射になる 全射の条件より単射の条件のほうが説明が楽だから許してくれ >>988 出題者じゃないから意図は分からんが、自然数を自身以外の自然数に変換するのが題意だからその例は間違っている f(n)が返すのは自然数であってベクトル(配列)ではない
1011 名前: mailto:sage [2019/05/18(土) 14:50:54.64 ID:To+6m73X.net] >>985 >単射である必要はない。全射でさえあればよい ??? >>983 2. 自然数m,nがm≠nを満たすときf(m)≠f(n) これって単射の定義そのものなのでは? だから単射である必要があるのでは? f が単射でない場合 f:a->z, f:b->z だった場合に a != b にもかかわらず f(a)=f(b) で 2 を満たさない
1012 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 14:57:54.95 ID:jXb4UL4k.net] def f(n) n + 1 end 一応>>983 は満たしてる
1013 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 15:16:22.17 ID:0WkfcTHM.net] >>990 追記 単射なら全射になるのは有限集合の場合だったわ お詫びにお題 入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ 入力例) 28 2002 216653 出力例) 2^2*7 2*7*11*13 216653
1014 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 15:45:24.30 ID:kdcwh9zo.net] >>893 Perl5 @a=([a, 0, 0], [b, 2, 0], [c, 4, 0], [d, 0, 2]); sub {$t[$_[2]][$_[1]] = $_[0]}->(@$_) for @a; @b = map{[map{$_ // ' '} @$_]} map{[@$_]} @t; undef $"; $s = join'', map{"@$_\n"} @b; print $s; 実行 ~ $ perl 13_888.pl a b c d
1015 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 15:57:05.04 ID:0itJzGag.net] ハローワールドなら任せて欲しい
1016 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 16:05:30.57 ID:5ij/PJHb.net] >>993 octave https://ideone.com/V5luwe
1017 名前:デフォルトの名無しさん [2019/05/18(土) 16:32:58.07 ID:BaKYgAyw.net] >>995 任せた。
1018 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:19:27.10 ID:4C+see96.net] >>995 はよ次スレをハローワールドしろや
1019 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:34:28.08 ID:BWmpW4IF.net] >>995 C89 https://ideone.com/IJb1ar
1020 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:35:58.58 ID:BWmpW4IF.net] >>998 次スレ https://mevius.5ch.net/test/read.cgi/tech/1558168409/
1021 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:56:26.22 ID:4C+see96.net] >>1000 乙。
1022 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 21:05:17.15 ID:sChpoVCN.net] >>993 Pharo/Squeak Smalltalk | fn | fn := [:n | | m bag | m := n. bag := Bag new. Integer primesUpTo: n sqrt + 1 do: [:prime | [m isDivisibleBy: prime] whileTrue: [m := m / (bag add: prime)] ]. m > 1 ifTrue: [bag add: m]. String streamContents: [:ss | bag valuesAndCounts associations sort do: [:assoc | ss nextPutAll: assoc key asString. assoc value > 1 ifTrue: [ss nextPutAll: '^', assoc value asString] ] separatedBy: [ss nextPut: $*] ] ]. fn value: 28. "=> '2^2*7' " fn value: 2002. "=> '2*7*11*13' " fn value: 216653. "=> '216653' "
1023 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 21:18:36.25 ID:PrlqGkYa.net] >>992 何か落とし穴があるとしたら、巨大数かなと思い、自然数を増やしてみると、python( iOSのpythonista , ideon )では配列数は 10**7 までだった。 大きな連続数の配列なんて作るバカはいないだろうし、ますます問題の意図がわからん。 一応書いてみたが、lambda 1行のみ ,(def でも何でも良いが) f978 = lambda x,n:[i for i in range(1,n+1) if i != x] xが自分の数字、n は自然数の数 https://ideone.com/iMUZ96 呼び出しは、f978(3,10**6) の様に 出力の配列数が大きくなると全ての数のPrint はアホらしいので、 10以上は配列数だけを出してる( これも n-1 だからアホらしいのだが ) out(1,4) out(2,4) out(4,4) out(10**2,10**7) stdout 個数 n= 4 自数 x= 1 自数以外の数= 3 [2, 3, 4] 個数 n= 4 自数 x= 2 自数以外の数= 3 [1, 3, 4] 個数 n= 4 自数 x= 4 自数以外の数= 3 [1, 2, 3] 個数 n= 10000000 自数 x= 100 自数以外の数= 9999999
1024 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 21:29:48.34 ID:PrlqGkYa.net] 問題をひねって、不連続のランダムの整数としてもほとんど変わらないだろ。
1025 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 21:31:36.43 ID:gB6Wr8nG.net] (´・_・`)
1026 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 104日 10時間 9分 43秒
1027 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています