The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Calculate Scratch Server включён в Реестр ПО, opennews (??), 16-Окт-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


16. "Calculate Scratch Server включён в Реестр отечественного ПО"  –11 +/
Сообщение от pavlinux (ok), 16-Окт-21, 14:50 
>  Тут всё чисто.

Если машину обтянуть плёнкой, она не станет от этого полиуретановой.  


Суть ПО - это функциональные алгоритмы.  


int factorial (int n)
{
  return (n < 2) ? 1 : n * factorial (n - 1);
}

Хоть Путин с Песковым это на житхабе опубликуют и РПЦ окропит, копипастой оно не перестанет быть  
Ответить | Правка | Наверх | Cообщить модератору

21. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от ET (?), 16-Окт-21, 15:02 
как-то вы однобоко к сути ПО подошли, даже совсем — рекурсивно$; ведь есть и ООП, и просто процедуры, в общем все средства хороши если они уместны
Ответить | Правка | Наверх | Cообщить модератору

164. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Sw00p aka Jerom (?), 17-Окт-21, 00:28 
бегом изучать тезис Черча-Тьюринга :)
Ответить | Правка | Наверх | Cообщить модератору

25. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от n00by (ok), 16-Окт-21, 15:12 
> Суть ПО - это функциональные алгоритмы.

 
int factorial (int n)
{
  return (n < 2) ? 1 : n * factorial(n - 1);
}

Дык эта функция -- чистая. А ПО существует ради побочного эффекта.

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

60. "Calculate Scratch Server включён в Реестр отечественного ПО"  –5 +/
Сообщение от pavlinux (ok), 16-Окт-21, 16:58 
>> Суть ПО - это функциональные алгоритмы.
> Дык эта функция -- чистая. А ПО существует ради побочного эффекта.

Тебе бы в маркетологи ,а не в байтах ковырятся.

Автомобиль - это 4 колеса, двиган, коробка, тормоза, сидухи и руль под крышей,
выхлопы, налоги, ТО, поломки, аварии и штрафы, ...,
а не: ".. воплощение перфекционизма, динамики и уверенности, поражение элегантностью образа
и технической безупречностью, подчёркивание спортивного стиля и наслаждение неизменно
яркими ощущениями от вождения..."

Ответить | Правка | Наверх | Cообщить модератору

78. "Calculate Scratch Server включён в Реестр отечественного ПО"  +2 +/
Сообщение от n00by (ok), 16-Окт-21, 17:34 
При чём тут автомобиль, когда мы обсуждаем конкретный код? Та функция ничего не делает, кроме обогрева космического пространства. Оно и без подобного ПО перегрелось бы, если бы не расширялось.
Ответить | Правка | Наверх | Cообщить модератору

117. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Michael Shigorinemail (ok), 16-Окт-21, 20:09 
А если натянуть, как МСВС на глобус -- то вдруг станет?
Стыдно, Павел.
Стыдно.
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

180. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Ordu (ok), 17-Окт-21, 04:43 
> int factorial (int n)
> {
>   return (n < 2) ? 1 : n * factorial (n - 1);
> }

Я вот всё думаю, что это очень тупой способ реализовывать факториал для int'ов. Для скольки разных n эта функция даст корректный результат без переполнения? Чуть больше десятка ведь, так? От нуля и до 12..15, где-то так? Эти 15 значений можно задать табличкой и извлекать оттуда значения, вместо того, чтобы перемножать в цикле.

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

188. "Calculate Scratch Server включён в Реестр отечественного ПО"  +1 +/
Сообщение от Sw00p aka Jerom (?), 17-Окт-21, 11:23 
пример умного способа в студию
Ответить | Правка | Наверх | Cообщить модератору

193. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Ordu (ok), 17-Окт-21, 18:19 
> пример умного способа в студию

int factorial(int n) {
    const int FACTORIALS[] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600};
    const int N = (int)(sizeof(FACTORIALS)/sizeof(FACTORIALS[0]));
    
    assert((n >= 0) && (n < N));
    return FACTORIALS[n];
}

Ответить | Правка | Наверх | Cообщить модератору

196. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Sw00p aka Jerom (?), 17-Окт-21, 19:20 
>479001600

интересно посмотреть на алгоритм который вычислил это значение.

Ответить | Правка | Наверх | Cообщить модератору

197. "Calculate Scratch Server включён в Реестр отечественного ПО"  +1 +/
Сообщение от Ordu (ok), 17-Окт-21, 20:03 
>>479001600
> интересно посмотреть на алгоритм который вычислил это значение.

Какое он имеет отношение к делу? Мы говорим о реализации функции factorial? Выше реализация приведена.

Но если тебе так интересно, то вот:

fn main() {
    let mut factorials = vec![1i32];
    for i in 1.. {
    if let Some(next) = factorials.last().unwrap().checked_mul(i) {
        factorials.push(next);
    } else {
        break;
    }
    }
    println!("{:?}", factorials);
}

Ответить | Правка | Наверх | Cообщить модератору

202. "Calculate Scratch Server включён в Реестр отечественного ПО"  –1 +/
Сообщение от Sw00p aka Jerom (?), 17-Окт-21, 21:50 
> Какое он имеет отношение к делу?

ваш пример выше это тупо вывод заранее вычисленных значений, но не сам алгоритм вычисления.

>Мы говорим о реализации функции factorial?

именно, алгоритм вычисления значения факториала от n-го числа.

> Выше реализация приведена.

повторяю, то что вы привели выше, это вывод заранее вычисленных значений, и это не есть алгоритм вычисления факториала.

> Но если тебе так интересно, то вот:

вот этот алгоритм и надо было приводить, и вычислите с его помощью факториал от n=13


Ответить | Правка | Наверх | Cообщить модератору

203. "Calculate Scratch Server включён в Реестр отечественного ПО"  +1 +/
Сообщение от Ordu (ok), 17-Окт-21, 23:10 
>>Мы говорим о реализации функции factorial?
> именно, алгоритм вычисления значения факториала от n-го числа.

Ты сейчас путаешь алгоритмы и реализацию функции. Алгоритмы -- это то, чем занимаются студенты первого курса. Реализация -- это то, чем занимаются программисты.

>> Но если тебе так интересно, то вот:
> вот этот алгоритм и надо было приводить, и вычислите с его помощью
> факториал от n=13

Ты не сможешь вычислить факториал 13 на типе int. О чём я и говорю: всего 13 значений факториала лезут в int. А раз так, то зачем считать, когда можно табличкой задать?

Ответить | Правка | Наверх | Cообщить модератору

205. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Sw00p aka Jerom (?), 18-Окт-21, 00:11 
> Ты сейчас путаешь алгоритмы и реализацию функции. Алгоритмы -- это то, чем
> занимаются студенты первого курса. Реализация -- это то, чем занимаются программисты.

Ясно, вопросов нет.

> Ты не сможешь вычислить факториал 13 на типе int. О чём я
> и говорю: всего 13 значений факториала лезут в int. А раз
> так, то зачем считать, когда можно табличкой задать?

так я и задал вопрос, откуда взять табличку? И собственно, вернусь к началу про "умный" алгоритм. Рекурсивная версия алгоритма показалась вам "тупой", и вы привели пример своего "умного" итеративного алгоритма. В итоге, ваш "умный" и рекурсивный "тупой" алгоритмы не способны вычислить факториал при n=13. Отсюда, вопрос - в чем разница? Выходит, что ваш "умный" алгоритм - такой же "тупой". Стек переполнится у "тупого" алгоритма? (как выяснилось, там не превысит 12 стек фреймов глубина рекурсивных вызовов, человек который привел пример рекурсивного, скорее не знаком с версией реализации алгоритма с хвостовой рекурсией)


Ответить | Правка | Наверх | Cообщить модератору

207. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Ordu (ok), 18-Окт-21, 01:19 
>> Ты сейчас путаешь алгоритмы и реализацию функции. Алгоритмы -- это то, чем
>> занимаются студенты первого курса. Реализация -- это то, чем занимаются программисты.
> Ясно, вопросов нет.

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

>> Ты не сможешь вычислить факториал 13 на типе int. О чём я
>> и говорю: всего 13 значений факториала лезут в int. А раз
>> так, то зачем считать, когда можно табличкой задать?
> так я и задал вопрос, откуда взять табличку? И собственно, вернусь к
> началу про "умный" алгоритм. Рекурсивная версия алгоритма показалась вам "тупой", и
> вы привели пример своего "умного" итеративного алгоритма.

Нет, моя реализация -- это просто индексация таблички, её даже "алгоритмом" называть -- натягивать сову на глобус.

> В итоге, ваш "умный"
> и рекурсивный "тупой" алгоритмы не способны вычислить факториал при n=13. Отсюда,
> вопрос - в чем разница?

В том, что мой "алгоритм" -- это одна индексация таблички, а не n умножений. Быстро, резво.

Ответить | Правка | Наверх | Cообщить модератору

208. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Sw00p aka Jerom (?), 18-Окт-21, 01:41 
>В том, что мой "алгоритм" -- это одна индексация таблички, а не n умножений. Быстро, резво.

ваш "алгоритм" не существует, пока нет "n умножений".

Ответить | Правка | Наверх | Cообщить модератору

210. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Ordu (ok), 18-Окт-21, 02:29 
>>В том, что мой "алгоритм" -- это одна индексация таблички, а не n умножений. Быстро, резво.
> ваш "алгоритм" не существует, пока нет "n умножений".

Мне пох на существование. Мне главное, чтобы работало.

Ответить | Правка | К родителю #208 | Наверх | Cообщить модератору

236. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от n00by (ok), 18-Окт-21, 15:56 
>>>В том, что мой "алгоритм" -- это одна индексация таблички, а не n умножений. Быстро, резво.
>> ваш "алгоритм" не существует, пока нет "n умножений".
> Мне пох на существование. Мне главное, чтобы работало.

Исходная функция чистая, следовательно детерминированная. Детерминированность как раз означает, что её алгоритм может быть реализован таблицей (вопрос в размере таблицы). Гипотетически, компилятор мог бы за тебя всё просчитать и построить таблицу.

Ответить | Правка | К родителю #210 | Наверх | Cообщить модератору

230. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от pavlinux (ok), 18-Окт-21, 11:56 
>> int factorial (int n)
>> {
>>   return (n < 2) ? 1 : n * factorial (n - 1);
>> }
> Я вот всё думаю, что это очень тупой способ реализовывать факториал

Их 100500 вариантов, надо было все копипастить?

Ответить | Правка | К родителю #180 | Наверх | Cообщить модератору

238. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Ordu (ok), 18-Окт-21, 20:22 
> Их 100500 вариантов, надо было все копипастить?

Я не знаю, что надо было, поскольку не понимаю, что ты хочешь сказать. Но расчёты факториалов в int'ах -- глупость несусветная, я даж не представляю зачем это может быть надо на практике.

Ответить | Правка | Наверх | Cообщить модератору

247. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от pavlinux (ok), 19-Окт-21, 12:00 
Ты никак факториал по другому не подсчитаешь.
Можешь потрахацца с n! = Г(n+1), но чот сомневаюсь, что это быстрее,
и там экспонента... как ты будешь узнаешь, что exp(123456789) * 123456789^(123456789-1) = нужному целому, я тож ниипу

> Но расчёты факториалов в int'ах -- глупость

Открою тайну, в компах ВСЁ - int!

> я даж не представляю зачем это может быть надо на практике.

Вот чо вас прёт на форуме,в новостях, ваще про другую тему, заниматься начёсом кармы?

Факториал, как любая рекуррентная х..ня высчитывается любым алгоритмом с двумя переменными.
Это может быть матричное (векторное) умножение (2x1), связанные списки (с двумя хваостами),
умножение с накоплением (накопитель + оператор), императивный цикл с изменяемыми переменными (двумя), битовые сдвиги, ...


Факториал в сообщении был как пример самой примитивнишей функции, проще только умножение,
вместо него можно подставить любой патентный алгоритм JPEG, MP4, VP9, H265, Ядро Nvidia GeForce, Pentium,...  


А эти распилоиды, взяли, собрали всё в кучу и обозвали Национальным ПО.



Ответить | Правка | Наверх | Cообщить модератору

261. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от n00by (ok), 21-Окт-21, 06:28 
> А эти распилоиды, взяли, собрали всё в кучу и обозвали Национальным ПО.

Эта контора берёт лист картона, распиливает на кусочки и этим зарабатывает. Линукс внедрили для себя. Поделились с людьми, денег за это не берут. Люди попросили включить в реестр. https://wiki.calculate-linux.org/ru/history

И таки они написали свой инсталлятор и утилиты администрирования. Сравните с Rosa Tresh из соседней новости, где выкинули RPM5, поскольку не умеют исправлять переполнения стека, даже когда строка с ошибкой им известна.

Ответить | Правка | Наверх | Cообщить модератору

181. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Аноним (181), 17-Окт-21, 07:22 
Рекурсия - красиво. Но в вашей функции есть пара проблем. Первая - тип int. Вторая - при нескольких рекурсивных вызовах (около 2-3 десятков) "загадится" стек. Впрочем, при больших n первая проблема сработает раньше. Ни когда не приименяйте рекурсию без контроля числа вызовов.
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

189. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Sw00p aka Jerom (?), 17-Окт-21, 11:28 
описанные вами проблемы - не проблемы алгоритма, а архитектуры вашего компьютера, точнее его ограничения.
Ответить | Правка | Наверх | Cообщить модератору

201. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Минона (ok), 17-Окт-21, 21:37 
Хвостовая рекурсия отлично оптимизируется компиляторами.
Ответить | Правка | К родителю #181 | Наверх | Cообщить модератору

200. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Минона (ok), 17-Окт-21, 21:33 
>Суть ПО - это функциональные алгоритмы.  

Без управляющих алгоритмов такое ПО бесполезно.

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

206. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Sw00p aka Jerom (?), 18-Окт-21, 00:14 
> Без управляющих алгоритмов такое ПО бесполезно.

это что за определение - "управляющий алгоритм"?

Ответить | Правка | Наверх | Cообщить модератору

223. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Минона (ok), 18-Окт-21, 07:23 
>> Без управляющих алгоритмов такое ПО бесполезно.
> это что за определение - "управляющий алгоритм"?

ты под санциями у гугла?

Ответить | Правка | Наверх | Cообщить модератору

228. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Sw00p aka Jerom (?), 18-Окт-21, 11:28 
под "управляющим" алгоритмом блокировок
Ответить | Правка | Наверх | Cообщить модератору

231. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Минона (ok), 18-Окт-21, 12:03 
> под "управляющим" алгоритмом блокировок

🤷‍♂️

Ответить | Правка | Наверх | Cообщить модератору

232. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от pavlinux (ok), 18-Окт-21, 12:04 
>>Суть ПО - это функциональные алгоритмы.
> Без управляющих алгоритмов такое ПО бесполезно.

Ваши управляющие - ноль, без функциональных.   Можешь проверить, натянув Windows 11 на i80386SX

Ответить | Правка | К родителю #200 | Наверх | Cообщить модератору

233. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Минона (ok), 18-Окт-21, 12:33 
>>>Суть ПО - это функциональные алгоритмы.
>> Без управляющих алгоритмов такое ПО бесполезно.
> Ваши управляющие - ноль, без функциональных.    

они ноль друг без друга.

> Можешь проверить, натянув Windows 11 на i80386SX

ты сломал мне ассоциативный преобразователь.

Ответить | Правка | Наверх | Cообщить модератору

253. "Calculate Scratch Server включён в Реестр отечественного ПО"  +/
Сообщение от Robin Bobin (?), 20-Окт-21, 00:43 
Фу мля тернарные выражения, гавнокодеры это любят.
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру