Да, DeepSeek предлагает чушь собачью. Это катастрофа, а не формулы. Очень "доверительный" источник... Наглядный пример ужасного вайб-кодинга, когда ни кодер не понимает толком задачи и качества ее решения, ни нейросеть.
Нейросети не владеют фактами, они выдумывают набор слов, он частично совпадает с объективной реальностью, частично нет. Фильтры корпоративных нейросетей стараются отучить программу рассказывать сказки, в таких же сетях, как Дипсик, там даже фильтров на вранье почти нет. И нейросеть делает то, чему обучена: врет, подбирая наиболее подходящие слова. Тем сильнее нейросеть врет - чем более нереалистичная задача поставлена. Очевидно, вообще глупо было спрашивать машину о том, чего нет: машина не признается, что этого нет и быть не может, она сочинит формулы и факты, она так устроена, именно таков ее алгоритм: нанизать непротиворечивый набор слов в ответе на любой вопрос. Спросите Дипсика, в каком году Гагарин летал на Луну, и он расскажет вдохновенную историю. Спросите как посчитать плотности из цмиков - это полная аналогия Гагарина на Луне - и нейросеть сочинит слово за словом эти несуществующие формулы плотностей из цмиков. Такой чуши даже в интернете нельзя набраться, это целиком и полностью "творчество" нейросети без корпоративных фильтров от вранья. Нейросеть Дипсик врет, сочиняет ответ - и в этом сама суть ее работы. То что ответ далеко за границами объективной реальности нейросеть понятия не имеет, она просто подобрала слова в соответствии с их "весом" в наиболее частых возможных последовательностях друг за другом.
Я в голос ржал над вайб-кодом от Дипсика, перескажу коротко, ради смеха:
1) Вычисляется "плотность" как процентовка краски в степени гамма. Именно тут полная ахинея придумана нейросетью, так плотность вычислена быть не может. Под гаммой берется некое произвольное значение 1.5, по коду отметка, что это "Коэффициент нелинейности (можно настроить)". То есть по сути, "плотность" в логике Дипсик - это произвольная степенная функция от процентовки краски в макете. Конечно, колористу нужно тут просмеяться

, прежде чем идти по коду далее. Дипсик сочинил новую реальность и не споткнулся, лишь указал, что "нелинейность" степенной функции выбирается произвольно подгонкой "формулы" под результат.
2) Вычисляется по логарифмической функции яркость Y из плотности D, само по себе это почти корректно и почти совпадает с объективной реальностью.
3) Четыре яркости четырех красок складываются в тотальную яркость, перемножением друг на друга: "YTotal = YC * YM * YY * YK". Это второй раз по коду полная ахинея, находится за границами объективной реальности.
4) Из "тотальной яркости" с помощью логарифмической функции вычисляется плотность. Сам по себе логарифм тут опять-таки корректен, но учитывая то, что по коду вычисления в параграфах 1 и 3 представляют собой полную ерунду - результирующая "тотальная плотность" - тоже полная ерунда.
Кстати, чат гпт - частый посетитель этого форума. Возможно "вес" слов уточняет, возможно фильтры перепроверяют факты - что именно делает он тут мне неведомо. Но шарится. Если проверяет факты - пусть поржет вместе с нами над "формулами" Дипсика
Плохой вайб-код от Дипсика на память под спойлером:
Код: Выделить всё
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Расчет оптической плотности CMYK</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.container {
max-width: 400px;
margin: 0 auto;
}
label {
display: block;
margin-top: 10px;
}
input, select {
width: 100%;
padding: 8px;
margin-top: 5px;
box-sizing: border-box;
}
button {
margin-top: 20px;
padding: 10px 20px;
width: 100%;
background-color: #007BFF;
color: white;
border: none;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
.result {
margin-top: 20px;
font-weight: bold;
}
.debug {
margin-top: 10px;
font-family: monospace;
white-space: pre;
}
.error {
color: red;
font-size: 0.9em;
margin-top: 5px;
}
</style>
</head>
<body>
<div class="container">
<h1>Расчет оптической плотности CMYK</h1>
<!-- Поля ввода для CMYK -->
<label for="c">Cyan (C):</label>
<input type="text" id="c" maxlength="3" placeholder="0-100" oninput="validateInput(this)">
<div class="error" id="cError"></div>
<label for="m">Magenta (M):</label>
<input type="text" id="m" maxlength="3" placeholder="0-100" oninput="validateInput(this)">
<div class="error" id="mError"></div>
<label for="y">Yellow (Y):</label>
<input type="text" id="y" maxlength="3" placeholder="0-100" oninput="validateInput(this)">
<div class="error" id="yError"></div>
<label for="k">Black (K):</label>
<input type="text" id="k" maxlength="3" placeholder="0-100" oninput="validateInput(this)">
<div class="error" id="kError"></div>
<!-- Выбор типа бумаги -->
<label for="paper">Выберите тип бумаги:</label>
<select id="paper">
<option value="coated">Мелованная (ISO Coated v2 300% (ECI))</option>
<option value="uncoated">Офсетная (PSO Uncoated ISO12647 (ECI))</option>
</select>
<!-- Кнопка для расчета -->
<button onclick="calculateDensity()">Рассчитать</button>
<!-- Блоки для вывода результата и отладки -->
<div class="result" id="result"></div>
<div class="debug" id="debug"></div>
</div>
<script>
// Фактические нормы плотностей для 100% красок
const densities100 = {
coated: { C: 1.40, M: 1.40, Y: 1.20, K: 1.50 },
uncoated: { C: 1.25, M: 1.20, Y: 1.10, K: 1.30 }
};
// Коэффициент нелинейности (можно настроить)
const gamma = 1.5;
// Яркость бумаги (рассчитана для плотности 0.02)
const paperY = {
coated: Math.pow(10, -0.02), // Y = 10^(-D), где D = 0.02
uncoated: Math.pow(10, -0.02) // Y = 10^(-D), где D = 0.02
};
// Функция для проверки ввода
function validateInput(input) {
const value = input.value;
const errorElement = document.getElementById(`${input.id}Error`);
// Проверка на цифры и длину
if (!/^\d*$/.test(value) || value.length > 3) {
input.value = value.slice(0, 3).replace(/\D/g, '');
errorElement.textContent = "Введите число от 0 до 100.";
return;
}
// Проверка на диапазон
const numericValue = parseFloat(value);
if (numericValue < 0 || numericValue > 100) {
input.value = Math.min(100, Math.max(0, numericValue));
errorElement.textContent = "Значение должно быть от 0 до 100.";
return;
}
// Очистка сообщения об ошибке
errorElement.textContent = "";
}
// Функция для расчета плотности
const calculateD = (value, density100) => {
if (value === 0) return 0; // Если краска 0%, плотность = 0
return density100 * Math.pow(value / 100, gamma); // Нелинейная зависимость
};
// Функция для расчета яркости
const calculateY = (value, density100, paperY) => {
if (value === 0) return paperY; // Если краска 0%, яркость = яркость бумаги
const D = calculateD(value, density100); // Плотность для value% краски
return Math.pow(10, -D); // Яркость для value% краски
};
// Функция для расчета светлоты (L) из яркости (Y)
const calculateL = (Y) => {
if (Y <= 0) return 0;
return 116 * Math.pow(Y, 1 / 3) - 16;
};
// Основная функция расчета плотности
function calculateDensity() {
try {
// Получение значений из полей ввода
const c = Math.min(100, parseFloat(document.getElementById('c').value) || 0);
const m = Math.min(100, parseFloat(document.getElementById('m').value) || 0);
const y = Math.min(100, parseFloat(document.getElementById('y').value) || 0);
const k = Math.min(100, parseFloat(document.getElementById('k').value) || 0);
const paperType = document.getElementById('paper').value;
// Рассчитываем яркость для каждой краски
const YC = calculateY(c, densities100[paperType].C, paperY[paperType]);
const YM = calculateY(m, densities100[paperType].M, paperY[paperType]);
const YY = calculateY(y, densities100[paperType].Y, paperY[paperType]);
const YK = calculateY(k, densities100[paperType].K, paperY[paperType]);
// Рассчитываем светлоту для каждой краски
const LC = calculateL(YC);
const LM = calculateL(YM);
const LY = calculateL(YY);
const LK = calculateL(YK);
// Рассчитываем общую яркость заливки
const YTotal = YC * YM * YY * YK;
// Рассчитываем общую светлоту заливки
const LTotal = calculateL(YTotal);
// Рассчитываем оптическую плотность заливки
const densityTotal = -Math.log10(YTotal);
// Выводим результат
document.getElementById('result').innerText = `Оптическая плотность: ${densityTotal.toFixed(3)}`;
} catch (error) {
document.getElementById('result').innerText = "Ошибка расчета. Проверьте введенные данные.";
console.error(error);
}
}
</script>
</body>
</html>