トップページ > プログラム > 2016年07月08日 > cgcs4qw3

書き込み順位&時間帯一覧

8 位/194 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000130004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
860を訂正します
(…なんだか騒がしいけど気が付かなかったことにしとこう…)
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net

書き込みレス一覧

ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
860 :デフォルトの名無しさん[sage]:2016/07/08(金) 19:31:10.37 ID:cgcs4qw3
>>859
LINQを使った↓という方法もあるけど
http://qiita.com/kazuhirox/items/26f2632b0cef4a5fed8a

…これだと「基準にする配列は狭義単調増加」という特徴が生かせないので
素直に for ループを使って

1. 対象と配列要素との差の絶対値をとる
2. 差の絶対値がこれまでの最小ならインデックスと最小値を記憶
3. 配列要素の値が対象を越えてたらループ脱出

…で、いいんじゃないかな…
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
864 :860を訂正します[sage]:2016/07/08(金) 20:09:43.96 ID:cgcs4qw3
ごめんなさい。>>860 の手順はまるで良くなかった…
「狭義単調増加」なのだから、for で基準配列を最初から順に参照して

1. 配列要素の値が対象値を越えたら
2. その時の要素と前の要素について、それぞれ対象値との差をとる
3. 差の小さい方のインデックスを答えとしてループ脱出

…じゃないと、無駄な計算や比較が多すぎる…
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
873 :(…なんだか騒がしいけど気が付かなかったことにしとこう…)[sage]:2016/07/08(金) 20:31:42.16 ID:cgcs4qw3
>>861
配列が大きくて計算量が心配になるのなら

配列をインデックスで適当に区切って区切り要素の値と対象値を比較

調べる配列の範囲を決める

とすると、なお良いかも
(LINQを使う場合でも)
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
880 :デフォルトの名無しさん[sage]:2016/07/08(金) 20:44:21.71 ID:cgcs4qw3
>>877-878
おっしゃるとおりです…
…何レスも使って何やってんだ俺…
>>859 ごめんね…


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。