C#算法练习,求e,求π

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace _2119170006
{
    public partial class 多项式求解 : Form
    {
        public 多项式求解()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double sum = 0, t = -1;
            int n = 1;
            //input
            do
            {
                t = Math.Pow(-1,n+1) * 1.0 / (2 * n - 1);
                if (Math.Abs(t) < 0.0001) break;
                sum += t;
                n++;
            } while (true);
            this.label3.Text = (sum * 4).ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            double sum = 1, t=1,x;
            int n=1;
            //input
            if(double.TryParse(textBox1.Text,out x)==false)
            {
                MessageBox.Show("输入错误");
                this.textBox1.Focus();
                this.textBox1.SelectAll();
                return;
            }
            this.textBox2.Text=(Math.Exp(x).ToString(".000"));
        }
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用C#编写麻雀搜索算法解最值的示例代码: ```csharp using System; class SparrowSearchAlgorithm { static void Main(string[] args) { int maxIter = 100; // 最大迭代次数 int popSize = 50; // 种群大小 double w = 0.5; // 惯性权重 double c1 = 2.0; // 自我认知学习因子 double c2 = 2.0; // 社会认知学习因子 double vmax = 0.5; // 最大速度 // 定义适应度函数,这里以解函数f(x)=x^2的最小值为例 Func<double, double> fitnessFunc = (x) => x * x; // 初始化种群 double[] positions = new double[popSize]; double[] velocities = new double[popSize]; double[] pbestPositions = new double[popSize]; double[] pbestFitness = new double[popSize]; double gbestPosition = 0.0; double gbestFitness = double.MaxValue; Random rand = new Random(); for (int i = 0; i < popSize; i++) { positions[i] = rand.NextDouble() * 10.0 - 5.0; velocities[i] = (rand.NextDouble() * 2.0 - 1.0) * vmax; pbestPositions[i] = positions[i]; pbestFitness[i] = fitnessFunc(positions[i]); if (pbestFitness[i] < gbestFitness) { gbestPosition = pbestPositions[i]; gbestFitness = pbestFitness[i]; } } // 开始迭代 for (int iter = 0; iter < maxIter; iter++) { for (int i = 0; i < popSize; i++) { // 鸟巢筛选 double fitness = fitnessFunc(positions[i]); if (fitness < pbestFitness[i]) { pbestFitness[i] = fitness; pbestPositions[i] = positions[i]; if (pbestFitness[i] < gbestFitness) { gbestPosition = pbestPositions[i]; gbestFitness = pbestFitness[i]; } } // 探索行为 double r1 = rand.NextDouble(); double r2 = rand.NextDouble(); velocities[i] = w * velocities[i] + c1 * r1 * (pbestPositions[i] - positions[i]) + c2 * r2 * (gbestPosition - positions[i]); // 限制速度 if (velocities[i] > vmax) { velocities[i] = vmax; } else if (velocities[i] < -vmax) { velocities[i] = -vmax; } // 移动麻雀位置 positions[i] += velocities[i]; // 局部搜索 double r3 = rand.NextDouble(); double r4 = rand.NextDouble(); if (r3 < 0.5) { positions[i] += r4 * (pbestPositions[i] - positions[i]); } else { positions[i] += r4 * (gbestPosition - positions[i]); } } } // 输出结果 Console.WriteLine("最优解为:{0}", gbestPosition); Console.WriteLine("最优值为:{0}", gbestFitness); } } ``` 注意,这里的适应度函数以解函数f(x)=x^2的最小值为例,实际应用中需要根据具体情况进行修改。另外,麻雀搜索算法的参数设置也需要根据具体问题进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值