Python算法例7 四数乘积

news2024/11/27 4:39:11

1. 问题描述

给定一个长度为n的数组a和一个正整数k,从数组中选择四个数,要求四个数的乘积小于等于k,求方案总数。

2. 问题示例

给定n=5,a=[1,1,1,2,2],k=3,返回2。

3.代码实现

# 使用嵌套循环的方式来求解。首先,我们可以将数组a排序,
# 然后使用四重循环遍历所有可能的四个数的组合。
# 在每次循环中,我们计算四个数的乘积,并将符合条件(小于等于k)的组合计数。

def count_combinations(nums, k):
    nums.sort()  # 将数组排序
    n = len(nums)
    count = 0

    for i in range(n - 3):
        # 避免重复计数
        if i > 0 and nums[i] == nums[i - 1]:
            continue

        for j in range(i + 1, n - 2):
            # 避免重复计数
            if j > i + 1 and nums[j] == nums[j - 1]:
                continue

            for p in range(j + 1, n - 1):
                # 避免重复计数
                if p > j + 1 and nums[p] == nums[p - 1]:
                    continue

                for q in range(p + 1, n):
                    # 计算乘积并判断是否满足条件
                    product = nums[i] * nums[j] * nums[p] * nums[q]
                    if product <= k:
                        count += 1

    return count
print(count_combinations([1, 1, 1, 2, 2], 3))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1173057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R语言 复习 习题图片

这是日天土申哥不知道从哪淘来的R语言复习知识点图片&#xff0c;大部分内容都是课后习题的答案 加油吧&#xff0c;骚年&#xff0c;考个好分数

【重学C++基础知识笔记】详细版

基础 常量 C++ 中有两种简单的定义常量的方法: 使用#define,如:#define PI 3.1415926;使用const, 如:const double PI = 3.1415926;注明: 尽量使用const定义变量,#define不会出现在编译器期 #define ASPECT RATIO 1.653 // 在编译时出错,很难排错const doubl…

windows自动登陆

新建文本粘贴下面代码&#xff0c;另存为注册表文件 Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing] "Policy"hex:00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]"DefaultUserN…

04 矩阵乘法与线性变换复合

矩阵乘法与线性变换复合 复合变换 这是关于3Blue1Brown "线性代数的本质"的学习笔记。 复合变换 图1 复合变换 复合变换原则&#xff0c;依次变换&#xff0c;即先变换的矩阵乘待变换的向量后&#xff0c;得到的结果&#xff0c;再用后变换的矩阵乘此结果向量。从矩…

SPSS多因素方差分析

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

CleanMyMac X2024登录激活码

本篇将为各位小伙伴们集中讲解一下&#xff0c;Mac清理工具CleanMyMac X的下载、安装与激活是如何进行的。 系统&#xff1a;macOS 10.14&#xff08;在10.15以及Big Sur中的安装激活教程相同&#xff09; 下载CleanMyMac X 登录CleanMyMac X下载页面&#xff0c;然后点击【…

3、Sentinel 动态限流规则

Sentinel 的理念是开发者只需要关注资源的定义&#xff0c;当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则&#xff1a; • 通过 API 直接修改 (loadRules) • 通过 DataSource 适配不同数据源修改 通过 API 修改比较直观&#xff0c;可以通…

sql基础+考点+题

查询&#xff1a;select from 筛选&#xff1a;where and和or 排序&#xff1a;order by&#xff08;降序排列需要指定DESC关键字&#xff09; join&#xff1a;left join 、right join 和inner join 分组聚合&#xff1a;group by ---搭配count , sum , avg 过滤&#x…

2023年中国自然语言处理行业研究报告

第一章 行业概况 1.1 定义 自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是一门交叉学科&#xff0c;它结合了计算机科学、人工智能和语言学的知识&#xff0c;旨在使计算机能够理解、解释和生成人类语言。NLP的核心是构建能够理解和…

Ubuntu 创建用户

在ubuntu系统中创建用户&#xff0c;是最基本的操作。与centos7相比&#xff0c;有较大不同。 我们通过案例介绍&#xff0c;讨论用户的创建。 我们知道&#xff0c;在linux中&#xff0c;有三类用户&#xff1a;超级管理员 root 具有完全权限&#xff1b;系统用户 bin sys a…

MinIO 分布式文件(对象)存储

简介 MinIO是高性能、可扩展、云原生支持、操作简单、开源的分布式对象存储产品。 在中国&#xff1a;阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产品 官网地址&#xff1a;http://www.minio.org.cn/ 下载 官网下载(8.4.3版本)&#x…

云计算实战项目之---学之思在线考试系统

简介&#xff1a; 学之思开源考试系统是一款 java vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序&#xff0c;能覆盖到pc机和手机等设备。 支持多种部署方式&#xff1a;集成部署、前后端分离部署、docker部…

MySQL Too Many Connections

一、前言 上一篇 《磁盘爆了》 我们讲磁盘撑爆造成Java应用无法启动&#xff0c;今天我们来讲一下MySQL连接被撑爆应用启动后连不上数据库的问题。 二、max_connections配置 我们自己安装的开源MySQL5.6 默认的max_connections(最大连接数)值为151&#xff0c;为什么是151咱…

【MongoDB】索引 - 数组字段的多键索引

数组字段创建索引时&#xff0c;MongoDB会为数组中的每个元素创建索引键&#xff08;多键索引&#xff09;&#xff0c;多键索引支持数组字段的高效查询。 一、准备工作 这里准备一些数据 db.shop.insertMany([{_id: 1, name: "水果店1", fruits: ["apple&qu…

Vue+OpenLayers从入门到实战进阶案例汇总目录,兼容OpenLayers7和OpenLayers8

本篇作为《VueOpenLayers入门教程》和《VueOpenLayers实战进阶案例》所有文章的二合一汇总目录&#xff0c;方便查找。 本专栏源码是由OpenLayers结合Vue框架编写。 本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程&#xff0c;再到通过各种入门案例和综合…

Go语言与Python语言的性能比较

目录 一、背景与意义 二、执行速度 三、内存消耗 四、并发性能 五、编译速度与开发效率 六、综合考虑 七、应用场景 八、未来发展趋势 总结 一、背景与意义 在编程世界中&#xff0c;Go语言和Python语言都占有一席之地。Go语言是由Google开发的&#xff0c;其设计初衷…

GNSS精密解算软件介绍

GAMIT&#xff1a; 美国麻省理工学院&#xff08;MIT&#xff09;和加州大学圣地亚哥分校的海洋研究所&#xff08;SIO&#xff09;开发的GAMIT/GLOBK软件&#xff0c; GAMIT为双差网解&#xff0c;利用双差直接消除卫星及测站的时间误差。 gamit软件介绍-周命端&#xff1a;…

Technology strategy Pattern 学习笔记4 - Creating the Strategy-Corporate Context

Creating the Strategy-Corporate Context 1 •. Stakeholder Alignment 1.1 要成功&#xff0c;要尽可能获得powerful leader的支持 1.2 也需要获得最高执行层的支持 1.3 Determining&#xff08;确定&#xff09; Stakeholders 需要建立360度组织图&#xff0c;确认三类人…

unity中移动方案--物理渲染分层

一、三种基本移动方案 unity中的移动分为Transform和Rigidbody以及CharacterController&#xff0c;其中CharacterController已经考虑了穿墙&#xff0c;贴墙走等情况。 1.使用transform,直接修改位置&#xff0c;无视碰撞 1.transform.position 2.transform.Translate 2.使用…

Paragon NTFS for Mac15.5磁盘存储软件

NTFS For Mac 15是首个支持Mac上读写NTFS外置存储设备解决方案 &#xff0c;解决mac不能读写外置让您更加简单直观的在Mac机上随意对NTFS文件修改、删除等操作。 NTFS for Mac是什么 在选择一款合适自己的NTFS or Mac软件之前&#xff0c;您可以简单地对NTFS or Mac进行一个了…