¿Qué debo tener en cuenta al desarrollar / codificar un generador?

Tal vez tu puedas:

Primero haga varias bases de datos de todos los costos de los componentes:

CPUDatabase:

CPU | costo

CPU1 | c1

CPU2 | c2

MonitorDatabse:

Monitor | costo

Monitor1 | m1

Monitor2 | m2

Luego, debido a que el cliente puede requerir una compilación de computadora que tenga una mejor CPU, o tal vez un mejor monitor, necesitamos hacer varios patrones de plan (porcentaje de precio del componente del presupuesto).

Dado un presupuesto de entrada X, hay:

  • Patrón 1: CPU (a1% de X), Monitor (b1% de X) …
  • Patrón 2: CPU (a2% de X), Monitor (b2% de X) …
  • Patrón 3: CPU (a3% de X), Monitor (b3% de X) …

Luego, dadas las bases de datos y el presupuesto X, use la fuerza bruta para verificar los patrones necesarios,

por ejemplo, patrón 1:

CPU-maximum-budget = a1% * X;

Monitor-máximo-presupuesto = b1% * X;

Luego, dado el presupuesto máximo de cada componente, recorra la base de datos respectiva del componente, inserte los componentes, que tienen un precio inferior al presupuesto máximo del componente, en una lista respectiva:

lista de CPU esperadas:

Para cada CPU en CPUDatabase:
if (CPU.price <= CPU-maximum-budget) {
empuje la CPU a la lista de CPU esperadas;
}

lista de Monitores esperados:

foreach Monitor en MonitorDatabase:
if (Monitor.price <= Monitor-maximum-budget) {
empujar Monitor a la lista de Monitores esperados;
}

Luego debe hacer una lista de todas las combinaciones de componentes de hardware, digamos combinaciones-para-patrón1, y habrá un número de elemento de (lista de CPU esperadas) [math] * [/ math] element-number-of (lista de Monitores esperados) … muchos elementos de combinaciones para patrón1.

Pero como no todas las combinaciones están disponibles, debe crear una gran base de datos que contenga todas las listas de combinaciones disponibles (¿quizás <1000 combinaciones para una pequeña tienda de informática?), Luego, con esta base de datos de combinaciones disponibles, seleccione todas las combinaciones que existen tanto en las combinaciones-para-patrón1 como en la base de datos de combinaciones disponibles, luego elija la que tenga el valor más alto en estas combinaciones (para su propio beneficio).

El trabajo arduo aquí podría ser cómo hacer una base de datos de combinaciones disponibles, en este caso puede codificar todas las combinaciones disponibles en su tienda, o tal vez si según su experiencia tiene un mejor algoritmo para verificar y elegir los componentes disponibles. para hacer combinaciones de las primeras bases de datos que hicimos, luego bricolaje en este caso.

Comenzaría diseñando una base de datos de todos los componentes. Cada uno necesitará campos como nombre, cuántos requeridos, cuántos permitidos, costo, compatibilidad, amperios extraídos, etc. Por ejemplo, una fuente de alimentación tendría 1 requerido, 1 permitido y un número negativo de amperios extraídos. También tendrá que modelar el espacio físico utilizado por cada uno para asegurarse de que su construcción se ajuste al marco seleccionado. Cada compilación sería una lista de componente / cantidad. Una vez que haya configurado la base de datos, escriba un programa de administración para agregar / eliminar / actualizar componentes en su base de datos. En este punto, puede comenzar a pensar en la lógica y la interfaz de usuario de su programa generador.

Bueno, la prioridad más alta es, por supuesto, la compatibilidad entre partes de hardware, como la placa base necesita un zócalo adecuado para CPU, ranuras PCIe para GPU, etc.

Esto tiene el efecto de que al calcular la rentabilidad de una parte, también debe tener en cuenta las partes necesarias.

También hay otros factores, como el uso de RAM paralela frente a RAM única y la tasa de contacto máxima de RAM en comparación con la de la CPU (más rápido de lo que se dice que la CPU es inútil)

Hacer una compilación requerirá un motor de árbol de decisión.

Cada componente seleccionado hace una lista de la próxima ronda de elecciones. Si desea automatizar esto con base en el presupuesto, necesitará una versión aumentada del problema de empaque Bin: Wikipedia para seleccionar los componentes.

Para ser honesto, sería más fácil hacer trampas definiendo un grupo de categorías, definiendo algunas selecciones para cada categoría y presupuesto, eso sería todo.

More Interesting

¿Es legal construir un sitio web que use contenido de Instagram?

Como líder técnico y desarrollador web líder, ¿cuáles son las medidas de seguridad que debo tener en cuenta al iniciar por primera vez?

Comprar un tema de WordPress o contratar a un experto en tecnología, ¿cuál es mejor?

¿Qué curso completo de Udemy cubre mejor material?

¿Cuáles son las ventajas y desventajas de utilizar el nuevo inicio de sesión de Google+ en lugar de Facebook Connect?

¿Qué encuentran las personas experimentadas como el sitio de revisión más completo para alojamiento web?

¿Por dónde empiezas cuando revendes un creador de sitios web?

¿Cuánto tiempo llevará aprender Laravel Framework?

¿Cuánto tráfico necesita un sitio (o página) para ejecutar A / B o pruebas de conversión que produzcan resultados estadísticamente significativos (es decir, procesables)?

¿Cuál es el mejor lenguaje de programación para crear un sitio web (como un blog personal)?

Cuando desarrolla un modelo para el aprendizaje automático, ¿este modelo permanece en el lado del cliente o del servidor? ¿Cuál es la mejor manera de crear un modelo? ¿Dónde debería quedarse?

¿Qué es el cms? ¿Cómo podemos usar cms?

¿Vale la pena una universidad para la informática en el Reino Unido? Tengo 15 años y he sido autodidacta de desarrollo web completo, pruebas de lápiz y he leído libros de texto de nivel A superiores y me ha resultado fácil. ¿Hay alguna otra opción además de la universidad y la universidad?

¿Qué debería aprender primero: PHP con SQL, ASP.NET con C # o .NET con C #?

¿Cuáles son las ventajas y desventajas de crear una aplicación con Vue, React o Angular 2 en el lugar A en MEAN? ¿Se pueden intercambiar tan fácilmente y lograr los mismos objetivos?