プログラミングのお題スレ Part15at TECH
プログラミングのお題スレ Part15 - 暇つぶし2ch960:デフォルトの名無しさん
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