Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 10.10.2012, 14:27
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

а, всё, я понял вторую задачу)))
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #52 (permalink)  
Старый 10.10.2012, 14:48
Аватар для Maxmaxmахimus
司会
Отправить личное сообщение для Maxmaxmахimus Посмотреть профиль Найти все сообщения от Maxmaxmахimus
 
Регистрация: 29.02.2012
Сообщений: 198

подсказка: Столбиком уже не считается да)?
Ответить с цитированием
  #53 (permalink)  
Старый 10.10.2012, 23:21
Аватар для Дзен-трансгуманист
√₋̅₁̅
Отправить личное сообщение для Дзен-трансгуманист Посмотреть профиль Найти все сообщения от Дзен-трансгуманист
 
Регистрация: 18.06.2012
Сообщений: 385

Сообщение от Maxmaxmахimus
Задача № 1

Составить функцию, которая продолжала бы числовую последовательность (арифметическую).

Мое решение через полином Лагранжа.

function throwError (fname, error) { throw new Error(fname + ": " + error); }

function lagrangePoly (points) {

  if (points.length % 2) { throwError("lagrangePoly", "bad number of elements"); }

  var result = [];
  var degree = points.length / 2;
  var i, j, t, cn, c, c0, c1;

  for (i=0, t=[]; i<points.length; i++) {

    if (!isFinite(points[i])) { throwError("lagrangePoly", "non-finite value encountered"); }
    if (!(i % 2)) { t.push(points[i]); }
  }

  t.sort(function (a, b) { return a - b; });

  for (i=0; i<degree-1; i++) { if (t[i] == t[i+1]) { return false; } }

  for (i=0, c1=[]; i<degree; i++) {

    c1.push(points[i*2 + 1]);

    for (j=1, t=1; j<degree; j++) { t *= points[i*2]; c1.push(-t); }
  }

  c = [c1];

  for (cn=degree; cn>1; cn--) {

    c0 = c1;
    c1 = [];

    for (i=0; i<cn-1; i++) {

      t = c0[i * cn + 1] - c0[(i+1) * cn + 1];

      for (j=0; j<cn; j++) {

        if (j == 1) { continue; }

        c1.push(-(c0[i * cn + j] - c0[(i+1) * cn + j]) / t);
      }
    }

    c.push(c1);
  }

  for (cn=degree-1; cn>-1; cn--) {

    result[cn] = c[cn][0];

    for (i=1; i<degree-cn; i++) { result[cn] += c[cn][i] * result[cn+i]; }
  }

  return result;
}

function polyFunction (poly) {

  var _poly = [].concat(poly);

  return function (x) {

    var i, e, y;

    for (i=0, e=1, y=0; i<_poly.length; i++) {

      y += e * _poly[i];
      e *= x;
    }

    return y;
  }
}

function continueSequence (sequence) {

  var points = [], polyfn, i;

  for (i=0; i<sequence.length; i++) { points.push(i, sequence[i]); }

  polyfn = polyFunction(lagrangePoly(points));

  return function () { return polyfn(i++); }
}

function maxFraction (value, digits) {

  if (!isFinite(value) || !isFinite(digits)) { throwError("maxFraction", "bad argument(s)"); }

  var fixed = (+value).toFixed(digits);
  var i = fixed.length - 1;

  loop: while (true) {

    switch (fixed.charAt(i)) {

    case "0": i--; continue;
    case ".": i--; break loop;
    }

    break;
  }

  return fixed.slice(0, i+1);
}

function test (sequence, iterations) {

  var generator = continueSequence(sequence);
  var result = sequence.join(", ") + "...\n";

  while (iterations--) { result += maxFraction(generator(), 6) + (iterations? ", ": "...\n\n"); }

  return result;
}

var result = "";

result += test([ 0, 1, 4, 7, 10], 15);
result += test([-2, 1, 4, 7, 10], 15);
result += test([ 0, 1, 3, 6, 10], 15);

result += test([0, 1, 4, 9], 15);
result += test([0, 1, 8, 27], 15);

result += test([9, 8, 7, 6, 5, 4, 3, 2, 1], 15);
result += test([9, 8, 7, 6, 5, 4, 3, 2, 2, 2, 10], 15);

alert(result);
__________________

Гейзенберг, возможно, читал этот тред.

Последний раз редактировалось Дзен-трансгуманист, 11.10.2012 в 01:55.
Ответить с цитированием
  #54 (permalink)  
Старый 11.10.2012, 06:00
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от melky Посмотреть сообщение
это уже было (сортировка слов по количеству повторений в строке) ... ту тему снесли.
это что-то не то
__________________
.ня
Ответить с цитированием
  #55 (permalink)  
Старый 11.10.2012, 06:32
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от tenshi Посмотреть сообщение
это что-то не то
тогда поподробней, пожалуйста

Сообщение от tenshi
есть пачка текстов, нужно реализовать по ним нескольких произвольных слов в произвольном порядке. отранжировать по количеству найденных слов.
Ответить с цитированием
  #56 (permalink)  
Старый 11.10.2012, 06:42
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

поисковой индекс, только локально на клиенте. например, я делал хтмл документацию, распространяющуюся на cd, где требовался поиск по содержимому.
__________________
.ня
Ответить с цитированием
  #57 (permalink)  
Старый 11.10.2012, 13:09
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Как вам вот такая задача ?

for i=1 to 6 step 2
    alert(i)
next i;


распарсите пример на бейсике в вид пригодный для компиляции
о бэйсике - for начало тела цикла, next -конец, шаг это значение которое прибавляется к i
должно получится что то вроде

{
     command:"for",
     varname:"i",
     start:"1",
     end:6,
     step:2,
     code:[
           {
                command:"call",
                functionName:"alert",
                params:["i"]
           }
     ]
     
}
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 11.10.2012 в 13:50.
Ответить с цитированием
  #58 (permalink)  
Старый 11.10.2012, 15:37
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

DjDiablo,
For i = 1 To 6 [step 2]
    alert(i)
Next

step - может быть опушен. При этом, оба варианта ниже являются правильными

For i = 1 To 6 [step 2]
    For j = 1 To 6 [step 2]
        alert(i)
    Next
Next

For i = 1 To 6 [step 2]
    For j = 1 To 6 [step 2]
        alert(i)
Next j, i
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 11.10.2012 в 15:39.
Ответить с цитированием
  #59 (permalink)  
Старый 11.10.2012, 16:51
Аватар для Maxmaxmахimus
司会
Отправить личное сообщение для Maxmaxmахimus Посмотреть профиль Найти все сообщения от Maxmaxmахimus
 
Регистрация: 29.02.2012
Сообщений: 198

Тогда уж напишите синтаксический анализатор кода на javascript)))
Чтобы можно было настраивать токены )) таким образом он был бы универсальным)
Ответить с цитированием
  #60 (permalink)  
Старый 11.10.2012, 17:00
Интересующийся
Отправить личное сообщение для DimaJS Посмотреть профиль Найти все сообщения от DimaJS
 
Регистрация: 14.08.2012
Сообщений: 26

№ 0, пожалуй самое смешное решение
for ( var i = 0; i < 10; i++ ){
    var ololo = i; // сделать так чтобы ololo  был виден только в блоке с циклом
    ....//somecode
    ololo = undefined;//или null, кому как нравится
}
 
// но не тут
window.ololo // undefined
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи по Java and JavaScript Другое Имя Работа 1 26.10.2011 00:11
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Подходит ли Javascript для решения следующей задачи? alikol Оффтопик 4 24.10.2010 22:40
Подходит ли Javascript для решения следующей задачи? alikol Общие вопросы Javascript 7 24.10.2010 14:10
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34