ソスソスVisual C++ Q & Aソスfソスソスソスソス
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスzソスソスフ抵ソスソスナ茨ソスヤ近ゑソスソスlソスソスソスソス゚ゑソスB
ソスツまゑソス゚趣ソスソスlソスソスソスソス゚ゑソスヨ撰ソスソスヘなゑソスソスソスフでゑソスソス蛯、ソスソスソスH
ソスソスソスニゑソスソスソス500ソスニゑソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソス鼾ソスB
515
505
489
ソスニゑソスソスソスソスzソスソスフ撰ソスソスソスソスソスソスソスソスソスソスソスソス鼾ソスB
500ソスノ茨ソスヤ近ゑソスソスソスソスソスソスソス505ソスニゑソスニめゑソス
ソスヨ撰ソスソスヘなゑソスソスソスフでゑソスソス蛯、ソスソスソスH
ソスソスソスヨ撰ソスソスヘなゑソスソスソスフでゑソスソス蛯、ソスソスソスH
ソスソスソスフゑソスフゑソスソスホゑソスヘなゑソスソスCソスソスソスソスソスワゑソスソスB
ソスナゑソスzソスソスソス¥ソス[ソスgソスソスソスト探ソスソスソスソスソスト近ゑソスソスlソスソスTソスソスソスソスソス@ソスソスソスlソスソスソスソスソスワゑソスソスB
515
505
489
ソスソス
489
505
515
ソスニゑソスソスソス505ソスtソス゚ゑソス
abs(500-489)=11
abs(500-505)=5
ソスフ撰ソスソスソスソスソスソスソスソスソスソスルゑソスソスソスIソスソスソスソスソスニゑソスソスB
ソス¥ソス[ソスgソスソスフ探ソスソスソスノはバソスCソスiソスソスソスTソス[ソス`ソスネどゑソスgソスソスソスヌゑソスソスB
ソスソスソスラての抵ソスソスナ最ゑソス゚ゑソスソスAソスニゑソスソスソスソスソスソスニゑソスソスニ最抵ソスPソスソスヘ全ソスvソスfソスソスソスソスソスKソスvソスソスソスソスソスソス
ソス¥ソス[ソスgソスネど不ソスvソスソスソスニ思ソスソスソスソスBソスソスソスソスソスソスナ鯉ソスワで擾ソスソスノ托ソスソスネめゑソスソスネゑソスソスソスA
ソスレ標ソスlソスニの搾ソスソスソスソスナ擾ソスソスネゑソスフゑソスロ趣ソスソスソスソスソスホゑソスソスソスナゑソスソスソス
ソス゚傍ソスlソスソスソスソスソスソスソスツ有ソスソス鼾ソスフ選ソスソスソスソス@ソスソスソスソス゚てゑソスソスソスソスKソスvソスソスソスソスソスソス
500 ソスノ対ゑソスソスソス 501 ソスソス 499 ソスソスソスソスソスソスソスソスソスンゑソスソスソス鼾ソスノどゑソスソスソス闊オソスソスソスフゑソスソスH
> ソス¥ソス[ソスgソスネど不ソスvソスソスソスニ思ソスソスソスソスB
ソスナゑソスソスヒ、ソスレ標ソスlソスニの搾ソスソスソスソスナゑソス゚ゑソス"ソスモゑソスソスソス"ソスソスoソスソスソストゑソスソスソスソスホよさソスソスソスソスソスB
ソスソスソスソス"ソスモゑソスソスソス"ソスソスソスレ標ソスlソスニ難ソスソスソスソスソスソスソスソスルなゑソスソストゑソスソスソスソスニゑソスソスヌゑソスソスソスソス驍ゥソスヘ別厄ソスソスB
> ソスレ標ソスlソスニの搾ソスソスソスソスナゑソス゚ゑソス"ソスモゑソスソスソス"ソスソスoソスソスソストゑソスソスソスソスホよさソスソスソスソスソスB
ソスソスソス[ソスAソス_ソスソスソス_ソスソスソスB
ソスソスソスニりあソスソスソスソスソスソスソスソスネとゑソスソスソスナ。
#include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
template<typename T>
struct norm : std::binary_function<T,T,T> {
T operator()(T x, T y) const { return std::max(x-y,y-x); }
};
template<typename T>
struct norm_less : std::binary_function<T,T,bool> {
T value_;
norm_less(T v) : value_(v) {}
bool operator()(T x, T y) const { norm<T> f; return f(x,value_) < f(y,value_); }
};
int main(){
const int N = 8;
int data[N] = { 1, 2, 3, 3, 5, 5, 6, 7 };
int target = 4;
norm<int> n;
int min_norm = n(*std::min_element(data, data+N, norm_less<int>(target)),target);
for ( int i = 0; i < N; ++i ) {
if ( n(target,data[i]) == min_norm ) std::cout << data[i] << ' ';
}
}
ソスソスソスソスソスニ、ソスソスソスソスソスト訊ソスソスソスワゑソスソスソスソスソス
int data[] = { -2147483647, -1, 0, 1, 2147483647};
int target = 2147483647;
ソスネ場合ソスノ撰ソスソスソスソスソスソスlソス得ゑソスノはどゑソスソスソスソスワゑソスソスソス
ソスソスソス[... ソスソスソスフ撰ソスホ値ソスソスソスソス゚ゑソスニゑソスソスノオソス[ソスoソス[ソスtソスソスソス[ソスソスソスソスソスソストゑソスソス[...
template<typename T>
struct norm : std::binary_function<T,T,T> {
T operator()(T x, T y) const { return x > y ? x - y : y - x; }
};
ソスソスソストゑソスソスニでゑソスソスソスソスソスソスソスソスソスソスソス?
...ソス_ソスソスソスソスソス[ orz
ソスソスソスソスソスソスワりいソスソスソスソスソスソスソスソスソスソスホなゑソスソスだゑソスソスヌ、ソスソスソスフ抵ソスソスxソスナ具ソスソスソスソストゑソスソスソスソス
template<typename T>
struct norm : std::binary_function<T,T,T> {
ソス@T operator()(T x, T y) const {
ソス@ソス@T diff((x>y)?x-y:y-x);
ソス@ソス@if (diff<0) diff=std::numeric_limits<T>::max();
ソス@ソス@return diff;
ソス@}
};
ソスeソスソスソスvソスソスソス[ソスgソスフソソス[ソスXソスソスソスソスソスソスナゑソスソスソスネゑソスAソスソスソスソスソスソスソスソスソスソスネ趣ソスソスソスヘゑソスソスト暦ソスソスネゑソスソスCソスソスソスソスソスソスだゑソスソスヌ…ソスソスソスソスソスvソスソスソスフは会ソスソスソスソスソスソスH
> ソスeソスソスソスvソスソスソス[ソスgソスフソソス[ソスXソスソスソスソスソスソスナゑソスソスソスネゑソスAソスソスソスソスソスソスソスソスソスソスネ趣ソスソスソスヘゑソスソスト暦ソスソスネゑソスソスCソスソスソスソスソスソスだゑソスソスヌ…
ソスソスソスソスソスソスソスソスソスソスソスネゑソスソスソスソスAソスソスソスソスソスナなゑソスソスソスソスソスソスソスソスネゑソスソスB
ソスソスソスソスソスソスノゑソスソスソスLソスソスソスソス:
1. ソスzソスソスフアソス^ソス}ソスソスソスソスPソスcソスワゑソスソスrソス゚て、ソス準ソスlソスノ茨ソスヤ近ゑソスソスlxソスソスミとつ鯉ソスソスツゑソスソスソスB
2. ソスト度ソスzソスソスソスAソス^ソス}ソスソスソスソスPソスcソスワゑソスソスrソス゚ゑソス(1)ソスナ具ソスソス゚ゑソス"xソスニ基準ソスlソスニの搾ソス"ソスニ難ソスソスソスソスソスソスソスソスソスツ要ソスfソスソス挙ゑソスソスソスB
# ソスソスツ鯉ソスソスツゑソスソス驍セソスソスソスナゑソスソスソスソスフなゑソスA(2)ソスヘ不ソスvソスB
ソスソスソスソスソスソスソスソスvソスソスソスBソスソスソスソスソスソスソスソスlソス^ソスノゑソスソスト楽ソスソスソスワゑソスソストゑソスソスソスソストゑソスフは否定しソスネゑソス
ソスソスソスソスソスPソスノ探ソスソスソスソスソスソスソスフCソスTソスソスソスvソスソスソスソス示ゑソスソストみゑソスB
ソスソスフ厄ソスソス_ソスヘゑソスソスフまま残ソスソスソストゑソスソス驍オソスAソスソスソスソスネ外ソスノゑソスワゑソスソスソスソスニゑソスソスソスソスソスソスソスB
ソスTソスソスソスソスソスソスソスネら無ソスハな擾ソスソスソスソスソスソスソスソストゑソスBソスソスソスツゑソスソスト修ソスソスソスAソスヘ宿ソスソスノゑソスソスニゑソスソスソスソスB
int find_nearest(int target, const int* a, size_t n) {
ソス@int result=*a;
ソス@int nearest_err=abs(*a-target);
ソス@for (--n,++a; n>0; --n,++a) {
ソス@ソス@int err=abs(*a-target);
ソス@ソス@if (err<nearest_err) { nearest_err=err; result=*a; }
ソス@}
ソス@return result;
}