L1-041 寻找250(Python实现) 测试点全过

本文解析了PTA团体程序设计比赛中的一道题目,要求在输入的整数序列中找到第一个出现的250,并输出其在序列中的位置。作者提供了详细的Python代码和解释。
摘要由CSDN通过智能技术生成

前言: {\color{Blue}前言:} 前言:本系列题使用的是“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度,如有需要可以直接查看对应专栏。发布个人的刷题笔记的同时,也是希望可以帮助到有需要的人,我会尽量的解释每一步代码,如有错误或者可以优化的地方还望各位CSDN的朋友可以指出来。更新速度预计是每天不定时更新三道,若当天没有更新后期将会补上。

题目

在这里插入图片描述
对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。

输入格式
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。

输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。

输入样例:

888 666 123 -233 250 13 250 -222

输出样例:

5

题解


# 读取一行输入,将输入分割成字符串列表
numbers = input().split()

# 初始化计数器,用于记录数字的位置(从1开始计数)
count = 0

# 遍历每个数字
for num in numbers:
    count += 1  # 计数器递增

    # 如果找到了目标数字“250”,则输出其位置并结束循环
    if num == '250':
        print(count)
        break

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
弹回归网络(ElasticNet)是一种线性回归算法,它结合了L1和L2正则化。贝叶斯优化(Bayesian Optimization)是一种调参方法,它利用贝叶斯公式来计算待优化的函数在不同参数组合下的后验概率,并根据概率分布来选择下一个参数组合进行评估,从而逐步寻找最优解。 下面是使用贝叶斯优化调参的弹性回归网络的Python实现过程: 首先,需要安装bayesian-optimization库: ``` !pip install bayesian-optimization ``` 然后,导入必要的库: ```python import numpy as np import pandas as pd from sklearn.datasets import load_boston from sklearn.model_selection import cross_val_score from sklearn.linear_model import ElasticNet from bayes_opt import BayesianOptimization ``` 接下来,加载数据集并准备训练集和测试集: ```python boston = load_boston() X = boston.data y = boston.target train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.2, random_state=42) ``` 然后,定义弹性回归网络的目标函数,该函数的参数为alpha和l1_ratio: ```python def elasticnet_cv(alpha, l1_ratio): model = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42) rmse = np.sqrt(-cross_val_score(model, train_X, train_y, scoring='neg_mean_squared_error', cv=5)) return rmse.mean() ``` 接下来,定义贝叶斯优化的参数空间和初始点: ```python param_space = {'alpha': (0.01, 10), 'l1_ratio': (0, 1)} init_points = 10 n_iter = 20 ``` 最后,使用BayesianOptimization库中的maximize函数进行贝叶斯优化: ```python optimizer = BayesianOptimization(f=elasticnet_cv, pbounds=param_space, random_state=42) optimizer.maximize(init_points=init_points, n_iter=n_iter) ``` 完成后,可以使用以下代码查看最优参数及其对应的RMSE值: ```python print(optimizer.max) best_alpha = optimizer.max['params']['alpha'] best_l1_ratio = optimizer.max['params']['l1_ratio'] best_rmse = optimizer.max['target'] print(f'Best alpha: {best_alpha:.2f}') print(f'Best l1_ratio: {best_l1_ratio:.2f}') print(f'Best RMSE: {best_rmse:.2f}') ``` 完整代码如下: ```python import numpy as np import pandas as pd from sklearn.datasets import load_boston from sklearn.model_selection import cross_val_score, train_test_split from sklearn.linear_model import ElasticNet from bayes_opt import BayesianOptimization # Load data boston = load_boston() X = boston.data y = boston.target train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.2, random_state=42) # Define objective function def elasticnet_cv(alpha, l1_ratio): model = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42) rmse = np.sqrt(-cross_val_score(model, train_X, train_y, scoring='neg_mean_squared_error', cv=5)) return rmse.mean() # Define parameter space and initial points param_space = {'alpha': (0.01, 10), 'l1_ratio': (0, 1)} init_points = 10 n_iter = 20 # Bayesian optimization optimizer = BayesianOptimization(f=elasticnet_cv, pbounds=param_space, random_state=42) optimizer.maximize(init_points=init_points, n_iter=n_iter) # Print results print(optimizer.max) best_alpha = optimizer.max['params']['alpha'] best_l1_ratio = optimizer.max['params']['l1_ratio'] best_rmse = optimizer.max['target'] print(f'Best alpha: {best_alpha:.2f}') print(f'Best l1_ratio: {best_l1_ratio:.2f}') print(f'Best RMSE: {best_rmse:.2f}') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦生dwu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值