Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >浅谈平方根的计算

浅谈平方根的计算

提问于 2018-03-20 21:03:50
回答 2关注 0查看 372

我需要在sqite数据库中计算欧几里德距离。

除了编写和加载数学函数的动态库之外,还有人知道如何在sqite中计算平方根吗?

我几乎要求助于这里的快速逆平方根算法了。虽然它可能会变成比我现在所需要的更有趣的东西。

顺便提一句,最好能弄清楚如何计算幂(这是一个广义的问题,而且编码比单独乘以一个数字更干净)。

回答 2

Dust

回答已采纳

发布于 2018-03-21 05:22:56

嗯,我有个半个答案。

是的,这涉及到一个第三的聚会,但你不必自己写:你检查了最后一个分机吗?

它包括几个数学函数,其中包括sqrt()。

萌萌呆

发布于 2018-03-21 06:10:30

警告:这个答案取决于编码语言。在我的情况下C#...

用户定义的SQLite函数对我来说很难实现。最后,经过很长一段时间的搜索,我能够在我的C#代码中实现它。主要功能如下:

代码语言:txt
AI代码解释
复制
[SQLiteFunction(Arguments = 1, FuncType = FunctionType.Scalar, Name = "Sqrt")]
class Sqrt : SQLiteFunction
{
    public override object Invoke(object[] args)
    {
        return Math.Sqrt(Double.Parse(args[0].ToString()));
    }
}

登记:

代码语言:txt
AI代码解释
复制
SQLiteFunction.RegisterFunction(typeof(Sqrt));

并在SELECT中使用:

代码语言:txt
AI代码解释
复制
SQLiteCommand com = new SQLiteCommand("select sqrt(10.42)", connection);

或者,如果只想查看代码(或者通过我的代码的所有部分),我将粘贴在SQLite数据库中计算平方根的完整工作示例代码下面,因为很难找到这方面的任何工作代码。要创建和运行此示例,请执行以下6个步骤:

  1. 创建新项目(我的名字是sqrt)
  2. 包括对项目的SQLite引用:解决方案资源管理器->引用(右击:添加引用)->程序集-扩展-System.Data.SQLite(检查)->OK
  3. 开着App.config并替换为这个(如果没有这个步骤,可能会得到混合模式装配错误):<?xml version="1.0" encoding="utf-8" ?><configuration><startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0"/></startup></configuration>
  4. 替换你的Form1.Designer.cs使用此代码: <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup> </configuration>
  5. namespace Sqrt { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.txb_Input = new System.Windows.Forms.TextBox(); this.txb_Output = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.btn_Calcualte = new System.Windows.Forms.Button(); this.SuspendLayout(); // // txb_Input // this.txb_Input.Location = new System.Drawing.Point(131, 12); this.txb_Input.Name = "txb_Input"; this.txb_Input.Size = new System.Drawing.Size(201, 20); this.txb_Input.TabIndex = 0; // // txb_Output // this.txb_Output.BackColor = System.Drawing.Color.WhiteSmoke; this.txb_Output.Location = new System.Drawing.Point(131, 38); this.txb_Output.Name = "txb_Output"; this.txb_Output.ReadOnly = true; this.txb_Output.Size = new System.Drawing.Size(201, 20); this.txb_Output.TabIndex = 0; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(12, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(31, 13); this.label1.TabIndex = 1; this.label1.Text = "Input"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(12, 41); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(39, 13); this.label2.TabIndex = 1; this.label2.Text = "Output"; // // btn_Calcualte // this.btn_Calcualte.Location = new System.Drawing.Point(257, 64); this.btn_Calcualte.Name = "btn_Calcualte"; this.btn_Calcualte.Size = new System.Drawing.Size(75, 23); this.btn_Calcualte.TabIndex = 2; this.btn_Calcualte.Text = "Calculate"; this.btn_Calcualte.UseVisualStyleBackColor = true; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(344, 98); this.Controls.Add(this.btn_Calcualte); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.txb_Output); this.Controls.Add(this.txb_Input); this.Name = "Form1"; this.Text = "Root square example"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.TextBox txb_Input; private System.Windows.Forms.TextBox txb_Output; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Button btn_Calcualte; } }
  6. Open Form1.cs (code) and replace code with this: using System; using System.Data.SQLite; using System.Windows.Forms; namespace Sqrt { // definition of custom sqlite function [SQLiteFunction(Arguments = 1, FuncType = FunctionType.Scalar, Name = "Sqrt")] class Sqrt : SQLiteFunction { public override object Invoke(object[] args) { return Math.Sqrt(Double.Parse(args[0].ToString())); // return result of math sqrt function } } public partial class Form1 : Form { public Form1() { InitializeComponent(); this.btn_Calcualte.Click += new System.EventHandler(this.btn_Calcualte_Click); } private void btn_Calcualte_Click(object sender, EventArgs e) { if (txb_Input.Text.Length == 0) return; try { SQLiteConnection.CreateFile(AppDomain.CurrentDomain.BaseDirectory + "test.s3db"); } catch { } SQLiteConnection con = new SQLiteConnection("Data Source=test.s3db"); SQLiteFunction.RegisterFunction(typeof(Sqrt)); // register custom function con.Open(); SQLiteCommand com = new SQLiteCommand("select sqrt(" + txb_Input.Text.Replace(',', '.') + ")", con); // select result string res = com.ExecuteScalar().ToString(); txb_Output.Text = res; } } }
和开发者交流更多问题细节吧,去 写回答
相关文章
浅谈云计算
20世纪90年代,Sun公司首席执行官Scott McNealy 曾提出了“网络就是计算机”的概念,只要有网络就可以调动资源计算。只是当时的网络,计算机硬件和软件还不足以支撑这个概念。 当我们现在去看这个概念时,发现云计算就是这样的一个计算机。 现在的云计算种类非常多,有公有云,私有云,最近还出了个混合云。加上一些行业云,反正是不管啥能和云挂钩都往上靠,造成概念较为混乱。 个人从技术的角度来理解,云计算是计算,存储和网络的资源池,以及在此基础上建立的生态。 计算,存储,网络,IAAS的三大基础,上面的生菜,则是云厂商及其生态伙伴提供的PAAS,SAAS等服务。
sean.liu
2022/09/07
9K0
浅谈移动边缘计算
前言 在正式开始介绍移动边缘计算(Mobile Edge Computing,MEC)之前,先从我作为一个初学者的角度来谈谈MEC出现的必要性,便于读者理解。这篇文章仅代表我自己的一个学习过程和体会,如果有表述不当的地方,欢迎批评指正。 提到MEC,对其略懂一二的人,恐怕能想到的第一个词就是“低时延”,虽然MEC的含义远不止于此,但我认同“快”的确是MEC所能带给我们的最切实际的体验! 我们从时代发展的角度来试图窥探一下“快”趋势发展的必然性,在被数字化席卷的今天,人们的生活节奏越来越快,数据还是最有价值的
SDNLAB
2018/03/29
2.1K0
浅谈移动边缘计算
浅谈游戏运营中LTV的计算
上回咱们介绍了《关于移动游戏运营数据指标,这里有一份简单说明,请查收》,不少朋友们看完后留言希望出一期关于LTV的计算和预估科普贴,刚好最近才哥也在做这方面的数据处理。
可以叫我才哥
2021/08/05
9.4K1
69. x 的平方根
链接 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 题解 go语言版 func mySqrt(x int) int { res := x // 牛顿法求平方根 for res*res > x {
Michel_Rolle
2021/03/07
3.4K0
[Leetcode][python]Sqrt(x)/x 的平方根
二分搜索:值得注意的是右边可以直接设置为j=x/2+1,因为在(x/2+1)^2 > x。
蛮三刀酱
2019/03/26
1K0
[Leetcode][python]Sqrt(x)/x 的平方根
69. x 的平方根
实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 解1:二分法 class Solution { public int mySqrt(int x) { if (x == 0) { re
张伦聪zhangluncong
2022/10/26
4720
平方根的C语言实现(二) —— 手算平方根的原理
  一个函数从数学上来说可以有无数个函数列收敛于这个函数,那么程序逼近实现来说可以有无数种算法,平方根自然也不例外。   不知道有多少人还记得手算平方根,那是满足每次在结果上添加一位,也就是按位逼近运算结果的唯一算法。至于数学上如何证明这个唯一性我就不说了,数学证明不会有那么多人有兴趣。按位逼近更加适合手算,举个大家更熟悉的例子,那就是手算除法。我这里就采用按位逼近的手算方法。   要说手算平方根,原理其实非常简单,   一是平方根函数是严格单调增函数,   二就是以下这个恒等式满足   (a*N+b)2 
窗户
2018/02/07
2.3K0
Python引进math模块计算0~50所有偶数的平方根之和
针对计算2~50偶数平方根之和问题,提出引进math方法,通过python实验,证明该方法是有效的,本文的方法有不够详细,未能很好的解释,未来可以继续研究的问题可以是计算任意数的平方根之和。
算法与编程之美
2023/09/18
2270
Python引进math模块计算0~50所有偶数的平方根之和
浅谈计算机系统
今日和大家分享一下关于计算机系统的一些小知识,作为学习计算机的我们来说,电脑知识也是必不可少的,当知道电脑的基本结构以及运作方法后,对于我们学习编程知识也大有裨益。
小Bob来啦
2020/12/16
4140
浅谈计算机系统
LeetCode69. x 的平方根
 这道题直接一个return Math.sqrt就出来了,但是秉承着学习的心态,尝试着用二分法ac  首先要确定的就是左右区间,左区间是0无疑了,那么右区间是多少呢?一般来说定义区间都是左闭右开,所以右区间定义为x+1,反正定的稍微大一点总没有坏处  然后就是二分的思想,先看中间,中间的值比所希望的值小,就说明在右边,那就把L的值更新为mid+1,不能是mid,不然会产生死循环这点要注意。最后小心数据范围即可
mathor
2018/07/24
9200
LeetCode69. x 的平方根
LeetCode - #69 x 的平方根
我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。
Swift社区
2022/12/10
5850
LeetCode - #69 x 的平方根
浅谈计算机基础的重要性
前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程. 本文阅读建议 1.一定要辩证的看待本文. 2.本文主要阐述了自己在学习计算机基础后的感想. 3.觉得哪里不妥请在评论留下建议~ 4.觉得还行的话就点个小心心鼓励下我吧~ ---- 编程人员的拉锯战 程序员作为新时代的高收入、高回报的工作,一直是大部分毕业生以及转业人员的首要选择,当然这其中也有培训机构的功劳。 随着选择程序员行业的人越来越
筑梦师winston
2018/06/22
8440
浅谈计算机视觉中的图像标注
计算机视觉被认为是机器学习和人工智能发展的重要领域之一。简而言之,计算机视觉是人工智能研究领域,致力于赋予计算机看世界和视觉解释世界的能力。
程序你好
2020/12/31
3.7K0
浅谈计算机视觉中的图像标注
程序与数学:牛顿迭代法与平方根近似计算
这个等式是一元二次方程,解方程即可求得x。现在正实数平方根计算问题已转换为解一元二次方程问题。
郎宏林
2021/10/08
1.6K0
程序与数学:牛顿迭代法与平方根近似计算
Leetcode No.69 x 的平方根
示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
week
2021/05/06
5860
浅谈用Python计算文本BLEU分数
BLEU,全称为Bilingual Evaluation Understudy(双语评估替换),是一个比较候选文本翻译与其他一个或多个参考翻译的评价分数。
花落花飞去
2018/02/11
36K2
浅谈用Python计算文本BLEU分数
LeetCode69. x 的平方根
思路:二分法 //实现 int sqrt(int x) 函数。 // // 计算并返回 x 的平方根,其中 x 是非负整数。 // // 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 // // 示例 1: // // 输入: 4 //输出: 2 // // // 示例 2: // // 输入: 8 //输出: 2 //说明: 8 的平方根是 2.82842..., // 由于返回类型是整数,小数部分将被舍去。 // // Related Topics 数学 二分查找 // 👍 73
周杰伦本人
2022/10/25
4600
浅谈分布式计算的开发与实现(二)
阅读目录: 实时计算 storm简介 流式计算 归纳总结 高容错性 实时计算 接上篇,离线计算是对已经入库的数据进行计算,在查询时对批量数据进行检索、磁盘读取展示。 而实时计算是在数据产生时就对其进行计算,然后实时展示结果,一般是秒级。 举个例子来说,如果有个大型网站,要实时统计用户的搜索内容,这样就能计算出热点新闻及突发事件了。 按照以前离线计算的做法是不能满足的,需要使用到实时计算。 小明作为有理想、有追求的程序员开始设计其解决方案了,主要分三部分。 每当搜索内容的数据产生时,先把数据收集到消息队列,由
蘑菇先生
2018/05/21
6740
求平方根C++
求平方根,正根.曾经都不会.昨天看数学,看到了,写了出来.自己又小优化了一下,非常不错.
全栈程序员站长
2022/07/09
7570
牛顿迭代法与二分法计算平方根
因为不是科班出身,所以即使编程一段时间也时常感觉自身基础知识非常不扎实,于是在最近开始补习算法和计算机理论的基础知识。
Originalee
2018/08/30
1.9K0
牛顿迭代法与二分法计算平方根

相似问题

2020-10-05:如何求模平方根?

0136

云计算和分布式计算的区别?

1548

是共享计算的云服务器还是独立计算的呢?

1333

关于额外推广的计算?

0104

COC的费用如何计算?

1420
相关问答用户
中建数科 | 技术总监架构部总经理擅长3个领域
公司公司公司公司公司公司 | 职务职务职务职务职务职务擅长3个领域
擅长5个领域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档