JH_Day1

基础概念:

随机变量:有多种可能的取值的变量

P(A):事件 A 发⽣的概率

E(X):随机变量 X 的期望值,E\left ( X \right )=\sum_{i=1}P(X=i)*i

独⽴事件:互相不影响的事件,满⾜ P(AB)=P(A)P(B)

对于独⽴事件,我们有 E(AB)=E(A)E(B)

证明:

E(AB)=\sum_{i=0}^{n}\sum_{j=0}^{n}P(A=i)*P(B=j)*i*j

              =(\sum_{i=0}^{n}P(A=i)*i)*(\sum_{j=0}^{n}P(B=j)*j)

              =E(A)*E(B)

公式:

  • \sum_{i=0}^{n}x^{i}=\frac{1-x^{n+1}}{1-x}
  • \sum_{i=0}^{\infty }x^{i}=\frac{1}{1-x}\left ( 0<x<1 \right )
  • 划重点:E[X+Y]=E[X]+E[Y]

前缀和技巧:

P\left ( X=K \right )=P\left ( X<=K \right )-P\left ( X<=K-1\right )

大部分期望题可以用这个技巧进行计算,我们简单地用它来证明一下:概率为 p 的事件期望 1/p 次后发⽣

    E(X)=\sum_{i=1}P(X=i)*i

 =\sum_{i=1}(P(X\geq i)-P(X\geq i+1))*i

 =\sum_{i=1}((1-p)^{i-1}-(1-p)^{i})*i

 =\sum_{i=0}(1-p)^{i}

 =\frac{1}{p}

拿球问题:

理解起来不难,记住任何球都是平等的就行了

游走问题:

套路一般是计算在某个位置到不同位置的各种情况(情况一般不多),尝试设置状态对解题帮助很大,有些可以解方程,也有些是通过DP解决

总结:

做期望题,多用前缀和技巧来计算求解,经典题很多都有套路,掌握后即可,但有些题思维难度较大,需要一定的解题技巧

WITH un_hatchu_taisho_item_data_json( get_information ) AS ( VALUES ( #{unHatchuTaishoItemDataJson} ::JSON ) ), un_hatchu_taisho_item_list AS ( SELECT json_array_elements(get_information ::json) ->> 'item_code' ::VARCHAR AS item_code ,json_array_elements(get_information ::json) ->> 'shipment' ::VARCHAR AS shipment ,json_array_elements(get_information ::json) ->> 'first_delivery_date' ::VARCHAR AS first_delivery_date ,json_array_elements(get_information ::json) ->> 'delivery_date' ::VARCHAR AS delivery_date ,json_array_elements(get_information ::json) ->> 'pattern_type' ::VARCHAR AS pattern_type ,json_array_elements(get_information ::json) ->> 'pattern_code' ::VARCHAR AS pattern_code ,json_array_elements(get_information ::json) ->> 'delivery_schedule_code' ::VARCHAR AS delivery_schedule_code ,json_array_elements(get_information ::json) ->> 'host_cycle_code' ::VARCHAR AS host_cycle_code ,json_array_elements(get_information ::json) ->> 'store_cycle_code' ::VARCHAR AS store_cycle_code ,json_array_elements(get_information ::json) ->> 'lead_time' ::VARCHAR AS lead_time ,json_array_elements(get_information ::json) ->> 'new_week_type' ::VARCHAR AS new_week_type FROM un_hatchu_taisho_item_data_json ) </if> <if test='unHatchuTaishoItemDataJson == "{}"' > un_hatchu_taisho_item_list AS ( SELECT NULL AS item_code ,NULL AS shipment ,NULL AS first_delivery_date ,NULL AS delivery_date ,NULL AS pattern_type ,NULL AS pattern_code ,NULL AS delivery_schedule_code ,NULL AS host_cycle_code ,NULL AS store_cycle_code ,NULL AS lead_time ,NULL AS new_week_type ) </if> , next_tentative_order_dateWK AS ( SELECT hhas.item_code AS item_code , hhas.shipment AS shipment , hhas.first_delivery_date :: DATE AS first_delivery_date , hhas.delivery_date :: DATE AS delivery_date , MIN(hsm.order_date) :: DATE AS cost_unit_item_next_plan_order_date , MIN(hsm2.order_date) :: DATE AS forward_tilt_item_next_plan_order_date , MAX(hhas.pattern_type) AS pattern_type , MAX(hhas.pattern_code) AS pattern_code FROM un_hatchu_taisho_item_list hhas INNER JOIN m_order_schedule hsm ON hsm.pattern_type = hhas.pattern_type AND hsm.pattern_code = hhas.pattern_code AND hsm.delivery_schedule_code = hhas.delivery_schedule_code AND hsm.order_date > #{specifyOrderDate} :: DATE AND hsm.host_cycle_code = hhas.host_cycle_code AND hsm.store_cycle_code = hhas.store_cycle_code AND hsm.lead_time = hhas.lead_time AND hsm.version = #{orderScheduleVersion} LEFT OUTER JOIN m_order_schedule hsm2 ON hsm2.pattern_type = hhas.pattern_type AND hsm2.pattern_code = hhas.pattern_code AND hsm2.delivery_schedule_code = hhas.delivery_schedule_code AND hsm2.order_date > #{specifyOrderDate} :: DATE AND hsm2.host_cycle_code = hhas.host_cycle_code AND hsm2.store_cycle_code = hhas.store_cycle_code AND hsm2.lead_time = hhas.lead_time AND hsm2.version = #{orderScheduleVersion} AND hhas.first_delivery_date IS NOT NULL AND hsm2.delivery_date > hhas.first_delivery_date :: DATE WHERE hhas.new_week_type <> '9' GROUP BY hhas.item_code , hhas.shipment , hhas.first_delivery_date , hhas.delivery_date ) ,next_order_dateWK AS ( SELECT jph.item_code AS item_code , jph.shipment AS shipment , jph.first_delivery_date AS first_delivery_date , jph.delivery_date AS delivery_date , CASE WHEN jph.cost_unit_item_next_plan_order_date >= #{nextWeekMonday}:: DATE THEN MIN(hsm3.order_date) ELSE jph.cost_unit_item_next_plan_order_date END AS cost_unit_item_next_order_date , CASE WHEN jph.forward_tilt_item_next_plan_order_date >= #{nextWeekMonday}:: DATE THEN MIN(hsm4.order_date) ELSE jph.forward_tilt_item_next_plan_order_date END AS forward_tilt_item_next_order_date , MAX(jph.pattern_type) AS pattern_type , MAX(jph.pattern_code) AS pattern_code FROM next_tentative_order_dateWK jph INNER JOIN m_item sm ON sm.item_code = jph.item_code AND sm.shipment = jph.shipment AND sm.pattern_type = jph.pattern_type AND sm.pattern_code = jph.pattern_code AND sm.apply_start_date <= jph.cost_unit_item_next_plan_order_date AND sm.version = #{itemVersion} AND sm.apply_end_date >= jph.cost_unit_item_next_plan_order_date AND sm.order_start_date <= jph.cost_unit_item_next_plan_order_date AND sm.order_end_date >= jph.cost_unit_item_next_plan_order_date INNER JOIN m_pattern pm ON pm.original_store_code = #{originalStoreCode} AND pm.pattern_type = sm.pattern_type AND pm.apply_start_date <= jph.cost_unit_item_next_plan_order_date AND pm.pattern_code = sm.pattern_code AND pm.version = #{patternVersion} AND pm.apply_end_date >= jph.cost_unit_item_next_plan_order_date LEFT OUTER JOIN m_order_schedule hsm3 ON hsm3.pattern_type = sm.pattern_type AND hsm3.pattern_code = sm.pattern_code AND ( hsm3.delivery_schedule_code = '0' OR hsm3.delivery_schedule_code IN ( SELECT nkm.delivery_schedule_code FROM m_delivery_type nkm WHERE nkm.original_store_code = #{originalStoreCode} AND nkm.host_cycle_code = #{hostCycleCode} AND nkm.apply_start_date <= jph.cost_unit_item_next_plan_order_date AND nkm.version = #{deliveryTypeVersion} AND nkm.apply_end_date >= jph.cost_unit_item_next_plan_order_date ) ) AND hsm3.order_date >= #{nextWeekMonday} :: DATE AND hsm3.host_cycle_code = sm.host_cycle_code AND hsm3.store_cycle_code = sm.store_cycle_code AND hsm3.lead_time = sm.lead_time AND hsm3.version = #{orderScheduleVersion} LEFT OUTER JOIN m_item sm2 ON sm2.item_code = jph.item_code AND sm2.shipment = jph.shipment AND sm2.pattern_type = jph.pattern_type AND sm2.pattern_code = jph.pattern_code AND sm2.apply_start_date <= jph.forward_tilt_item_next_plan_order_date AND sm2.version = #{itemVersion} AND sm2.apply_end_date >= jph.forward_tilt_item_next_plan_order_date AND sm2.order_start_date <= jph.forward_tilt_item_next_plan_order_date AND sm2.order_end_date >= jph.forward_tilt_item_next_plan_order_date LEFT OUTER JOIN m_pattern pm2 ON pm2.original_store_code = #{originalStoreCode} AND pm2.pattern_type = sm2.pattern_type AND pm2.apply_start_date <= jph.forward_tilt_item_next_plan_order_date AND pm2.pattern_code = sm2.pattern_code AND pm2.version = #{patternVersion} AND pm2.apply_end_date >= jph.forward_tilt_item_next_plan_order_date LEFT OUTER JOIN m_order_schedule hsm4 ON hsm4.pattern_type = sm.pattern_type AND hsm4.pattern_code = sm.pattern_code AND ( hsm4.delivery_schedule_code = '0' OR hsm4.delivery_schedule_code IN ( SELECT nkm2.delivery_schedule_code FROM m_delivery_type nkm2 WHERE nkm2.original_store_code = #{originalStoreCode} AND nkm2.host_cycle_code = #{hostCycleCode} AND nkm2.apply_start_date <= jph.forward_tilt_item_next_plan_order_date AND nkm2.version = #{deliveryTypeVersion} AND nkm2.apply_end_date >= jph.forward_tilt_item_next_plan_order_date ) ) AND hsm4.order_date >= #{nextWeekMonday} :: DATE AND hsm4.delivery_date > jph.first_delivery_date AND hsm4.host_cycle_code = sm2.host_cycle_code AND hsm4.store_cycle_code = sm2.store_cycle_code AND hsm4.lead_time = sm2.lead_time AND hsm4.version = #{orderScheduleVersion} GROUP BY jph.item_code , jph.shipment , jph.first_delivery_date , jph.delivery_date , jph.cost_unit_item_next_plan_order_date , jph.forward_tilt_item_next_plan_order_date ) SELECT jh.item_code AS item_code , jh.shipment AS shipment , hsm5.delivery_date AS cost_unit_item_next_delivery_date , hsm6.delivery_date AS forward_tilt_item_next_delivery_date , CASE WHEN hsm5.delivery_date IS NOT NULL THEN hsm5.delivery_date ::date - INTERVAL '1 day' ELSE jh.delivery_date END AS sum_end_date FROM next_order_dateWK jh INNER JOIN m_item sm3 ON sm3.item_code = jh.item_code AND sm3.shipment = jh.shipment AND sm3.pattern_type = jh.pattern_type AND sm3.pattern_code = jh.pattern_code AND sm3.apply_start_date <= jh.cost_unit_item_next_order_date AND sm3.version = #{itemVersion} AND sm3.apply_end_date >= jh.cost_unit_item_next_order_date AND sm3.order_start_date <= jh.cost_unit_item_next_order_date AND sm3.order_end_date >= jh.cost_unit_item_next_order_date INNER JOIN m_pattern pm3 ON pm3.original_store_code = #{originalStoreCode} AND pm3.pattern_type = sm3.pattern_type AND pm3.apply_start_date <= jh.cost_unit_item_next_order_date AND pm3.version = #{patternVersion} AND pm3.pattern_code = sm3.pattern_code AND pm3.apply_end_date >= jh.cost_unit_item_next_order_date LEFT OUTER JOIN m_order_schedule hsm5 ON hsm5.pattern_type = sm3.pattern_type AND hsm5.pattern_code = sm3.pattern_code AND ( hsm5.delivery_schedule_code = '0' OR hsm5.delivery_schedule_code IN ( SELECT nkm7.delivery_schedule_code FROM m_delivery_type nkm7 WHERE nkm7.original_store_code = #{originalStoreCode} AND nkm7.host_cycle_code = #{hostCycleCode} AND nkm7.apply_start_date <= jh.cost_unit_item_next_order_date AND nkm7.version = #{deliveryTypeVersion} AND nkm7.apply_end_date >= jh.cost_unit_item_next_order_date ) ) AND hsm5.order_date = jh.cost_unit_item_next_order_date AND hsm5.host_cycle_code = sm3.host_cycle_code AND hsm5.store_cycle_code = sm3.store_cycle_code AND hsm5.lead_time = sm3.lead_time AND hsm5.version = #{orderScheduleVersion} LEFT OUTER JOIN m_item sm4 ON sm4.item_code = jh.item_code AND sm4.shipment = jh.shipment AND sm4.pattern_type = jh.pattern_type AND sm4.pattern_code = jh.pattern_code AND sm4.apply_start_date <= jh.forward_tilt_item_next_order_date AND sm4.version = #{itemVersion} AND sm4.apply_end_date >= jh.forward_tilt_item_next_order_date AND sm4.order_start_date <= jh.forward_tilt_item_next_order_date AND sm4.order_end_date >= jh.forward_tilt_item_next_order_date LEFT OUTER JOIN m_pattern pm4 ON pm4.original_store_code = #{originalStoreCode} AND pm4.pattern_type = sm4.pattern_type AND pm4.apply_start_date <= jh.forward_tilt_item_next_order_date AND pm4.version = #{patternVersion} AND pm4.pattern_code = sm4.pattern_code AND pm4.apply_end_date >= jh.forward_tilt_item_next_order_date LEFT OUTER JOIN m_order_schedule hsm6 ON hsm6.pattern_type = sm4.pattern_type AND hsm6.pattern_code = sm4.pattern_code AND ( hsm6.delivery_schedule_code = '0' OR hsm6.delivery_schedule_code IN ( SELECT nkm4.delivery_schedule_code FROM m_delivery_type nkm4 WHERE nkm4.original_store_code = #{originalStoreCode} AND nkm4.host_cycle_code = #{hostCycleCode} AND nkm4.apply_start_date <= jh.forward_tilt_item_next_order_date AND nkm4.version = #{deliveryTypeVersion} AND nkm4.apply_end_date >= jh.forward_tilt_item_next_order_date ) ) AND hsm6.order_date = jh.forward_tilt_item_next_order_date AND hsm6.delivery_date > jh.first_delivery_date AND hsm6.host_cycle_code = sm4.host_cycle_code AND hsm6.store_cycle_code = sm4.store_cycle_code AND hsm6.lead_time = sm4.lead_time AND hsm6.version = #{orderScheduleVersion} GROUP BY jh.item_code ,jh.shipment ,hsm5.delivery_date ,hsm6.delivery_date ,jh.delivery_date 判断一下 LEFT OUTER JOIN m_order_schedule hsm2 最后用到了什么地方
08-05
内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值