Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 19.12.2017
Сообщений: 1
1

Как вывести данные из js-объекта на страницу (в HTML). Задача о рюкзаке

19.12.2017, 20:41. Показов 2398. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, я только начал учить js так что не судите строго.

Я использовал вот этот скрипт для решения задачи о рюкзаке.

https://gist.github.com/lqt022... da336363b1
Javascript
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/* 0-1 knapsack problem
 
For an overall introduction to knapsack problem, see https://en.wikipedia.org/wiki/Knapsack_problem
 
Function name: knapsack
Param: 
  items: an array of {w: v:} (where 'w' stands for weight, and 'v' stands for value)
  capacity: a positive integer number
Will return max sum value that can reach, and the chosen subset to add up to the value.
 
Example:
 
var items = [{w:3,b:10},{w:1,b:3},{w:2,b:9},{w:2,b:5},{w:1,b:6}];
var capacity = 6;
console.log(knapsack(items, capacity));
 
will return 
 
{ maxValue: 25,
  subset: [ { w: 1, v: 6 }, { w: 2, v: 9 }, { w: 3, v: 10 } ] }
 
*/
 
function knapsack(items, capacity){
  // This implementation uses dynamic programming.
  // Variable 'memo' is a grid(2-dimentional array) to store optimal solution for sub-problems,
  // which will be later used as the code execution goes on.
  // This is called memoization in programming.
  // The cell will store best solution objects for different capacities and selectable items.
  var memo = [];
 
  // Filling the sub-problem solutions grid.
  for (var i = 0; i < items.length; i++) {
    // Variable 'cap' is the capacity for sub-problems. In this example, 'cap' ranges from 1 to 6.
    var row = [];
    for (var cap = 1; cap <= capacity; cap++) {
      row.push(getSolution(i,cap));
    }
    memo.push(row);
  }
 
  // The right-bottom-corner cell of the grid contains the final solution for the whole problem.
  return(getLast());
 
  function getLast(){
    var lastRow = memo[memo.length - 1];
    return lastRow[lastRow.length - 1];
  }
 
  function getSolution(row,cap){
    const NO_SOLUTION = {maxValue:0, subset:[]};
    // the column number starts from zero.
    var col = cap - 1;
    var lastItem = items[row];
    // The remaining capacity for the sub-problem to solve.
    var remaining = cap - lastItem.w;
 
    // Refer to the last solution for this capacity,
    // which is in the cell of the previous row with the same column
    var lastSolution = row > 0 ? memo[row - 1][col] || NO_SOLUTION : NO_SOLUTION;
    // Refer to the last solution for the remaining capacity,
    // which is in the cell of the previous row with the corresponding column
    var lastSubSolution = row > 0 ? memo[row - 1][remaining - 1] || NO_SOLUTION : NO_SOLUTION;
 
    // If any one of the items weights greater than the 'cap', return the last solution
    if(remaining < 0){
      return lastSolution;
    }
 
    // Compare the current best solution for the sub-problem with a specific capacity
    // to a new solution trial with the lastItem(new item) added
    var lastValue = lastSolution.maxValue;
    var lastSubValue = lastSubSolution.maxValue;
 
    var newValue = lastSubValue + lastItem.v;
    if(newValue >= lastValue){
      // copy the subset of the last sub-problem solution
      var _lastSubSet = lastSubSolution.subset.slice();
      _lastSubSet.push(lastItem);
      return {maxValue: newValue, subset:_lastSubSet};
    }else{
      return lastSolution;
    }
  }
}
 
// test
var items = [
  {w:70,v:135},
  {w:73,v:139},
  {w:77,v:149},
  {w:80,v:150},
  {w:82,v:156},
  {w:87,v:163},
  {w:90,v:173},
  {w:94,v:184},
  {w:98,v:192},
  {w:106,v:201},
  {w:110,v:210},
  {w:113,v:214},
  {w:115,v:221},
  {w:118,v:229},
  {w:120,v:240},
];
 
var capacity = 750;
console.log(knapsack(items, capacity));
 
/* result 
 
{ maxValue: 1458,
  subset: 
   [ { w: 70, v: 135 },
     { w: 77, v: 149 },
     { w: 82, v: 156 },
     { w: 90, v: 173 },
     { w: 94, v: 184 },
     { w: 98, v: 192 },
     { w: 118, v: 229 },
     { w: 120, v: 240 } ] }
 
*/
Этот скрипт выводит ответ в виде объекта в консоль, можно ли сделать так что бы он выводил ответ на страницу в виде таблицы (HTML)?

И можно ли в вводить исходные данные на странице т.е через input или же через prompt()??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2017, 20:41
Ответы с готовыми решениями:

Как вывести данные из БД django на HTML страницу?
Нужно из БД django вытащить данные в виде таблицы. Способ нашёл только 1, но он не работает. На...

Как вывести введенные данные с админки на HTML страницу?
Всем привет! Как отобразить данные на странице? Мои жалкие попытки не принесли результатов....

Как вывести некоторые данные из файла json на страницу html?
Как с помощью JavaScript вывести некоторые данные из файла json на страницу html ? Нужно вывести...

Как вывести данные в html страницу в виде таблицы из mysql. php
Вот так могу &lt;?php require 'scripts/connect.php'; $sql_select = &quot;SELECT * FROM pers&quot;; $result...

1
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
20.12.2017, 12:03 2
Выложите скрипт сюда, у меня например нет аккаунта на github
0
20.12.2017, 12:03
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2017, 12:03
Помогаю со студенческими работами здесь

Как оптимально распарсить большую HTML страницу и получить нужные данные
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt; &lt;html dir=&quot;ltr&quot;&gt; &lt;head&gt;...

Как передать введенные в текстовое поле данные на другую страницу html как обычный абзацный текст?
Как передать введенные в текстовое поле данные на другую страницу html как обычный абзацный текст?

Как вывести график из mySQL на HTML страницу?
У меня есть база данных mySql, как мне вывести из неё данные на HTML страницу в виде графика?

Как вывести данные с БД на страницу?
Здравствуйте. Имею проблему с выводом данных из БД (mysql) на страницу с помощью Node.js (v....

Как вывести на страницу данные из таблиц(ы) БД?
Объясните пожалуйста, можно ли вывести данные из таблицы самым простым способом (не прибегая к...

Как вывести данные из объекта?
Есть объект config::gi() , он содержит: Config Object ( =&gt; Array ( ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как узнать какой процесс блокирует файл или каталог в Windows
bt_guru 23.01.2025
При работе с операционной системой Windows пользователи нередко сталкиваются с ситуацией, когда система отказывается выполнять определенные действия с файлами или каталогами, сообщая, что они. . .
Как в curl узнать код статуса HTTP запроса. Коды состояния HTTP
bt_guru 23.01.2025
Коды состояния HTTP играют значимую роль в обеспечении эффективного взаимодействия между клиентами и серверами. При работе с веб-сервисами важно не только отправлять запросы, но и правильно. . .
Как сортировать вывод команды ls в Linux
bt_guru 23.01.2025
В операционной системе Linux команда ls является одним из наиболее часто используемых инструментов для просмотра содержимого директорий. При работе с файловой системой пользователи регулярно. . .
Как сделать POST запрос с помощью curl
bt_guru 23.01.2025
curl - это мощный инструмент командной строки позволяет отправлять и получать данные через различные протоколы, включая HTTP, HTTPS, FTP и множество других. Особенно полезным curl становится при. . .
Прокрутка в tmux с помощью мыши и клавиатуры
bt_guru 23.01.2025
Tmux представляет собой мощный терминальный мультиплексор, который позволяет пользователям создавать и управлять несколькими терминальными сессиями внутри одного окна. Одной из важнейших функций tmux. . .
Как проверить, содержит ли массив значение в JavaScript. Поиск в массиве
bytestream 23.01.2025
Эффективный поиск значений в массивах становится критически важным навыком для разработчиков, использующих JavaScript. Процесс поиска элементов в массиве может показаться простым на первый взгляд,. . .
Как удалить тег Git в удалённом репозитории (remote)
bytestream 23.01.2025
Одним из важнейших механизмов организации версий в Git являются теги, которые позволяют помечать определенные точки в истории проекта как значимые. Теги часто используются для маркировки релизов,. . .
Чем отличаются URL, URI и URN
bytestream 23.01.2025
Системы идентификации представляют собой фундаментальный механизм, позволяющий однозначно определять местоположение и характеристики различных информационных объектов в глобальной сети. Эти системы. . .
Как центрировать div внутри другого div с помощью CSS. Управление расположением элементов в CSS
bytestream 23.01.2025
Позиционирование элементов играет ключевую роль в создании качественных и профессиональных интерфейсов. Одной из наиболее часто встречающихся задач является центрирование элементов на веб-странице,. . .
Что означают различные символы в синтаксисе PHP
bytestream 23.01.2025
PHP (Hypertext Preprocessor) представляет собой один из наиболее широко используемых языков программирования для веб-разработки, который обладает богатой и интересной историей развития. Изначально. . .
Способы клонирования объектов в JavaScript
bytestream 23.01.2025
В современной разработке на JavaScript работа с объектами является фундаментальной частью создания любого приложения. При манипуляции объектами часто возникает необходимость создавать их копии для. . .
Как проверить состояние чекбокса в jQuery. Как работать с чекбоксами
bytestream 23.01.2025
При разработке интерактивных веб-форм часто возникает необходимость программно определять состояние чекбоксов с помощью jQuery. Чекбоксы являются важными элементами пользовательского интерфейса,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru