boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - How to multiply two floats using only summation
相关主题
关于除法的问题
计算乘法和除法,不用乘法和除法符号,怎么scale
问下用加法递归实现乘法的问题
L家和G家的几道面试题不懂
不用循环、递归、算术运算实现乘法
leetcode上大数乘代码
问一题
请教一道题
碰到一道题
请教 Intel Offer
相关话题的讨论汇总
话题: summation话题: floats话题: compute话题: multiply话题: two
进入JobHunting版参与讨论
1 (共1页)
r*********n
发帖数: 4553
1
to compute e.g. 0.5 * 1.5?
r*********n
发帖数: 4553
2
顶一下....
要是两个integer乘法,loop用加法就行了,但是floating number怎么搞呢?面官甚至
提示:你想想人们在还没有发明计算器之前是怎么做乘法的...
z****p
发帖数: 18
3

My guess:
Exponents can be added directly, and mantissas can be multiplied using "two
integer multiplication".
http://en.wikipedia.org/wiki/Floating_point

【在 r*********n 的大作中提到】
: 顶一下....
: 要是两个integer乘法,loop用加法就行了,但是floating number怎么搞呢?面官甚至
: 提示:你想想人们在还没有发明计算器之前是怎么做乘法的...

w********p
发帖数: 948
4
1。 先数一共两个小数点,
2。 15 *5 (用加分做 15+ 15+。。。)
3。 然后 再移位, (指小数点移位)
不让移位的话, 就加 75次 0.01
这个行吗?

【在 r*********n 的大作中提到】
: to compute e.g. 0.5 * 1.5?
r**h
发帖数: 1288
5
不行吧
float类型,1位符号位,8位指数位,23位精度。
要精确的话,应该是要把这23位全取出来,然后做两个23位的大数乘法。就算用long
long可以不溢出,意义也不是很大
所以我觉得这个问题没什么意义,个人意见

【在 w********p 的大作中提到】
: 1。 先数一共两个小数点,
: 2。 15 *5 (用加分做 15+ 15+。。。)
: 3。 然后 再移位, (指小数点移位)
: 不让移位的话, 就加 75次 0.01
: 这个行吗?

z****p
发帖数: 18
6

two
I was almost right: I missed the "normalization" step:
http://en.wikipedia.org/wiki/Floating_point#Multiplication_and_

【在 z****p 的大作中提到】
:
: My guess:
: Exponents can be added directly, and mantissas can be multiplied using "two
: integer multiplication".
: http://en.wikipedia.org/wiki/Floating_point

w********p
发帖数: 948
7
谢谢分享link.

【在 z****p 的大作中提到】
:
: two
: I was almost right: I missed the "normalization" step:
: http://en.wikipedia.org/wiki/Floating_point#Multiplication_and_

w********p
发帖数: 948
8
lz 的问题是 0.5 * 1.5
0.5 可能会是 0。499999999999999999
但是我们计算的时候根本,不用考虑这些。
想想。笔算是怎么做乘法的。 15 * 5 然后 e -2 好了。然后改咋调整,再调就
是了。

【在 r**h 的大作中提到】
: 不行吧
: float类型,1位符号位,8位指数位,23位精度。
: 要精确的话,应该是要把这23位全取出来,然后做两个23位的大数乘法。就算用long
: long可以不溢出,意义也不是很大
: 所以我觉得这个问题没什么意义,个人意见

r*********n
发帖数: 4553
9
我面试的时候就是说转化为int,然后loop,但是说完之后面官没有反应,然后我就凌
乱了....
另外,给一个float,怎么数小数点呢?
还有如果是转化为int来做,我觉得并不见得会快,比如
3.1415926 * 3.1415927
太多有效位了,这个loop应该非常慢吧
y****n
发帖数: 743
10
我可能会这样做,不知道有没有更好的方法。
循环累加建立9x9乘法表
转化成字符串,删除小数点
两重循环,位于位相乘,累加结果,处理进位
结果转换成字符串,回填小数点,再转换换成float
r******l
发帖数: 10760
11
a乘b的话当然不能loop b次累加a了,那得多慢啊?弄个数组存好九九表,然后模拟竖
式运算。

【在 r*********n 的大作中提到】
: 顶一下....
: 要是两个integer乘法,loop用加法就行了,但是floating number怎么搞呢?面官甚至
: 提示:你想想人们在还没有发明计算器之前是怎么做乘法的...

1 (共1页)
进入JobHunting版参与讨论
相关主题
请教 Intel Offer
大数乘法的另类解法
问一道matching的算法题目,谢谢!!
一道T的题。
生物,食品,生化制药专业有想海归的看过来
intel offer
Quick selection for k unsorted arrays
请教一个概率问题
问一到题目
2道面试题.
相关话题的讨论汇总
话题: summation话题: floats话题: compute话题: multiply话题: two