{
  "schemaVersion": 1,
  "id": "P27-C05",
  "title": "Освещение: округление вверх на точной границе",
  "author": {
    "id": "P27",
    "name": "Филипп Нестеров"
  },
  "specialty": "Калькуляторы и подборщики для продаж",
  "projectStatus": "concept",
  "source": {
    "document": "catalogue_60_personas.md",
    "briefId": "P27-C05",
    "title": "Комплект освещения",
    "kind": "editorial_concept",
    "data": "synthetic"
  },
  "context": "В модели площади 24 м² заданы 300 лк, запас 1,2, световой поток 1200 лм и использование 0,6.",
  "decision": "Считаю требуемый и полезный поток отдельно, затем округляю частное вверх. Для десятичных вводных использую точное рациональное вычисление границы: математические 11 не должны стать 12 из-за двоичного представления 1,1.",
  "constraint": "Самостоятельный калькулятор использует заданные допущения. Он не является коммерческой сметой, инженерным заключением или подтверждением условий поставщика.",
  "steps": [
    "Исходные значения: требуемый поток 8640 лм, полезный 720 лм, количество 12.",
    "Площадь 1, цель 100, запас 1,1, поток 100, использование 0,1: количество 11.",
    "Высота вне 2–3 м: модель отклоняет ввод."
  ],
  "inspection": [
    "Исходные значения: требуемый поток 8640 лм, полезный 720 лм, количество 12.",
    "Площадь 1, цель 100, запас 1,1, поток 100, использование 0,1: количество 11.",
    "Высота вне 2–3 м: модель отклоняет ввод.",
    "Скачать расчет: коэффициенты и промежуточные строки сохранены."
  ],
  "sample": {
    "headers": [
      "Действие",
      "Наблюдаемый результат"
    ],
    "rows": [
      [
        "1",
        "Исходные значения: требуемый поток 8640 лм, полезный 720 лм, количество 12."
      ],
      [
        "2",
        "Площадь 1, цель 100, запас 1,1, поток 100, использование 0,1: количество 11."
      ],
      [
        "3",
        "Высота вне 2–3 м: модель отклоняет ввод."
      ],
      [
        "4",
        "Скачать расчет: коэффициенты и промежуточные строки сохранены."
      ]
    ]
  },
  "sampleNote": "Самостоятельный проект на подготовленных исходных данных. Действия выполняются локально.",
  "caseStudy": {
    "role": "Разработка расчётной модели",
    "contribution": "Реализовал открытые формулы, промежуточные значения, проверку диапазонов и граничные случаи именно этой модели.",
    "objective": "Предварительное количество светильников объясняется потоком и коэффициентами.",
    "problem": "В модели площади 24 м² заданы 300 лк, запас 1,2, световой поток 1200 лм и использование 0,6.",
    "result": "На исходных данных получается 12 светильников. В контрольной точке 1 × 100 × 1,1 / (100 × 0,1) результат равен ровно 11.",
    "deliverables": [
      "Проверяемая модель",
      "Сохраняемый результат взаимодействия",
      "Исходные данные и порядок самостоятельной проверки"
    ],
    "blocks": [
      {
        "type": "text",
        "title": "Точная граница перед округлением",
        "text": "Считаю требуемый и полезный поток отдельно, затем округляю частное вверх. Для десятичных вводных использую точное рациональное вычисление границы: математические 11 не должны стать 12 из-за двоичного представления 1,1."
      },
      {
        "type": "text",
        "title": "Ровно одиннадцать",
        "text": "Для 20 м², 300 лк, запаса 1,1, потока 1000 лм и коэффициента 0,6 получается 6600 / 600 = 11. Это целое значение остаётся 11, даже если промежуточное двоичное число чуть больше математического."
      },
      {
        "type": "callout",
        "title": "Граница работы",
        "text": "Самостоятельный калькулятор использует заданные допущения. Он не является коммерческой сметой, инженерным заключением или подтверждением условий поставщика."
      }
    ]
  },
  "deliverable": {
    "type": "calculator",
    "entry": "/catalogue/deliverables/p27-c05/index.html",
    "label": "Открыть работающий результат",
    "files": [
      {
        "path": "/catalogue/deliverables/p27-c05/index.html",
        "name": "Интерактивный результат",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p27-c05/source.json",
        "name": "Исходные условия и модель",
        "mimeType": "application/json"
      },
      {
        "path": "/catalogue/deliverables/p27-c05/README.html",
        "name": "Повторить проверку",
        "mimeType": "text/html"
      },
      {
        "path": "/catalogue/deliverables/p27-c05/starter-data.json",
        "name": "Исходный набор для повторного использования",
        "mimeType": "application/json"
      }
    ],
    "summary": "На исходных данных получается 12 светильников. В контрольной точке 1 × 100 × 1,1 / (100 × 0,1) результат равен ровно 11."
  },
  "calculator": {
    "kind": "lighting",
    "title": "Предварительное количество светильников",
    "inputs": [
      {
        "id": "area",
        "label": "Площадь",
        "type": "number",
        "value": 24,
        "unit": "м²",
        "min": 1,
        "max": 500,
        "step": 1
      },
      {
        "id": "height",
        "label": "Высота помещения",
        "type": "number",
        "value": 2.8,
        "unit": "м",
        "min": 2,
        "max": 3,
        "step": 0.1
      },
      {
        "id": "targetLux",
        "label": "Целевая освещенность в модели",
        "type": "number",
        "value": 300,
        "unit": "лк",
        "min": 50,
        "max": 1000,
        "step": 10
      },
      {
        "id": "fixtureLumens",
        "label": "Поток одного светильника",
        "type": "number",
        "value": 1200,
        "unit": "лм",
        "min": 100,
        "max": 20000,
        "step": 100
      },
      {
        "id": "utilization",
        "label": "Коэффициент использования",
        "type": "number",
        "value": 0.6,
        "unit": "",
        "min": 0.1,
        "max": 1,
        "step": 0.05
      },
      {
        "id": "reserve",
        "label": "Коэффициент запаса",
        "type": "number",
        "value": 1.2,
        "unit": "",
        "min": 1,
        "max": 2,
        "step": 0.1
      }
    ],
    "formula": "Количество = ceil(площадь × целевая освещенность × запас / (поток светильника × коэффициент использования)).",
    "assumptions": [
      "300 лк — выбранное значение модели, не нормативное требование.",
      "При высоте вне2–3 м расчет останавливается для отдельного подбора.",
      "Нет распределения света, проверки бликов, поверхностей, схемы размещения и нормативного заключения."
    ],
    "tests": [
      {
        "values": {
          "area": 24,
          "height": 2.8,
          "targetLux": 300,
          "fixtureLumens": 1200,
          "utilization": 0.6,
          "reserve": 1.2
        },
        "expected": {
          "quantity": 12
        }
      },
      {
        "values": {
          "height": 3.5
        },
        "expected": {
          "error": true
        }
      },
      {
        "values": {
          "fixtureLumens": 0
        },
        "expected": {
          "error": true
        }
      }
    ]
  },
  "takeaway": "На исходных данных получается 12 светильников. В контрольной точке 1 × 100 × 1,1 / (100 × 0,1) результат равен ровно 11.",
  "capabilities": [
    "completed_calculator",
    "live_calculation",
    "input_validation"
  ],
  "externalConnections": []
}
