Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.12.2016, 13:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Rise
в школе вроде такого не проходят
А прогуливать уроки не надо было
Ответить с цитированием
  #12 (permalink)  
Старый 28.12.2016, 13:49
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

laimas,
Ответить с цитированием
  #13 (permalink)  
Старый 28.12.2016, 22:06
Аватар для GuardCat
Просто любитель
Отправить личное сообщение для GuardCat Посмотреть профиль Найти все сообщения от GuardCat
 
Регистрация: 13.09.2011
Сообщений: 300

#1
let getSimpleNumbers = ( ( ) => {
    
    function isSimple(num) {
        let delimiter = Math.floor(num / 2);
        
        while (delimiter > 1) {
            if (num % delimiter-- === 0) return false;
        }
        
        return true;
    }                
    
    return (from, to) => {
        let x, result = [ ];
        
        for (x = from; x <= to; x++) {
            if ( isSimple(x) ) result.push(x);            
        }
        
        return result
    }
    
} ) ( )

alert( getSimpleNumbers(132, 723) )
Ответить с цитированием
  #14 (permalink)  
Старый 29.12.2016, 15:42
Аватар для GuardCat
Просто любитель
Отправить личное сообщение для GuardCat Посмотреть профиль Найти все сообщения от GuardCat
 
Регистрация: 13.09.2011
Сообщений: 300

#2
function getRandomNumbers(amt = 100, min = 0, max = 100) {
  let result = [ ];
  
  if (max < min) [max, min] = [min, max];
  
  while (result.length < amt) {
    result.push( ( min + max * Math.random( ) ).toFixed(0) )
  }
  
  return result
} 

function getAverage(arr) {
    let result = arr.reduce( (res, i) => {
        return +res + +i;
    } )
    return result / arr.length
}

function getMedian(arr) {
    let 
      copy = [ ], sum = 0,
      halfLen = arr.length / 2
    ;
    Object.assign(copy, arr);
    
    copy.sort( (a, b) => a - b )
    
    sum += +copy[ Math.ceil(halfLen) - 1 ];
    sum += +copy[ Math.floor(halfLen) ];
    
    return sum / 2
}

function getMode(arr) {
    let 
        key, result = [ ], 
        count = { }, max = -Infinity,
        nomodeMsg = "The array hasn't mode.",
        nomodeFlag = true
    ;
    
    arr.forEach( (item) => {
        if ( !(item in count) ) count[item] = 0;
        count[item]++
        max = max < count[item] ? count[item] : max;
    } );
    
    if (max <= 1) return nomodeMsg;
    
    for (key in count) {
        if ( count[key] === max ) {
            result.push(key)
        } else {
            nomodeFlag = false
        }
    }

    return nomodeFlag ? nomodeMsg : result;
}


let 
    // Получим последовательность из 10 целых случайных чисел от 0 до 100
    r = getRandomNumbers(10, 0, 100)
    
    // Получим массив мод для последовательности
    m = getMode(r),
    
    // Получим медиану для последовательности
    med = getMedian(r),
    
    // Получим среднее значение для последовательности
    a = getAverage(r)
;

alert( `Для последовательности ${r}
Среднее: ${a}
Медиана: ${med}
Мода(ы):    ${m}` );

Последний раз редактировалось GuardCat, 29.12.2016 в 15:44.
Ответить с цитированием
  #15 (permalink)  
Старый 29.12.2016, 16:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

GuardCat,

Object.assign(copy, arr);
почему не
copy = arr.slice(0)
Ответить с цитированием
  #16 (permalink)  
Старый 29.12.2016, 17:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
почему не
Почему вообще не "на пальцах", ой не поверят же бедному студенту, что это он сам додумался. )
Ответить с цитированием
  #17 (permalink)  
Старый 29.12.2016, 17:29
Аватар для GuardCat
Просто любитель
Отправить личное сообщение для GuardCat Посмотреть профиль Найти все сообщения от GuardCat
 
Регистрация: 13.09.2011
Сообщений: 300

Сообщение от рони Посмотреть сообщение
GuardCat,
...почему не
copy = arr.slice(0)
Пробую на вкус ES 2015, использую новые фишки где надо и не надо). Ваш пример, конечно, уместнее.
Ответить с цитированием
  #18 (permalink)  
Старый 29.12.2016, 17:30
Аватар для GuardCat
Просто любитель
Отправить личное сообщение для GuardCat Посмотреть профиль Найти все сообщения от GuardCat
 
Регистрация: 13.09.2011
Сообщений: 300

Сообщение от laimas Посмотреть сообщение
Почему вообще не "на пальцах", ой не поверят же бедному студенту, что это он сам додумался. )
А уж это моя цена за халявный ответ — делать так, как нравится мне ^_^
Ответить с цитированием
  #19 (permalink)  
Старый 29.12.2016, 17:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от GuardCat
А уж это моя цена за халявный ответ
вот так и выходят потом из институтов недоспециалисты взращенные на халяве. )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите нужна помощь срочно mahes1234 Общие вопросы Javascript 0 11.01.2016 23:57
Небольшой js помогите майрбек95 Общие вопросы Javascript 6 18.12.2015 08:57
помогите, все очень просто но что туплю betonka Events/DOM/Window 4 14.07.2011 13:08
Элементарный скрипт не раборает только в IE, помогите! androlic Элементы интерфейса 6 23.03.2011 18:37
Необходимо срочно создать скрипт-тест! Andrey Freeman Работа 2 16.09.2008 16:41