1 名前:デフォルトの名無しさん mailto:sage [2019/07/28(日) 19:39:57.54 ID:832c/ukY.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/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part14 mevius.5ch.net/test/read.cgi/tech/1558168409/
892 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:16:30.14 ID:FFSD3o8O.net] >>858 octave https://ideone.com/d5NTlm >>858 ruby https://ideone.com/R93NWY >>858 ocaml https://ideone.com/RTlP5X
893 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:21:47.70 ID:+YWUVQNg.net] >>858 https://ideone.com/7vsaej C++。前のヤツに関数足した。 オーダーが倍になったが改修だとこんなもんだ。
894 名前:蟻人間 mailto:age [2019/10/26(土) 22:38:02.04 ID:Q5f3
] [ここ壊れてます]
895 名前:+aYX.net mailto: お題: あるフォルダ(例えばC:\Windows)についてフォルダの階層構造を木構造(tree)を表すテキストとして出力せよ。 インデントでもいい。罫線を使ってもいい。 [] [ここ壊れてます]
896 名前:デフォルトの名無しさん [2019/10/26(土) 22:38:38.76 ID:T/HAOzs9.net] tree
897 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:46:14.97 ID:a/Ne+y1n.net] 完
898 名前:蟻人間 mailto:age [2019/10/26(土) 23:33:25.57 ID:0HLEEd3+.net] 熟
899 名前:デフォルトの名無しさん [2019/10/26(土) 23:36:46.58 ID:Up+ppHZL.net] ト
900 名前:デフォルトの名無しさん [2019/10/26(土) 23:56:14.95 ID:mT+r0MIT.net] マ
901 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 01:42:02 ID:98GTxTrH.net] ホ
902 名前:デフォルトの名無しさん [2019/10/27(日) 01:48:49 ID:hTxWtEZY.net] ー
903 名前:デフォルトの名無しさん [2019/10/27(日) 02:14:55 ID:qZK0Jir5.net] ク
904 名前:デフォルトの名無しさん [2019/10/27(日) 12:00:30.73 ID:czi1K5eV.net] >>858-859 PowerShell $a = 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 $b = 0, 0 $i = 0, 0 $odd = {$_ % 2} $b[0] = @($a |? {!(&$odd)} |% {$_ / 2} | sort -descending) $b[1] = @($a |? {&$odd} | sort) $c = $a |% {$b[(&$odd)][$i[(&$odd)]++]} "入力: [" + ($a -join ", ") + "]" "出力: [" + ($c -join ", ") + "]"
905 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 21:46:52.77 ID:JAeIkS65.net] >>858 c https://ideone.com/SwF6Zp
906 名前:デフォルトの名無しさん [2019/10/28(月) 14:33:15.95 ID:kjzN6NI8.net] >>858-859 Haxe で、 https://try.haxe.org/#Bb813
907 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 21:54:57.80 ID:UPe4TNxT.net] Common Lisp >>832 (let* ((l '(6 5 4 3 2 1)) (odds (sort (remove-if-not #'oddp l) #'<))) (mapcar (lambda (x) (if (oddp x) (pop odds) x)) l)) >>858-859 (let* ((l '(0 9 8 4 6 5 1 2 7 3)) (odds (sort (remove-if-not #'oddp l) #'<)) (evens (sort (remove-if-not #'evenp l) #'>))) (mapcar (lambda (x) (if (oddp x) (pop odds) (/ (pop evens) 2))) l))
908 名前:蟻人間 mailto:sage [2019/10/28(月) 22:20:53.11 ID:9dus/Ppg.net] Linuxにこんなコマンドあんのかよお? https://www.adminweb.jp/command/file/index2.html
909 名前:デフォルトの名無しさん [2019/10/28(月) 22:33:53.27 ID:cHOU2eIF.net] >>871 Powershell。標準のtreeコマンドと違い、システム/隠しフォルダも表示する。 バージョンによってはプロンプト画面に貼り付けると罫線文字が消えてしまうので、 その場合はps1ファイルに保存して実行するか、PowerShell ISEに貼り付ける。 function MyTree($path, $branch) { if (!$branch) {$path} $dir = @(ls -Force -PSPath $path -EV e -EA SilentlyContinue |? {$_.PSIsContainer}) if ($e) {$branch + "::アクセス不可"} if (!$dir) {return} 0..($last = $dir.Count - 1) |% { $branch + ("├─", "└─")[$_ -eq $last] + $dir[$_].Name MyTree $dir[$_].FullName ($branch + ("│ ", " ")[$_ -eq $last]) } } MyTree "C:\Windows"
910 名前:デフォルトの名無しさん mailto:age [2019/10/28(月) 23:08:40.85 ID:F/Wh8ChL.net] >>884 100年前からあるよ
911 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 23:13:15.22 ID:uBs49FGp.net] 色わけもされているのが良くあり、たいへん見やすい
912 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2019/10/29(火) 01:01:17 ID:CdNgVa0z.net] お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。
913 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 08:42:30.06 ID:CowX2GWO.net] >>858-859 Ruby で、 input_ary = [ 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 ] even_ary, odd_ary = input_ary.partition( &:even? ) # 偶数・奇数配列 odd_ary.sort! # 奇数要素をソート # 偶数要素は、2で割って降順ソート even_ary.map! { |num| num / 2 } even_ary.sort! even_ary.reverse! p results = input_ary.map { |num| num.even? ? e
914 名前:ven_ary.shift : odd_ary.shift } # 偶数・奇数 [] [ここ壊れてます]
915 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 11:11:57.21 ID:8fHMSau6.net] やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな
916 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 18:19:47.29 ID:BWleRN1J.net] 設定で白い画面にすると心が和らぐかも知れない
917 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 18:42:27.40 ID:plxF2L4V.net] 目がクラッシュ
918 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 21:04:32.22 ID:OodB9NB8.net] 日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください
919 名前:デフォルトの名無しさん [2019/10/29(火) 21:19:03.11 ID:zdS42c06.net] 式波だろオッサン
920 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 22:05:19.10 ID:xXVEd4hK.net] >>893 0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB
921 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 22:18:10.10 ID:VtVeF5OO.net] >>893 firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB
922 名前:デフォルトの名無しさん mailto:sage [2019/10/30(水) 00:58:38.18 ID:VQ6oDJg7.net] pingファイルわらた
923 名前:デフォルトの名無しさん mailto:sage [2019/10/30(水) 04:42:26 ID:LML0ucqT.net] アイが隠っている
924 名前:デフォルトの名無しさん [2019/11/01(金) 22:31:20.50 ID:5BPqTvCN.net] お題: 3^3^3^... のような反復指数を10の反復指数に近似するプログラムを作成しなさい。 入力されるそれぞれの指数は1より大きい実数とします。 計算後の最も右の指数xは 1<x≦10 としてください。 例: 3^3^3^3^3^3 = 10^10^10^10^10^1.099 2.718^2.718^2.718^2.718^7.705 = 10^10^10^10^2.983 (5.0e+50)^(6.0e+60)^(7.0e+70)^(8.0e+80)^(9.0e+90) = 10^10^10^10^10^10^1.968 1.1^1.1^1.1^1.1^1.1 = 1.112
925 名前:デフォルトの名無しさん [2019/11/01(金) 23:58:48.16 ID:Yq8XY12s.net] a^n = b^x を解く問題でいいじゃん
926 名前:蟻人間 mailto:sage [2019/11/02(土) 13:25:33.62 ID:OyXmLdGY.net] >>899 演算子^は、左結合、それとも右結合?
927 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 14:21:37.47 ID:ZDjpW1U6.net] >>901 右結合です a^b^c => a^(b^c) 無論 ^はべき乗の演算子です。
928 名前:蟻人間 mailto:sage [2019/11/02(土) 16:24:06.83 ID:3ZL9CX49.net] 10^1〜10^10で二分探索を繰り返しかな?
929 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 17:38:05.70 ID:q/Mbih9P.net] >>899 https://ideone.com/0Xqylu C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる? 三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。
930 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 18:12:47.84 ID:41WzS7Cc.net] >>904 コード一切読んでないけどお前のは間違ってると思うよ
931 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 18:39:57.30 ID:q/Mbih9P.net] >>905 意味が解らん。 まぁ、いいけど。
932 名前:デフォルトの名無しさん [2019/11/02(土) 19:40:47.26 ID:0iFQzt0L.net] >>899 PowerShellで最初の2例だけ。 function lg($x) {[Math]::log10($x)} function pow($x, $y) {[Math]::pow($x, $y)} function tetrconv($a) { $k = lg ((pow $a[-2] $a[-1]) * (lg $a[-3]) + (lg (lg $a[-4]))) $b = @(10) * ($a.count - 1) + [Math]::round($k, 3) ($a -join "^") + " = " + ($b -join "^") } tetrconv (@(3) * 6) tetrconv (@(2.718) * 4 + 7.705)
933 名前:デフォルトの名無しさん [2019/11/02(土) 21:32:51.49 ID:0iFQzt0L.net] >>899 最後の2例にも対応した。 function lg($x) {[Math]::log10($x)} function pow($x, $y) {[Math]::pow($x, $y)} function tetrconv($a) { $k = $a[-1] foreach ($i in -2..-$a.count) { if ($k -gt 10) {break} $k = pow $a[$i] $k } if ($i - 1 -ge -$a.count) {$k *= lg $a[$i - 1]} if ($i - 2 -ge -$a.count) {$k += lg (lg $a[$i - 2])} while ($k -gt 10) { $k = lg $k $i++ } if ($i += $a.count) {$i++} $b = @(10) * $i + [Math]::round($k, 3) ($a -join "^") + " = " + ($b -join "^") } tetrconv (@(3) * 6) tetrconv (@(2.718) * 4 + 7.705) tetrconv (5.0e50, 6.0e60, 7.0e70, 8.0e80, 9.0e90) tetrconv (@(1.1) * 5)
934 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 00:32:05.95 ID:ORedds2P.net] 偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。 1まで出力して完了です。 単純だけど、どこまで短く書ける?
935 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 00:36:48.03 ID:ZBjdhNSI.net] >>909 コラッツ予想はもうおなかいっぱいだわ
936 名前:デフォルトの名無しさん [2019/11/03(日) 12:57:12.82 ID:ax9Okew1.net] コラッて怒れば良いんじゃないかな
937 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 13:57:01.56 ID:mZU6qafh.net] >>909 https://ideone.com/JsckiH C++。ショートコーダじゃないから短めに書いて、24行。
938 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 15:49:54.73 ID:kVBOYkVG.net] >>909 C# https://ideone.com/unj3KD 短く書こうとする気すらないw
939 名前:デフォルトの名無しさん [2019/11/03(日) 18:50:15.71 ID:6KV8hNPc.net] 縦と横のサイズが与えられるのでアスペクト比を求めよ
940 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 20:03:15.96 ID:PuBKYFzC.net] 比は整数のみ?
941 名前:デフォルトの名無しさん [2019/11/03(日) 21:50:08.17 ID:rJL4Vpjg.net] >>899 別の入力値 (例えば@(1.7) * 5や@(1.5) * 14) を試してみたら出力値がおかしかったので修正。 function lg($x) {[Math]::log10($x)} function pow($x, $y) {[Math]::pow($x, $y)} function tetrconv($a) { $k = 1 foreach ($i in ($a.count - 1)..0) { $k = pow $a[$i] $k if ($k -gt 20) {break} } if ($i -ge 1) {$k *= lg $a[$i - 1]} if ($i -ge 2) {$k += lg (lg $a[$i - 2])} while ($k -gt 10) { $k = lg $k $i++ } $b = @(10) * $i + [Math]::round($k, 3) ($a -join "^") + " = " + ($b -join "^") } tetrconv (@(3) * 6) tetrconv (@(2.718) * 4 + 7.705) tetrconv (5.0e+50, 6.0e+60, 7.0e+70, 8.0e+80, 9.0e+90) tetrconv (@(1.1) * 5)
942 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 07:30:04.95 ID:T8mOMaiU.net] お題: m から n までの整数のうち、桁数字の和が s になるものをすべて列挙する 関数を書け。 具体的に: 1 から 100 までの整数のうち、桁数字の和が 12 になるものは、 39、48、57、66、75、84、93 である。 関数の実行例: f(1, 100, 12) → [39, 48, 57, 66, 75, 84, 93]
943 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 10:20:33.30 ID:xKwnPcPn.net] 数列和好きだね これで何回目だ? 数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか
944 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 10:51:39.60 ID:FzGFhotx.net] >>917 perl なんの捻りもない use List::Util qw(sum); print join",",(grep{sum(split//)==12}(1..100));
945 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 12:37:41.26 ID:7wrIz40y.net] >>918 数列和? いきなりオレオレ用語で語られても困るw
946 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 14:30:03.94 ID:obVJwnOe.net] >>917 https://ideone.com/pWqVPQ C++。割といつも通りという感じ。
947 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 19:33:38.63 ID:xKwnPcPn.net] タイポ 数字和 >744 などにでてくるやつ
948 名前:デフォルトの名無しさん [2019/11/04(月) 19:35:11.53 ID:6jo2x8my.net] >>917 PowerShellで単純に書けば function f($a, $b, $s) {$a..$b |? {(iex ([char[]]"$_" -join "+")) -eq $s}} f 1 100 12 だが、桁が増えると遅すぎるので、少し工夫すると、 $M = [Math] function g($s, $n) { if ($n -eq 1) {return $s} $d = $M::pow(10, $n - 1) for ($i = $M::max(0, $s - 9 * ($n - 1)); $i -le $M::min(9, $s); $i++) { g ($s - $i) ($n - 1) |% {$d * $i + $_} } } function f($a, $b, $s) { g $s ($M::ceiling($M::log10($b))) |? {$_ -ge $a -and $_ -le $b} } f 1 10000000 12
949 名前:デフォルトの名無しさん [2019/11/04(月) 19:36:29.94 ID:6jo2x8my.net] 7桁まではまあまあだが8桁以上だと遅いので、Cで書き換えると9桁でも瞬時に終わった。 (出力をファイルにリダイレクトした場合)。Visual Studioでは動作するが、 ideone.comでは変なコンパイラエラーが発生する。 #include <stdio.h> #include <stdlib.h> #include <math.h> void g(int a, int b, int s, int n, int t, int x) { int d, i; if (n == 0) { if (t == s && x >= a && x <= b) printf("%d\n", x); } else { for (d = i = 1; i < n; i++) d *= 10; for (i = max(0, (s - t) - 9 * (n - 1)); i <= min(9, s - t); i++) { g(a, b, s, n - 1, t + i, d * i + x); } } } void f(int a, int b, int s) { g(a, b, s, ceil(log10(b)), 0, 0); } int main(void) { f(1, 1000000000, 12); return 0; }
950 名前:デフォルトの名無しさん [2019/11/05(火) 01:53:14.53 ID:gnRgB6kn.net] >>909 Kotlin https://paiza.io/projects/P-_x81NFh0Pq-Fu6FgHHQg 肝心な部分は短いよな・・・
951 名前:デフォルトの名無しさん [2019/11/05(火) 20:14:32.31 ID:e+hxAdfR.net] お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。
952 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 20:40:24.45 ID:3L71zPwH.net] >>926 全探索になるから辛い。 X以上になったら打ち切りとかできないし、枝がX個以上なら切るとかもできない。
953 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 21:02:19.16 ID:3L71zPwH.net] 枝じゃなかった。支点だった。
954 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 22:48:36.11 ID:4YhU7TUN.net] >>917 Common Lisp (defun f (m n s) (print (loop for i from m to n if (= s (loop for (j k) = (multiple-value-list (floor i 10)) then (multiple-value-list (floor j 10)) sum k until (zerop j))) collect i))) (f 1 100 12)
955 名前:デフォルトの名無しさん [2019/11/07(木) 19:42:24.48 ID:wJeAdMrJ.net] >>917 Kotlin https://paiza.io/projects/sCUo-pxCCvYRSj_y9LA9Qg ひねりなし。
956 名前:デフォルトの名無しさん [2019/11/07(木) 22:47:28.91 ID:Iq2Mem9/.net] >>924 を読み返してみたら、1変数減らしてすっきりさせられることに気付いた。 #include <stdio.h> #include <stdlib.h> #include <math.h> void g(int a, int b, int r, int n, int x) { int d, i; if (n == 0) { if (r == 0 && x >= a && x <= b) printf("%d\n", x); } else { d = pow(10, n - 1); for (i = max(0, r - 9 * (n - 1)); i <= min(9, r); i++) { g(a, b, r - i, n - 1, d * i + x); } } } void f(int a, int b, int s) { g(a, b, s, ceil(log10(b)), 0); } int main(void) { f(1, 1000000000, 12); return 0; }
957 名前:デフォルトの名無しさん [2019/11/10(日) 21:37:46.78 ID:OK7x/7YO.net] 文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、 コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、 824F..8258 FF10..FF19 01234566789 となる。なお、シフトJISには機種依存文字を含んで構わない。
958 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 21:57:20.43 ID:uvNl/
] [ここ壊れてます]
959 名前:eaa.net mailto: >>932 何を以って同じ文字とみなすのか定義しろ [] [ここ壊れてます]
960 名前:デフォルトの名無しさん [2019/11/10(日) 22:09:53.56 ID:OK7x/7YO.net] >>933 それも機種依存で構わない。規格上の厳密さにこだわる必要はない。
961 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 23:26:27.72 ID:EkgZPBq1.net] >>932 Java https://ideone.com/GLDM9a これでいいのけ?
962 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 00:44:57.23 ID:VmjibYtT.net] バイナリファイルの高速コンペア
963 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 18:33:43.09 ID:KK646YuM.net] >>936 メモリに二つとも呼んでfor回す。意外は難しい気がする。
964 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 19:03:14.97 ID:KK646YuM.net] >>917 https://ideone.com/eVgFHk C++。一回解いたけど再考して配列一個潰した。 5秒で5000万位解けそう??
965 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 22:23:08.18 ID:ySONYK72.net] >>936 単に一致不一致だけわかればいいのか? とか コンペアするファイルは2つだけなのか? とか 単に2つのファイルの一致不一致を見るだけなら基本>>937 の言う通りだと思う
966 名前:デフォルトの名無しさん [2019/11/11(月) 22:37:18.90 ID:hxYpUSvR.net] >>935 正解。Windowsには機種依存文字 8754..875D 2160..2169 TUVWXYZ[\] などもあるが、機種依存文字を含んでも構わないという出題だったので、 含まなくてもOK。
967 名前:デフォルトの名無しさん [2019/11/12(火) 05:31:26.51 ID:oeG9wEYf.net] お題 スレ立てるまでもない質問はここで 152匹目 https://mevius.5ch.net/test/read.cgi/tech/1573214616/ の3番の問題を勝手に解く
968 名前:デフォルトの名無しさん mailto:sage [2019/11/12(火) 12:11:13.05 ID:BJKXTHw+.net] >>940 Java https://ideone.com/611DD5 >>935 からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?) Shift-JISだと古いやつなんやな
969 名前:デフォルトの名無しさん [2019/11/12(火) 21:37:48.42 ID:+gLjUv3x.net] >>941 処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。 https://ideone.com/cRvth9 効率が求められるなら、Cで二分探索の変形版だな。 https://ideone.com/FXQQjq
970 名前:デフォルトの名無しさん [2019/11/12(火) 22:38:04.89 ID:SyoIDDRx.net] windowsのロングパス対応の重複ファイル検索するコードない?
971 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 04:07:44 ID:eXHRJefh.net] >>941 Pharo/Squeak Smalltalk | fn | fn := [:m | | table | table := #(98 100 198 200 250 298). table detectMin: [:x | (x - m) abs] ]. fn value: 50. "=> 98 " fn value: 195. "=> 198 "
972 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 14:07:45.70 ID:9sxFrKBI.net] >>941 https://ideone.com/wJ8lPk C++。多分動いてるけど、境界線系のエラーハンドリングは適当。
973 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 15:30:27.12 ID:EqcpRCSG.net] どう考えても線形探索の方が簡単で速い 1回だけなら
974 名前:デフォルトの名無しさん [2019/11/13(水) 18:24:57.67 ID:utJBi2wY.net] >>941 Lua function f(a, x) local res = a[1] for i = 2, #a do if math.abs(res - x) > math.abs(a[i] - x) then res = a[i] end end return res end
975 名前: mailto:sage [2019/11/13(水) 20:03:11.45 ID:ESFhNQze.net] >>944 https://mevius.5ch.net/test/read.cgi/tech/1434079972/53
976 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 20:28:42.98 ID:6mLuLK4e.net] >>941 octave https://ideone.com/kbVTGp
977 名前:デフォルトの名無しさん [2019/11/13(水) 20:40:25.65 ID:H1DP2m/6.net] >>944 >>1002
978 名前:デフォルトの名無しさん [2019/11/13(水) 20:48:13.08 ID:CMaH4qd1.net] >>941 C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。 https://ideone.com/KJ134u この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で 速そうだな。 https://ideone.com/ef553N
979 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:39:03.09 ID:Fqkv69gY.net] なんで順番に5回も比較してんの?
980 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:47:59.14 ID:kE3A4AyF.net] 10回比較するわけにはいかないからでしょ
981 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 21:53:11.46 ID:RzCRvdkP.net] まずは199との比較では? あとは範囲を絞ったテーブルとか int全てをカバーするテーブルも intが32bitな64bit環境なら一応は可能
982 名前:蟻人間 mailto:sage [2019/11/13(水) 22:09:59.79 ID:SHPlbPC2.net] お題: 自動塗り絵。 白地に黒い線で図形が描かれているモノクロ画像が与えられる。 白い領域をそれぞれ適当な単色で塗りつぶせ。可能ならOpenCVを使ってもいい。
983 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 22:51:59.05 ID:RzCRvdkP.net] ペイントブラシ + スクリプト で出来そう
984 名前:デフォルトの名無しさん [2019/11/13(水) 23:03:48.70 ID:CMaH4qd1.net] >>955 「一番速い」ではなく「一番簡単で速い」だからね。可読性とかバグの 混入しにくさとかも考えると、順番に5回比較するのが一番良いだろ。 特に https://mevius.2ch.net/test/read.cgi/tech/1573214616/3 への 回答としては、最も適している。
985 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 23:40:49.81 ID:RzCRvdkP.net] 一番速くもないし一番簡単でもない 一番「簡単で速い」? 簡単と速いは相反するので一番なんて無い
986 名前:デフォルトの名無しさん mailto:sage [2019/11/13(水) 23:42:10.65 ID:RzCRvdkP.net] 凡人が安易に「一番」とか言わない方が良いよ
987 名前:デフォルトの名無しさん [2019/11/14(木) 01:06:49.29 ID:4AhPUV/Y.net] 俺が一番
988 名前:デフォルトの名無しさん [2019/11/14(木) 06:15:22.98 ID:BnXMw1SX.net] >>941 Io f:=method(a,x, a map(v,list((v-x)abs,v))min last ) d:=list(98,100,198,200,298) f(d,120) println 実行結果 100
989 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 09:31:40.70 ID:baSi3t2K.net] 一番簡単で速いってなんだよ 一番簡単かつ一番速いなら一番速いって言えばいいだけだろ ってC++の人かよ
990 名前:デフォルトの名無しさん mailto:age [2019/11/14(木) 12:32:18.21 ID:WVE0j82D.net] 一番に過剰反応してるみなさんwww
991 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 13:14:51.59 ID:/NpdgKVA.net] 一番とか最も適しているとか 頭が悪いやつが良く言うセリフ
992 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 13:27:39.39 ID:isT1FYJS.net] それな あと「頭悪いやつがよく言う」ってのも頭悪いやつよく言うセリフだわ