Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
11 / 11 / 8
Регистрация: 06.01.2018
Сообщений: 134

Бесконечное выполнение программы

02.02.2018, 16:19. Показов 1961. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал простейшую нейросеть (или что-то похожее на неё)
Pascal
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
program NeuralNet;
uses crt;
var x, y:real;
    w:real;
    trueres, neuralres:real;
    i:integer;
begin
  clrscr;
  randomize;
  x:=random(10)+1;
  y:=random(10)+1;
  trueres:=x+y;
  writeln(x, ' + ', y, ' = ???');
  writeln('true res = ', trueres);
  neuralres:=0;
  w:=0.1;
  
  while trueres<>neuralres do
  begin
    inc(i);
    writeln('try №', i);
    neuralres:=x*w+y*w;
    writeln('neural res = ', neuralres);
    if neuralres<trueres then
      w:=w+0.1
    else
      if neuralres>trueres then
        w:=w-0.1;
  end;
end.
Её задача - научиться складывать числа в диапазоне 1..10. 2 входных нейрона - числа которые надо сложить, выходной нейрон - их сумма.
Сначала я подсчитываю правильный результат (переменная trueres), чтобы впоследствии сравнивать его с результатом программы. Изначальный вес каждого нейрона - 0.1. По задумке, программа должна увеличивать вес на 0.1, если полученный ответ меньше нужного. Опять же, по задумке, это должно продолжаться до того, как вес не будет равняться единице (тоесть, нейросеть должна обучиться складывать числа за 1/0.1-1=9 шагов). Счётчик шагов встроен в программу и, если её запустить, то работать она будет бесконечно, и счётчик шагов перевалит за 9.
Можете объяснить, в чём здесь проблема?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2018, 16:19
Ответы с готовыми решениями:

Бесконечное выполнение программы
Как сделать так, чтобы программа выполнялась бесконечно, пока не будет нажато &quot;5&quot;? То есть, выполнилась операция 3 и с самого...

Бесконечное выполнение QProcess.close()
Код не менял и всё работало,но теперь, почему-то,бесконечно висит на 72 строке. void MainWindow::ping() { const QString...

Бесконечное выполнение одного и того же действия
Аля Ваас! :-) А теперь к делу, есть код: #include &lt;iostream&gt; #include &quot;Windows.h&quot; using namespace std;

4
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
02.02.2018, 16:52
Цитата Сообщение от EvilDog17 Посмотреть сообщение
while trueres<>neuralres do
Сравнивать вычисленные вещественные значения можно только с определенной точностью, например
Pascal
1
while abs(trueres-neuralres)>0.01 do
1
11 / 11 / 8
Регистрация: 06.01.2018
Сообщений: 134
02.02.2018, 17:02  [ТС]
Но тогда программа не будет доходить до правильного ответа. Если у нас будут числа 8 и 4, то прога прекратит выполнение на десятом шагу и выдаст ответ 11.999999999999998, что не является правильным результатом.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
02.02.2018, 17:06
Если хотите точного совпадения делайте шаг целым числом(например 1) и все вычисления в целых числах. Получить результат можно в конце, взяв результат/10 или результат div 10.
1
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
06.02.2018, 09:19
Двоичное представление десятичного значения 0,1 выглядит так: 0,0001100011…
Число знаков после запятой зависит от мантиссы числа в представлении компьютера.
Попробуем ограниченное 10 знаками после запятой двоичное представление числа вернуть обратно к десятичному:

0.0001100011 → https://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{-4}+{2}^{-5}+{2}^{-9}+{2}^{-10} = 0,0625 + 0,03125 + 0,001953125 + 0,0001953125 = 0,0958984375

Полученное число отличается от 0,1 более чем на 0.004.
В TP тип Real занимает 6 байт, но оно всё равно не даёт точного значения равного 0,1 так, как это мы представляем себе в математике, которую мы изучали в школе!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2018, 09:19
Помогаю со студенческими работами здесь

Бесконечное выполнение скрипта раз в секунду
Такая проблема: нужно организовать выполнение скрипта раз в 1 секунду независимо, находится ли кто на сайте или нет. другими словами:...

Организовать бесконечное выполнение функции с помощью ленивых вычислений
Привет всем) как можно организовать в джаве бесконечное выполнение функции ∑ (a+b)/n с помощью ленивых вычислений? а и б - это...

Постепенное выполнение программы/зависание программы при выполнении
Собственно есть вопрос, возможно очень даже глупый, но все же спрошу: почему при выполнении большого кол-ва операций программа повисает, а...

Выполнение другой программы по завершению основной программы
Доброго времени суток форумчане. Делаю алгоритм для обновления программы. скачиваю обновления с FTP сервера в папку. Подскажите пожалуйста,...

Выполнение команд консольной программы из другой программы
Подскажите пожалуйста можно ли получить контроль над консольной прогой из другой самописной проги. То есть есть запущеная консольная прога,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru