BG Development


  Reply to this topicStart new topicStart Poll

> Намиране на най-близко число в масив
goofy666
  Публикувано на: 06-12-2017, 20:13
Quote Post



Име: Мартин Асенов
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 19.06.17



Здравейте, трябва ми алгоритъм който да намира най-близко число в масив.
Търсих много във stackoverflow и разни други референций обаче всичките алгоритми, които видях бяха за намиране на най-близко по голямо число.
int[] numbers = { 1, 5, 7, 13, 18 };
int targetNum = 15;
повечето алгоритми са от типа на :
numbers.OrderBy(x => Math.Abs((long)x - targetNum)).First();
Които вадят 18 а в моя случай най-близкото число е 13.
Ако някой може да ми помогне ще съм му благодарен icon_smile.gif.
Поздрави.
PMEmail Poster
Top
r4nd0m
Публикувано на: 06-12-2017, 20:32
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1032
Регистриран на: 05.09.07



Не разбрах - демек искаш да излезе 18?


--------------------
"Happiness only real when shared."
PMEmail Poster
Top
Bender
Публикувано на: 06-12-2017, 20:42
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 4993
Регистриран на: 19.06.14



1. Или не знаете, братя (понеже говоря на такива, които познават закона), че законът има власт над човека, докле е той жив?
2. Омъжената жена е свързана чрез закона с мъжа, докле е той жив; умре ли мъжът, тя се освобождава от закона, който я свързва с мъжа.
3. Затова, ако при жив мъж тя се омъжи за другиго, ще бъде прелюбодейка; ако пък умре мъжът, тя е свободна от закона, и няма да бъде прелюбодейка, кога се омъжи за другиго.
4. Тъй и вие, братя мои, умряхте за закона чрез тялото Христово, за да принадлежите Другиму, Който възкръсна от мъртвите, та да принесем плод Богу.
5. Защото, когато живеехме по плът, тогава страстите греховни, узнавани чрез закона, действуваха в членовете ни, за да принесем плод на смъртта;
6. но сега, като умряхме за закона, чрез който бяхме свързани, ние се освободихме от него, за да служим Богу с обновен дух, а не по вехтата буква.
7. Какво, прочее, ще кажем? Нима законът е грях? Съвсем не. Ала аз узнах греха не инак, освен чрез закона, защото и похотта не бих познал, ако законът не казваше: "не похотствувай".
8. Но грехът, като взе повод от заповедта, произведе в мене всякаква похот; защото грехът без закона е мъртъв.
9. Аз живеех някога си без закон; но, когато дойде заповедта, грехът оживя,
10. пък аз умрях; и оказа се, че заповедта, дадена за живот, ми послужи за смърт,
11. защото грехът, като взе повод от заповедта, ме прелъсти и чрез нея ме умъртви.
12. Тъй че законът е свет, и заповедта - света, справедлива и добра.
13. И тъй, доброто ли стана за мене смърт? Съвсем не: но грехът, за да се яви той, че е грях, като ми причинява чрез доброто смърт, та чрез заповедта грехът да стане извънредно греховен.
14. Защото знаем, че законът е духовен, пък аз съм от плът, продаден на греха.
15. А каквото правя, не зная; защото не това, що желая, върша, а онова, що мразя, него правя.
16. Ако пък върша това, що не желая, съгласявам се със закона, че е добър;
17. а в такъв случай не аз вече върша това, а грехът, който живее в мене.
18. Аз зная, че в мене, сиреч в плътта ми, не живее доброто; защото желание за добро има у мене, но да го върша не намирам сили.
19. Защото не доброто, което искам, правя, а злото, което не искам, него върша.
20. А щом върша това, що не искам, не аз го върша вече, а грехът, който живее в мене.
21. И тъй, намирам у себе си такъв закон, че, кога искам да върша доброто, злото стои до мене.
22. Защото с вътрешния си човек намирам услада в закона Божий,
23. но в членовете си виждам друг закон, който воюва против закона на моя ум и ме прави пленник на греховния закон, що е в членовете ми.
24. Нещастен аз човек! Кой ще ме избави от тялото на тая смърт?
25. Благодаря на моя Бог чрез Иисуса Христа, нашия Господ. И тъй, сам аз с ума си служа на Божия закон, а с плътта - на греховния закон.



Това мнение е било редактирано от Bender на 07-01-2018, 19:59
PM
Top
r4nd0m
Публикувано на: 06-12-2017, 21:12
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1032
Регистриран на: 05.09.07



Ето с един глупав хак

CODE
var result = numbers
               .OrderBy(x => Math.Abs((long)x - targetNum))
               .Skip(1)
               .First();


Това мнение е било редактирано от r4nd0m на 06-12-2017, 21:35


--------------------
"Happiness only real when shared."
PMEmail Poster
Top
Антон Яначков
Публикувано на: 07-12-2017, 09:58
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Редовен член

Мнения: 410
Регистриран на: 27.07.16



QUOTE (goofy666 @ 06-12-2017, 20:13)
Здравейте, трябва ми алгоритъм който да намира най-близко число в масив.
Търсих много във stackoverflow и разни други референций обаче всичките алгоритми, които видях бяха за намиране на най-близко по голямо число.
int[] numbers = { 1, 5, 7, 13, 18 };                              
int targetNum = 15;
повечето алгоритми са от типа на :
numbers.OrderBy(x => Math.Abs((long)x - targetNum)).First();
Които вадят 18 а в моя случай най-близкото число е 13.
Ако някой може да ми помогне ще съм му благодарен icon_smile.gif.
Поздрави.

Задачата е доста общо формулирана. Най-близкото число в общия случай може да е самото число, ако се съдържа в масива, но ако не се съдържа може спокойно да се две различни числа равно отдалечени от зададеното. Трябва ясно да формулираш кое от двете равно отдалечени числа ти трябва. А може би ти трябват и двете.

Това мнение е било редактирано от Антон Яначков на 07-12-2017, 09:59
PMEmail PosterUsers Website
Top
wqw
Публикувано на: 07-12-2017, 12:57
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 5706
Регистриран на: 10.06.04



QUOTE (goofy666 @ 06-12-2017, 20:13)
Които вадят 18 а в моя случай най-близкото число е 13.

Това си вади 13. . . Тролиш ли ни нещо?

cheers,
</wqw>


--------------------
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0