プログラミングのお題スレ Part15at TECH
プログラミングのお題スレ Part15 - 暇つぶし2ch900:デフォルトの名無しさん
19/10/26 23:56:14.95 mT+r0MIT.net


901:デフォルトの名無しさん
19/10/27 01:42:02 98GTxTrH.net


902:デフォルトの名無しさん
19/10/27 01:48:49 hTxWtEZY.net


903:デフォルトの名無しさん
19/10/27 02:14:55 qZK0Jir5.net


904:デフォルトの名無しさん
19/10/27 12:00:30.73 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:デフォルトの名無しさん
19/10/27 21:46:52.77 JAeIkS65.net
>>858 c
URLリンク(ideone.com)

906:デフォルトの名無しさん
19/10/28 14:33:15.95 kjzN6NI8.net
>>858-859
Haxe で、
URLリンク(try.haxe.org)

907:デフォルトの名無しさん
19/10/28 21:54:57.80 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:蟻人間
19/10/28 22:20:53.11 9dus/Ppg.net
Linuxにこんなコマンドあんのかよお?
URLリンク(www.adminweb.jp)

909:デフォルトの名無しさん
19/10/28 22:33:53.27 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:デフォルトの名無しさん
19/10/28 23:08:40.85 F/Wh8ChL.net
>>884
100年前からあるよ

911:デフォルトの名無しさん
19/10/28 23:13:15.22 uBs49FGp.net
色わけもされているのが良くあり、たいへん見やすい

912:蟻人間 ◆T6xkBnTXz7B0
19/10/29 01:01:17 CdNgVa0z.net
お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。

913:デフォルトの名無しさん
19/10/29 08:42:30.06 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:デフォルトの名無しさん
19/10/29 11:11:57.21 8fHMSau6.net
やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな

916:デフォルトの名無しさん
19/10/29 18:19:47.29 BWleRN1J.net
設定で白い画面にすると心が和らぐかも知れない

917:デフォルトの名無しさん
19/10/29 18:42:27.40 plxF2L4V.net
目がクラッシュ

918:デフォルトの名無しさん
19/10/29 21:04:32.22 OodB9NB8.net
日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください

919:デフォルトの名無しさん
19/10/29 21:19:03.11 zdS42c06.net
式波だろオッサン

920:デフォルトの名無しさん
19/10/29 22:05:19.10 xXVEd4hK.net
>>893
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB

921:デフォルトの名無しさん
19/10/29 22:18:10.10 VtVeF5OO.net
>>893
firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB

922:デフォルトの名無しさん
19/10/30 00:58:38.18 VQ6oDJg7.net
pingファイルわらた

923:デフォルトの名無しさん
19/10/30 04:42:26 LML0ucqT.net
アイが隠っている

924:デフォルトの名無しさん
19/11/01 22:31:20.50 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:デフォルトの名無しさん
19/11/01 23:58:48.16 Yq8XY12s.net
a^n = b^x を解く問題でいいじゃん

926:蟻人間
19/11/02 13:25:33.62 OyXmLdGY.net
>>899
演算子^は、左結合、それとも右結合?

927:デフォルトの名無しさん
19/11/02 14:21:37.47 ZDjpW1U6.net
>>901
右結合です
a^b^c => a^(b^c)
無論 ^はべき乗の演算子です。

928:蟻人間
19/11/02 16:24:06.83 3ZL9CX49.net
10^1~10^10で二分探索を繰り返しかな?

929:デフォルトの名無しさん
19/11/02 17:38:05.70 q/Mbih9P.net
>>899
URLリンク(ideone.com)
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。

930:デフォルトの名無しさん
19/11/02 18:12:47.84 41WzS7Cc.net
>>904
コード一切読んでないけどお前のは間違ってると思うよ

931:デフォルトの名無しさん
19/11/02 18:39:57.30 q/Mbih9P.net
>>905
意味が解らん。
まぁ、いいけど。

932:デフォルトの名無しさん
19/11/02 19:40:47.26 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:デフォルトの名無しさん
19/11/02 21:32:51.49 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:デフォルトの名無しさん
19/11/03 00:32:05.95 ORedds2P.net
偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。
1まで出力して完了です。
単純だけど、どこまで短く書ける?

935:デフォルトの名無しさん
19/11/03 00:36:48.03 ZBjdhNSI.net
>>909
コラッツ予想はもうおなかいっぱいだわ

936:デフォルトの名無しさん
19/11/03 12:57:12.82 ax9Okew1.net
コラッて怒れば良いんじゃないかな

937:デフォルトの名無しさん
19/11/03 13:57:01.56 mZU6qafh.net
>>909
URLリンク(ideone.com)
C++。ショートコーダじゃないから短めに書いて、24行。

938:デフォルトの名無しさん
19/11/03 15:49:54.73 kVBOYkVG.net
>>909
C#
URLリンク(ideone.com)
短く書こうとする気すらないw

939:デフォルトの名無しさん
19/11/03 18:50:15.71 6KV8hNPc.net
縦と横のサイズが与えられるのでアスペクト比を求めよ

940:デフォルトの名無しさん
19/11/03 20:03:15.96 PuBKYFzC.net
比は整数のみ?

941:デフォルトの名無しさん
19/11/03 21:50:08.17 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:デフォルトの名無しさん
19/11/04 07:30:04.95 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:デフォルトの名無しさん
19/11/04 10:20:33.30 xKwnPcPn.net
数列和好きだね これで何回目だ?
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか

944:デフォルトの名無しさん
19/11/04 10:51:39.60 FzGFhotx.net
>>917 perl
なんの捻りもない
use List::Util qw(sum);
print join",",(grep{sum(split//)==12}(1..100));

945:デフォルトの名無しさん
19/11/04 12:37:41.26 7wrIz40y.net
>>918
数列和?
いきなりオレオレ用語で語られても困るw

946:デフォルトの名無しさん
19/11/04 14:30:03.94 obVJwnOe.net
>>917
URLリンク(ideone.com)
C++。割といつも通りという感じ。

947:デフォルトの名無しさん
19/11/04 19:33:38.63 xKwnPcPn.net
タイポ
数字和 >744 などにでてくるやつ

948:デフォルトの名無しさん
19/11/04 19:35:11.53 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:デフォルトの名無しさん
19/11/04 19:36:29.94 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:デフォルトの名無しさん
19/11/05 01:53:14.53 gnRgB6kn.net
>>909
Kotlin
URLリンク(paiza.io)
肝心な部分は短いよな・・・

951:デフォルトの名無しさん
19/11/05 20:14:32.31 e+hxAdfR.net
お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。

952:デフォルトの名無しさん
19/11/05 20:40:24.45 3L71zPwH.net
>>926
全探索になるから辛い。
X以上になったら打ち切りとかできないし、枝がX個以上なら切るとかもできない。

953:デフォルトの名無しさん
19/11/05 21:02:19.16 3L71zPwH.net
枝じゃなかった。支点だった。

954:デフォルトの名無しさん
19/11/05 22:48:36.11 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:デフォルトの名無しさん
19/11/07 19:42:24.48 wJeAdMrJ.net
>>917
Kotlin
URLリンク(paiza.io)
ひねりなし。

956:デフォルトの名無しさん
19/11/07 22:47:28.91 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:デフォルトの名無しさん
19/11/10 21:37:46.78 OK7x/7YO.net
文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、
824F..8258
FF10..FF19
01234566789
となる。なお、シフトJISには機種依存文字を含んで構わない。

958:デフォルトの名無しさん
19/11/10 21:57:20.43 uvNl/


959:eaa.net



960:デフォルトの名無しさん
19/11/10 22:09:53.56 OK7x/7YO.net
>>933
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。

961:デフォルトの名無しさん
19/11/10 23:26:27.72 EkgZPBq1.net
>>932 Java
URLリンク(ideone.com)
これでいいのけ?

962:デフォルトの名無しさん
19/11/11 00:44:57.23 VmjibYtT.net
バイナリファイルの高速コンペア

963:デフォルトの名無しさん
19/11/11 18:33:43.09 KK646YuM.net
>>936
メモリに二つとも呼んでfor回す。意外は難しい気がする。

964:デフォルトの名無しさん
19/11/11 19:03:14.97 KK646YuM.net
>>917
URLリンク(ideone.com)
C++。一回解いたけど再考して配列一個潰した。
5秒で5000万位解けそう??

965:デフォルトの名無しさん
19/11/11 22:23:08.18 ySONYK72.net
>>936
単に一致不一致だけわかればいいのか?
とか
コンペアするファイルは2つだけなのか?
とか
単に2つのファイルの一致不一致を見るだけなら基本>>937の言う通りだと思う

966:デフォルトの名無しさん
19/11/11 22:37:18.90 hxYpUSvR.net
>>935
正解。Windowsには機種依存文字
8754..875D
2160..2169
ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ
などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。

967:デフォルトの名無しさん
19/11/12 05:31:26.51 oeG9wEYf.net
お題
スレ立てるまでもない質問はここで 152匹目
スレリンク(tech板)
の3番の問題を勝手に解く

968:デフォルトの名無しさん
19/11/12 12:11:13.05 BJKXTHw+.net
>>940 Java
URLリンク(ideone.com)
>>935からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?)
Shift-JISだと古いやつなんやな

969:デフォルトの名無しさん
19/11/12 21:37:48.42 +gLjUv3x.net
>>941
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
URLリンク(ideone.com)
効率が求められるなら、Cで二分探索の変形版だな。
URLリンク(ideone.com)

970:デフォルトの名無しさん
19/11/12 22:38:04.89 SyoIDDRx.net
windowsのロングパス対応の重複ファイル検索するコードない?

971:デフォルトの名無しさん
19/11/13 04:07:44 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:デフォルトの名無しさん
19/11/13 14:07:45.70 9sxFrKBI.net
>>941
URLリンク(ideone.com)
C++。多分動いてるけど、境界線系のエラーハンドリングは適当。

973:デフォルトの名無しさん
19/11/13 15:30:27.12 EqcpRCSG.net
どう考えても線形探索の方が簡単で速い
1回だけなら

974:デフォルトの名無しさん
19/11/13 18:24:57.67 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:
19/11/13 20:03:11.45 ESFhNQze.net
>>944
スレリンク(tech板:53番)

976:デフォルトの名無しさん
19/11/13 20:28:42.98 6mLuLK4e.net
>>941 octave
URLリンク(ideone.com)

977:デフォルトの名無しさん
19/11/13 20:40:25.65 H1DP2m/6.net
>>944
>>1002

978:デフォルトの名無しさん
19/11/13 20:48:13.08 CMaH4qd1.net
>>941
C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。
URLリンク(ideone.com)
この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で
速そうだな。
URLリンク(ideone.com)

979:デフォルトの名無しさん
19/11/13 21:39:03.09 Fqkv69gY.net
なんで順番に5回も比較してんの?

980:デフォルトの名無しさん
19/11/13 21:47:59.14 kE3A4AyF.net
10回比較するわけにはいかないからでしょ

981:デフォルトの名無しさん
19/11/13 21:53:11.46 RzCRvdkP.net
まずは199との比較では?
あとは範囲を絞ったテーブルとか
int全てをカバーするテーブルも
intが32bitな64bit環境なら一応は可能

982:蟻人間
19/11/13 22:09:59.79 SHPlbPC2.net
お題: 自動塗り絵。
白地に黒い線で図形が描かれているモノクロ画像が与えられる。
白い領域をそれぞれ適当な単色で塗りつぶせ。可能ならOpenCVを使ってもいい。

983:デフォルトの名無しさん
19/11/13 22:51:59.05 RzCRvdkP.net
ペイントブラシ + スクリプト
で出来そう

984:デフォルトの名無しさん
19/11/13 23:03:48.70 CMaH4qd1.net
>>955
「一番速い」ではなく「一番簡単で速い」だからね。可読性とかバグの
混入しにくさとかも考えると、順番に5回比較するのが一番良いだろ。
特に URLリンク(mevius.2ch.net) への
回答としては、最も適している。

985:デフォルトの名無しさん
19/11/13 23:40:49.81 RzCRvdkP.net
一番速くもないし一番簡単でもない
一番「簡単で速い」?
簡単と速いは相反するので一番なんて無い

986:デフォルトの名無しさん
19/11/13 23:42:10.65 RzCRvdkP.net
凡人が安易に「一番」とか言わない方が良いよ

987:デフォルトの名無しさん
19/11/14 01:06:49.29 4AhPUV/Y.net
俺が一番

988:デフォルトの名無しさん
19/11/14 06:15:22.98 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:デフォルトの名無しさん
19/11/14 09:31:40.70 baSi3t2K.net
一番簡単で速いってなんだよ
一番簡単かつ一番速いなら一番速いって言えばいいだけだろ
ってC++の人かよ

990:デフォルトの名無しさん
19/11/14 12:32:18.21 WVE0j82D.net
一番に過剰反応してるみなさんwww

991:デフォルトの名無しさん
19/11/14 13:14:51.59 /NpdgKVA.net
一番とか最も適しているとか
頭が悪いやつが良く言うセリフ

992:デフォルトの名無しさん
19/11/14 13:27:39.39 isT1FYJS.net
それな
あと「頭悪いやつがよく言う」ってのも頭悪いやつよく言うセリフだわ

993:デフォルトの名無しさん
19/11/14 15:14:06.76 1CVvHcAw.net
>>941 python
URLリンク(ideone.com)

994:デフォルトの名無しさん
19/11/14 16:23:41.28 bZ2yXVXr.net
>>963
俺、よくmakehoge書いてる人だけど、その二分探査書いた人は別人。
偶に、俺じゃない人がC++書いてくことがある。
まぁ、俺も貢献度が高いかというと解らんけど。

995:デフォルトの名無しさん
19/11/14 22:16:17.11 ya/1xYDt.net
>>963
「一番簡単で速い」は「一番簡単」かつ「速い」という意味だよ。
一番簡単なコードを書いてみて充分に速ければ、さらに手を加える必要はないってこと。
昨今はCPUが速いので、簡単なコードをささっと書いて終わりにできる場合が多いし、
Cを使うまでもなくRやPythonなどでも実用に耐える。処理条件が変わって速度に
不満が生じたときだけ、書き直せば良い。

996:デフォルトの名無しさん
19/11/14 22:21:25.20 KjmBL3+S.net
配列をキャッシュに乗せるだけで早くなる
配列にするだけで早くなる

997:デフォルトの名無しさん
19/11/14 23:43:50.36 ya/1xYDt.net
>>970
>>941の最も近い値を求める処理(Aと呼ぶ)だけを複数回連続して行う場合はそうだが、
間に別の処理(Bと呼ぶ)がたくさん入る場合はキャッシュから外れるかも知れないし、
AよりもBの方で相対的にだいぶ長い時間がかかっているならば、Aを高速化する
意味はない。
Aを簡単に書き終え、Bを書き進めてプログラム全体を完成させ、各部分の実行時間を
デバッガで分析し、Aを高速化する必要があるか判定するのが効率的な開発方法。
必要なときだけAを書き直してみて、元のAと実行時間を比較し、顕著に速い場合だけ
採用する。あまり変わらない場合は元の


998:簡単な方に戻す。



999:デフォルトの名無しさん
19/11/15 06:08:37 /dDy1LQy.net
>>969
なぜ
一番簡単
だと思ったのか

1000:デフォルトの名無しさん
19/11/15 06:11:01 /dDy1LQy.net
中途半端に最適化するくらいなら
意味通りをそのまま記述した方が良いよ

トリッキーなマクロとか使わないで普通にループでいいし

1001:デフォルトの名無しさん
19/11/15 07:24:03.38 YlbiRAmO.net
>>941 J
f =: 4 : 0
{. x /: | x - y
)
a =: 98 100 198 200 250 298
a f 199
198

1002:デフォルトの名無しさん
19/11/15 08:39:52.88 zGnI3whh.net
>>491 python
整数の範囲を 1000000000 にして、リストのサイズをその1/10の 100000000 にしてやった物
URLリンク(ideone.com)

1003:デフォルトの名無しさん
19/11/15 08:46:57.30 pd2oXw5y.net
お題はどれ?

1004:デフォルトの名無しさん
19/11/15 10:34:11.71 zGnI3whh.net
>>975 は、>>941 のお題の間違い。

1005:デフォルトの名無しさん
19/11/15 10:34:39.11 kGxI2dsU.net
>>972
もっと簡単なのがあると言うなら提示すりゃいいだけ

1006:デフォルトの名無しさん
19/11/15 10:37:36.49 Dg2kwGpJ.net
そんなら一番簡単なんて言ったもん勝ちやんアホクサ

1007:デフォルトの名無しさん
19/11/15 11:19:40.93 y6ix6SXf.net
>>979
どういうこと?

1008:デフォルトの名無しさん
19/11/15 13:20:35.16 pd2oXw5y.net
発言者に証明責任がある
当たり前

1009:デフォルトの名無しさん
19/11/15 13:22:00.36 pd2oXw5y.net
簡単じゃない部分は書いたけどね

1010:デフォルトの名無しさん
19/11/15 13:25:38.61 pd2oXw5y.net
本当に一番簡単だと思ってるなら
非常に頭が弱い
というしかない

1011:デフォルトの名無しさん
19/11/15 16:04:20.43 y6ix6SXf.net
証明責任が

1012:デフォルトの名無しさん
19/11/15 18:45:17.65 YlbiRAmO.net
>>941 Ruby
def f(a,x)
a.min_by{|v|(v-x).abs}
end

1013:デフォルトの名無しさん
19/11/15 22:18:10.52 1XAUh39O.net
>>982
ひょっとして>>973か?
頓珍漢な指摘でドヤられても困るw

1014:デフォルトの名無しさん
19/11/16 07:59:12.18 PKd8UO5d.net
お前ちょっとしつこいよ
二人ともどっか行ってくれ

1015:デフォルトの名無しさん
19/11/16 09:38:56.12 R3eXoa4h.net
お題: 標準入力から読み取った文字列に対して変換候補の単語を表示するスクリプトを作れ
変換候補は URLリンク(www.cs.cmu.edu) のテキストを元にし、英文のみの対応とする
例:
in < on
out > ['on', 'once', 'one', 'only']
in < we
out > ['well', 'went', 'were']

1016:デフォルトの名無しさん
19/11/16 09:39:44.99 R3eXoa4h.net
>>988
URL訂正: URLリンク(www.cs.cmu.edu)

1017:10-11
19/11/16 11:43:03.30 nyexrMnj.net
Mathematica
ビットテーブル使ったからいまいち
f[x_]:=Round[Exp[x*49/2^9]*10]+Mod[BitShiftRight[8518656,x],2]
f[Range[0,23]]
{10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,91}

1018:デフォルトの名無しさん
19/11/16 13:01:44.00 9Ne+J8hx.net
>>988-989 PowerShell
$Words = ([RegEx]"\w+").Matches((Invoke-WebRequest 'URLリンク(www.cs.cmu.edu)').Content) | Select-Object -ExpandProperty 'Value' | Sort-Object -Unique
'on', 'we' | %{ "'$_' => ['$($Words -cmatch "^$_.*$" -join ''', ''')']" }
--
'on' => ['on', 'once', 'one', 'only']
'we' => ['well', 'went', 'were']

1019:蟻人間
19/11/16 14:12:37.63 wI2tFyzM.net
そろそろ次スレ

1020:デフォルトの名無しさん
19/11/16 20:00:42.94 ycfnvugG.net
>>987
誤解がないように一応言っておくが、同一人物なのは943, 952, 958, 969, 971, 993だけで、
978や986は別人ね。

1021:デフォルトの名無しさん
19/11/16 20:11:13.21 SjIOWxyj.net
どうでもいい
匿名掲示板

1022:デフォルトの名無しさん
19/11/16 22:09:51.31 ByTTIV4m.net
>>988
@Mathematica
URLリンク(ideone.com)

1023:デフォルトの名無しさん
19/11/17 09:01:36.94 xqEdXdr6.net
次スレ
プログラミングのお題スレ Part16
スレリンク(tech板)

1024:990
19/11/17 15:37:45.58 WMPUR+bY.net
BitGet使うんだった(Mathematicaに慣れてないのばればれ)
(* 49/2^9 = 0.095703125 *)
f[x_]:=Round[Exp[x*0.095703125]*10]+BitGet[8518656,x]
もう少し頑張っても16ビット以内にビットテーブルは縮小出来ず…。
(* 785/2^13 = 0.0958251953125 *)
f[x_]:=Round[Exp[x*0.0958251953125]*10]+BitGet[130048,x]

1025:デフォルトの名無しさん
19/11/21 12:06:42.30 p+kY48sO.net
>>941 julia
a=[98,100,198,200,250,298]
f(a,x)=a[argmin(map(abs ,a.-x))]
f(a,50)

1026:デフォルトの名無しさん
19/11/21 17:12:54.10 x85mexbT.net
>>988-989 Squeak Smalltalk。関数で。
| contents words fn |
contents := (HTTPClient httpGet: 'URLリンク(www.cs.cmu.edu)') contents.
words := (contents replaceAll: Character lf with: Character space; asTextFromHtml) asString subStrings: ' !"''()*,-.:;?`'.
words := words asSet asSortedArray.
fn := [:in | words select: [:word | word beginsWith: in]].
fn value: 'on'. "=> #('on' 'once' 'one' 'only') "
fn value: 'we'. "=> #('well' 'went' 'were') "
"for Pharo => URLリンク(ws.stfx.eu) "

1027:蟻人間
19/11/21 20:01:07.49 KAM+noJg.net
はかい
こうせん
せんもんがっこう

1028:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 116日 0時間 21分 10秒

1029:1002
Over 1000 Thread.net
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

──────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
──────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
URLリンク(premium.5ch.net)
▼ 浪人ログインはこちら ▼
URLリンク(login.5ch.net)

1030:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch