求一算 法

wingerX 2009-04-20 09:16:47
如題:
A,B,C 三個已知大於0的整數,|A - B| > C,想實現 |A * X - B * Y| <= C,
X,Y 都必須是大於0的整數,求X,Y的最小值。
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jason_28693 2009-04-21
  • 打赏
  • 举报
回复
晕呀! 还聊呢!
说的多明白了呀,不就是平行线段找焦点附件的(x,y)或者平行线到原点距离最近的(x,y)吗?

利用数值计算里的方法 很容易解决注重散列 问题的
wingerX 2009-04-20
  • 打赏
  • 举报
回复
問題已經解決,現在結貼,參與有分.
順便把代碼貼出來,看看大家有沒有更好的辦法,或者是否還有可以簡化一下。
procedure TForm1.Button3Click(Sender: TObject);
var
Max,Min: Double;
A,B,C: Double;
Proportion,i,j: Integer;
IsFind: Boolean;
begin
IsFind := False;
A := StrToFloat(EdA.Text);
B := StrToFloat(EdB.Text);
C := StrToFloat(EdC.Text);
Max := A;
Min := B;

if B > A then
begin
Max := B;
Min := A;
end;

if Abs(Max - Min)> C then
begin
for i :=1 to Round(Min) do
begin
Proportion := Round((Max * i + C )/ Min);
for j := 1 to Proportion do
begin
if Abs(Min * Proportion - Max * i) <= C then
begin
Memo1.Text := '';
Memo1.Lines.Add(IntToStr(j +i));
Memo1.Lines.Add(IntToStr(i));
IsFind := True;
Break;
end;
end;
if IsFind then
Break;
end;
end;
end;
xiaowei_001 2009-04-20
  • 打赏
  • 举报
回复
建议交给高中数学老师!
wingerX 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Seamour 的回复:]
求X,Y的最小值
这是什么意思?x的最小值或y的最小值?还是x+y的最小值?
[/Quote]
比如:
A = 7, B = 9
要實現 兩者的差的絕對值是 1 (即C =1)
X = {4, 5.....}
Y = {3, 4.....}
而x = 4, y = 3 就是符合|A * X - B * Y| <= C 的最小值了.
jason_28693 2009-04-20
  • 打赏
  • 举报
回复
呵呵,不知道我理解的对不对!

如果A,B,C都是已经的, 则 |A * X - B * Y| = C 吧绝对值去掉在xy轴表示是什么, 应该是一条确定角度的直线,
然后你可以找到交点!之后的事情你用笔在白纸上画一画,就知道答案了吧!!!

应不难解开吧,如果还不会建议你看看《数值计算》这本书!!!
Seamour 2009-04-20
  • 打赏
  • 举报
回复
求X,Y的最小值
这是什么意思?x的最小值或y的最小值?还是x+y的最小值?
Seamour 2009-04-20
  • 打赏
  • 举报
回复
令A>B:

function GetResult(const A, B, C: Integer; var x, y: Integer): Integer;
var
z, t, iy : Integer;
begin
t := A - B;
// z = y-x
for z:=1 to A do
begin
y := Trunc((z*A-C)/t);
for iy:=Max(y, z+1) to Trunc((z*A+C)/t) do
begin
x := iy - z;
Result := A*x - B*iy;
if((Result<=C)and(Result>=-C))then
begin
y := iy;
Exit;
end;
end;
end;
Result := -1;
end;
代码转载自:https://pan.quark.cn/s/50df8825dc0d Tensilica Xtensa指令集架构手册是一份详尽阐述Xtensa指令集架构(ISA)的参考指南,它主要面向Tensilica公司所推出的处理器核心,尤其是LX106核,同时亦涵盖了ESP8266和ESP32等相关内容。该手册全面介绍了Xtensa处理器核心的指令集、配置选项、扩展能力以及将架构映射至硬件的详细情况。接下来将依据手册中所述的知识点进行深入解读。 ### Xtensa指令集架构(ISA) Xtensa指令集架构是Tensilica公司为其处理器产品设计的一套指令集,该指令集具备高度的可配置性和可扩展性。这一特性使得Xtensa ISA能够在不同的应用领域和硬件需求中进行个性化定制,以满足特定的功能与性能要求。 #### 可配置性(Configurability) Xtensa ISA的可配置性体现在用户可以根据实际需求对处理器的多个方面进行定制。这包括但不限于: - **指令集扩展**:用户可以根据特定的应用需求添加新的指令,从而提升处理特定任务的效率。 - **寄存器文件扩展**:根据应用需求,可以增加或优化处理器的寄存器数量和类型。 - **协处理器扩展**:通过集成特定的协处理器,可以将专门的计算任务卸载到协处理器上,从而提升整体性能。 #### 可扩展性(Extensibility) Xtensa ISA不仅可配置,还拥有卓越的可扩展性,它支持多种扩展,包括: - **状态扩展(State Extensions)**:允许处理器添加新的状态寄存器,以支持新的功能或增强现有功能。 - **指令扩展(Instruction Extensions)**:...
下载代码方式:https://pan.quark.cn/s/8779ceeac982 YOLOv5被认为是一种功能卓越且精确度高的目标检测系统,它在即时处理场景中展现出优越的性能。"基于YOLOv5的火灾检测"计划致力于运用这项尖端的计算机视觉方,以达成对火焰和烟雾的有效辨识,进而起到防止及降低火灾事故的作用。在这个压缩文件里,用户能够获取到预先训练完成的模型,这表示使用者能够直接执行推理检测,无需从头开始训练模型。 我们现在将详细探讨YOLO(You Only Look Once)系统。YOLO是一种单阶段的目标检测方,它将目标检测任务转化成回归问题,通过直接预测边界框和类别可能性来迅速识别图像中的物体。YOLOv5是这一系列的最新迭代,由Ultralytics团队研发,它在前几代的基础上进行了改进,包括更迅速的训练速率、更精准的检测以及更强的适应性。 YOLOv5的关键优化包含: 1. **数据增强**:应用了Mosaic数据增强技术,这是一种融合了随机缩放、翻转、裁剪及色彩调节的技巧,增强了模型的普遍适用性。 2. **更高效的架构**:运用了SPP-Block(Spatial Pyramid Pooling)和Path Aggregation Network (PANet)设计,提升了特征提取的效能和精确度。 3. **权重初始化**:采用了更优化的权重初始化策略,使模型在初始训练阶段就能更快地达到收敛。 4. **联合训练**:YOLOv5支持多尺度训练,即同步训练不同尺度的网络,以改善对小目标的检测效果。 5. **优化的损失函数**:使用了GIOU(Generalized IoU)损失函数,改进了边界框的定位。 针对火灾检测的应用,YOLOv...

16,741

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧