BG Development


Страници: (3) 1 [2] 3   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Алгоритъм за решения на жури
johnfound
Публикувано на: 16-02-2018, 13:46
Quote Post


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

Мнения: 6337
Регистриран на: 27.05.04



icon_eek.gif icon_eek.gif icon_eek.gif


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
PureEvil
Публикувано на: 16-02-2018, 14:51
Quote Post



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

Мнения: 5212
Регистриран на: 21.02.04



@run_time кое е трудното за представяне? Започни да мислиш и ще разбереш колко безсмислици си изписал icon_lol.gif


--------------------
<?php die("WTF"); ?>
PMUsers WebsiteICQ
Top
miron
Публикувано на: 16-02-2018, 15:09
Quote Post



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

Мнения: 607
Регистриран на: 26.04.05



имаш две променливи <сума на гласовете> и <не гласували съдии>. При всеки глас добавяш или вадиш единица към <сума на гласовете> и намаляваш <не гласували съдии>. Ако сумата стане по-голяма по абсолютна стойност от <не гласували съдии>, извеждаш знака на <сума на гласовете>.

Това мнение е било редактирано от miron на 16-02-2018, 15:10
PM
Top
relax4o
Публикувано на: 16-02-2018, 15:51
Quote Post



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

Мнения: 2074
Регистриран на: 04.04.07



Хората взе да ги мързи да мислят вече в този форум и въобще не вдяват какво им се говори.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
40oz
Публикувано на: 16-02-2018, 16:03
Quote Post



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

Мнения: 179
Регистриран на: 23.05.13



QUOTE (run_time @ 16-02-2018, 11:22)
Просто си мислих дали някой алгоритъм за дървета или графи няма да свърши работа, но така или инак без масиви няма да се мине. Проблема с кода ще възникне ако решенията се вземат от 9 или повече човека примерно... icon_smile.gif

Това наистина изисква по-академичен подход както се изрази много правилно. Само не разбирам за момента кога ще се прояви проблемът с кода - като има повече хора отколко цифри в десетичната бройна система или ако съдиите не са хора?
PMEmail Poster
Top
run_time
Публикувано на: 16-02-2018, 19:15
Quote Post



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

Мнения: 9
Регистриран на: 10.04.05



Тука нещо явно има доста гении от глава на населението... Както и да е де.

Сега представи си, че имааш някой embedded контролер, в който има един вечен цикъл.

void loop(){}

Трябва да четеш състояния от GPIO от бутони, които имат състояния, които сe проверяват в този вечен цикъл.

Ако предположим, че изхода се определя от Н на брой състояния ( в случая изхода се определя след втория или третия гласувал, като всеки гласувал има по два възможни избора (да или не) ), то инкреминирането на една променлива изобщо не върши работа. Защото след първото натискане на бутон променливата ще != 0 ( -1; 1 ) и и проверката i > 0 ще е удоволетворена, като изобщо няма да е известен броя на гласувалите. Тук както казах за мен най-удачен вариант е с един едномерен масив, като се броят елементите ( гласуванията ) и след това се преброят положителните или отрицателните гласове в този масив. Естественно за по-малко цикли може да се сортира масива, но това е друга тема, та:

3 гласа, като първите 2 са true, false
[true, false, true] - Изхода е естествено true

или с два гласа true, true
[true, true] - изхода пак е true и не се чака третият глас

При изход true святка зелено диотче да речем, при изход false червено.

Сега хипотетично, тъй като сииистемата е с ограничени ресурси, то въртенето на цикъл за смятане на броя гласове в масива и техните избори, при много състояния, да речем 100, може да се изтърве натискане на бутон и промяна на състоянието. Тук може да се ползва interrupt, който да прекъсне цикъла, но това не е оферта. Също така тази проверка ( постоянно въртене на елементите на масива ) ще се наложи да се прави при всеки loop, не мисля, че е best practices.

Сега не знам какво очаквате да почна да мисля ( мисля да си направя пуканки всъщост ), но както казах търся идеи за реализиране на алгоритъм ( по възможно най-добрия начин ) за смятане на N на броя двойки състояния или достигане до определено условие (в случая два еднакви гласа. ) Надявам се, че форумите все още в същоста са си място за дискутиране, а не за измерване на умствени капацитети! За тая цел си има МЕНСА и други такива организации.

Давам пример със съдии, но може да го представите и като входни състояния от бутони и прочие.

И туй като има сигурно една камара възможни реализации ( двете променливи, както е написал колегата ) търся най-оптималният от тях. Защото при две или три не е проблем, но при 100 - 1000 - 10000 ще е.

Това мнение е било редактирано от run_time на 16-02-2018, 19:16
PMEmail Poster
Top
johnfound
Публикувано на: 16-02-2018, 21:00
Quote Post


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

Мнения: 6337
Регистриран на: 27.05.04



Ако съдиите гласуват асинхронно, очевидно е, че ти трябва признак, кога гласуването е приключило. Ето ти малко псевдокод:

CODE


total = 0;
cnt = 0;

Vote(v):
  cnt = cnt+1
  if  v then total = total + 1;

if cnt = 3 return (total >= 2);


При гласуване на съдиите се вика функцията Vote, със аргумент TRUE или FALSE. Гласуването завършва, когато и тримата съдии гласуват.

Може да се обобщи и за N съдии:

CODE
if count == N then return (total > N/2);


Тогава ще знаеш и междинните резултати, докато не са гласували всички съдии:

CODE
subtotal: (total > cnt/2);


Това мнение е било редактирано от johnfound на 16-02-2018, 21:10


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
Vermilion
Публикувано на: 16-02-2018, 21:23
Quote Post



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

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



QUOTE
Надявам се, че форумите все още в същоста са си място за дискутиране, а не за измерване на умствени капацитети! За тая цел си има МЕНСА и други такива организации.
В този форум се измерват едни други работи icon_wink.gif
PMEmail Poster
Top
40oz
Публикувано на: 16-02-2018, 21:30
Quote Post



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

Мнения: 179
Регистриран на: 23.05.13



Ти сега не се вързвай много, все пак сме тук основно да се бъзикаме. А ти сериозно ли питаш или тролиш много качествено?
QUOTE (run_time @ 16-02-2018, 19:15)
то инкреминирането на една променлива изобщо не върши работа.

Както хората са казали: когато една променлива не стига, дефинирай втора!
CODE
int yesss = 0;
int hoi = 0;
loop(bool middleFingerUp) {
      if (middleFingerUp) {
            if (++hoi == 2) return "kor"
      } else {
            if (++yess == 2) return "evalarka"
      }
}

Сега за инженерното решение с прекъсвания и онези бутони не мога да помогна, все пак сме във форума за HTML, но нещо такова ли искаш?
CODE
int[] states = new int[100-1000-10000]
loop(int middleFingerUpStateIdx) {
      if (++states[middleFingerUpStateIdx] == "достигане до определено условие") return "kor"
}

PMEmail Poster
Top
saruman
Публикувано на: 17-02-2018, 00:21
Quote Post



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

Мнения: 1963
Регистриран на: 21.07.10



QUOTE (run_time @ 16-02-2018, 19:15)
Тука нещо явно има доста гении от глава на населението... Както и да е де.

Сега представи си, че имааш някой embedded контролер, в който има един вечен цикъл.

void loop(){}

Трябва да четеш състояния от GPIO от бутони, които имат състояния, които сe проверяват в този вечен цикъл.

Ако предположим, че изхода се определя от Н на брой състояния ( в случая изхода се определя след втория или третия гласувал, като всеки гласувал има по два възможни избора (да или не) ), то инкреминирането на една променлива изобщо не върши работа. Защото след първото натискане на бутон променливата ще != 0 ( -1; 1 ) и и проверката i > 0 ще е удоволетворена, като изобщо няма да е известен броя на гласувалите. Тук както казах за мен най-удачен вариант е с един едномерен масив, като се броят елементите ( гласуванията ) и след това се преброят положителните или отрицателните гласове в този масив. Естественно за по-малко цикли може да се сортира масива, но това е друга тема, та:

3 гласа, като първите 2 са true, false
[true, false, true] - Изхода е естествено true

или с два гласа true, true
[true, true] - изхода пак е true и не се чака третият глас

При изход true святка зелено диотче да речем, при изход false червено.

Сега хипотетично, тъй като сииистемата е с ограничени ресурси, то въртенето на цикъл за смятане на броя гласове в масива и техните избори, при много състояния, да речем 100, може да се изтърве натискане на бутон и промяна на състоянието. Тук може да се ползва interrupt, който да прекъсне цикъла, но това не е оферта. Също така тази проверка ( постоянно въртене на елементите на масива ) ще се наложи да се прави при всеки loop, не мисля, че е best practices.

Сега не знам какво очаквате да почна да мисля ( мисля да си направя пуканки всъщост ), но както казах търся идеи за реализиране на алгоритъм ( по възможно най-добрия начин ) за смятане на N на броя двойки състояния или достигане до определено условие (в случая два еднакви гласа. ) Надявам се, че форумите все още в същоста са си място за дискутиране, а не за измерване на умствени капацитети! За тая цел си има МЕНСА и други такива организации.

Давам пример със съдии, но може да го представите и като входни състояния от бутони и прочие.

И туй като има сигурно една камара възможни реализации ( двете променливи, както е написал колегата ) търся най-оптималният от тях. Защото при две или три не е проблем, но при 100 - 1000 - 10000 ще е.

Ти вярно ли си от 13 години в тоя форум ? icon_eek.gif


--------------------
http://www.wefunkradio.com/radio/

Remember,remember the fifth of November
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (3) 1 [2] 3  Reply to this topicStart new topicStart Poll

 


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