Archive for category 胡思乱想

(模拟电路)电蚊拍电路分析

How does bug zapper work – analog circuit analysis

原创文章。转载注明出处。

夏日炎炎,蚊虫肆虐。对抗萦绕思绪的飞虫,电蚊拍是个不错的手段。

可是电蚊拍的电路是怎么回事呢?

找来了这么个电路图。来源在这里,通过搜索找到;以下是整理后重画的版本。

fig1

上图中省略了 22MOhm 负载电阻;输出端为 C3-D3 连结节点,以及 L3-C1 连结节点。

 

原文中仅对电路原理做了简单的概括,没有具体阐述工作原理。这让像我这样模了很多年电但是没有任何经验的人十分头疼。所以花了几个小时,查到些资料,自己推理了一下,把事情弄明白了。

这个电路的分析过程没有多少计算,仅凭估算和定性推断就能完成。实际上没必要太仔细求值,因为器件的实际工作状态跟理论上相差太远;而这套设备所利用的恰恰利用了非理想的特性。

整个电路可以划分为两部分,以变压器 T1 为界,左边是电源和脉冲震荡电路,右边是倍压整流电路。下面分开分析。

 

先看右边的倍压整流电路。维基百科有一个词条很好地解释了倍压电路的工作原理。

fig3

本例中的倍压整流电路如上图所示。变压器用电压源 U3 代替,且设图中“负”(-)端子为参考电位。设 U3 “正”(+)端子处电位在 +100V 与 -100V 之间变化。当 U3 首次处于正压时,D1 导通,C1 迅速充电至饱和,图中右侧为正极,电压 100V 。当 U3 变为负压时,D1 截止,D2 导通,U3 为 C2 迅速充电至饱和,图中 C2 的下侧为正极,电压 200V 。当 U3 再次变为正压时,D1 D3 导通,D2 截止,C3 迅速充电,图中 C3 右侧为正极,电压 200V 。又因为 C1 存在 100V 电压,所以 C3-D3 连结点,即输出端子处电位为 300V,完成了三倍压操作。

以上工作原理需要满足一个假设,即电容的充放电时间远小于电源 U3 的交变周期。实际上,前级电路产生的震荡电流,经过变压器的非线性变换,已变成接近方波的形状。在每个交变周期内,电容都能充电至饱和。

这个电路虽然提供极高的电位差,但是并不能提供多少功率(能量)。一旦有蚊虫飞落电网,导致电弧放电,则电容内能量很快会释放完。这样的能量足以杀死或击晕小型昆虫,但是不足以伤害人体,就像生活中常见的静电放电一样。另外,C3 需要多个周期才能充满电,进而达到设计的高压值;不过因为震荡频率很高,因而准备时间很短,可以忽略。

在网络中搜索“倍压整流电路”,会找到很多介绍电路原理的文章,其中不乏关于电压值的计算。笔者对一些采用正弦波电源、计算中使用峰峰值等做法持怀疑态度。比如这一篇文章中所述,电容电压一律用电源峰值计算。笔者不禁提问:如果电源是正弦波,那么电容的充放电波形应该是什么样的?假设电容能充进电,那么回路的时间常数就远小于正弦波之周期的四分之一;于是,在电源电压经过了峰值以后,电容会持续放电,直至零电压。另一方面,假设电容不会放电,那么时间常数远大于正弦波的周期;于是,它根本充不进电!

笔者的观点是,因为电感线圈的作用,电流会在某一水平持续一段时间;在这段时间内,电容完成充电;受振荡电路控制,线圈电流很快反向,这段切换的时间远小于电容的放电时间常数。于是,后级电路可以工作。

 

再看左侧的高频振荡电路。查阅资料发现,这样的振荡电路叫做 Blocking Oscillator ,因为放大元件(amplifier)经常处在截断(blocking)状态而得名,现在已不多见。这篇文章详细介绍了其工作过程。

fig2

如上图所示,这个振荡电路的构成十分简单,仅有四个分立元件——电源(电池),放大器(amplifier,NPN 晶体管 Q1),阻尼(damping,电阻 R1),以及提供正反馈的变压器(positive feedback transformer,T1)。

晶体管不断在截止与导通的状态之间切换。首先看截断状态。此时整个电路中没有电流,T1 与 R1 均不存在电压。由于 be 结正压偏置,Q1 很快导通。当 Q1 进入导通状态后,射极电流 Ie 通过变压器的作用,提供正反馈给基极;被正反馈的电流,因为三极管的放大作用,是不断增大的;如果变压比合适,那么基极电流在电阻 R1 上面产生的电压,将在某一时间达到足够大,以抵消电池电压,导致 be 结零偏,三极管转入截止状态。

疑点:因为三极管在瞬间由导通转入截止,所以在电感线圈里的电流没法消除。这是否有损坏三极管的可能?并且,一旦三极管击穿,将导致电感线圈的电压直接加在电池上,可能引起电池损害。在前文中引用的文献里提到了这个问题,并采用了钳位二极管来保护设备。

为了让后级电路能够工作,这里震荡的频率一方面要足够快,使得后级线圈 L3 中的电流不断变向,而不在零值保持太长时间;另一方面要足够慢,使得电容充分充电。调节震荡频率,可以通过改变线圈 L1 和 L2 的匝数比来调节正反馈的量,也可以通过改变电阻 R1 的阻值达到类似的效果。

 

结论:国产山寨货太不靠谱了,各种危险。但是,山寨工程师们能够把来自于真空管时代的振铃电路(警铃和发报机)变成仅用四个元件的高频振荡源,再把来自于显象管(CRT)高压包的倍频电路变成仅用几个二极管和聚合物电容的倍频器。整套电路设备,批量生产的成本不到两块钱。而电蚊拍可以卖到三十块钱(大米地阿玛桑更可怕,三十刀)。技术带来暴利。

原创文章。转载注明出处。

– END –

Advertisements

留下评论

Windows Live Writer is automatically shrinking pictures and wiping EXIF while uploading

UPDATE 2013.8.12 – PROBLEM SOLVED. Check out  this post for explanation and solution.

 

I haven’t noticed this problem until today, before beginning to write my next photo blog. But now at the beginning, I should first make a description about the problem.

That is, Windows Live Writer is automatically re-writing JPEG files with a smaller FILE SIZE which have inferior image quality, as well as disposing the original EXIF data that is embedded within my JPEG file.

More details comes here. I’m using Windows XP and the latest WLW version, 14.0.8117.416 en, to write blogs on my wordpress.com site. The photos (JPEG files) are “processed” with my own imaging softwares before being pasted into WLW, and I’m sure it does contains EXIF when it is stored on my computer. However, when I put the pictures into my blog text, publish the post with WLW, things just go absurd – larger pictures (with file size of <1MB, typically 400 – 600KB) become shrinked (file size into half, but image size remain same pixels), and EXIF data just go away!

You can easily find examples since Oct 2010 to now. In May 2012, I published first post with some photos, after moving to wordpress.com due to Live Space’s shutting down, of which the EXIF data have gone. I didn’t notice that. The last post which contains EXIF data seems to be this one.

Although WLW is doing these evils “voluntarily” for me, it’s not hard to guess the reason. Maybe it thinks the photos are too big to be posted, so just save them with LOWER quality! But I don’t think it a good idea huh. My free 3GB space on wordpress.com is far from being used up. I don’t need WLW do this kindness, but it seems I have no choice but to endure….

Later I used Chrome to upload a photo. I mean I logged in wordpress.com’s website, went to the dashboard, and uploaded a photo, containing EXIF data, to the media library. Then I checked this file, it does contains EXIF. See the picture here (opens in new window). This shows that it’s not wordpress.com that should be blamed at. Must be Live Writer. (I try not to say those bad words)

Well, after the deep search with Google, which hands me this, this, this, and this which lists out a variety of free blog clients, all posts of which are outdated, I soon discovered I should stick to WLW despite of its downside about picture uploading mechanism. Those free and open-sourced client programs are disappointing – WLW is better for writing blogs as relaxation, but not a geek action. So, I think my best decision is to stay with WLW, and continue to suffer from lower image qualities and missing EXIF data.

Makes blogging less interesting. Doesn’t it?

How is your Live Writer working? Does it shrink your photo and delete EXIF before uploading to wordpress.com? Please leave me a comment.

好吧,终于吐槽完毕。无良地写个中文关键字然后写下一篇。

Windows Live Writer is automatically shrinking picutures while uploading

使用 Windows Live Writer 编写博客,上传图片时,图片被自动重新压缩,并丢失 EXIF 数据。

This is an original article by dtm. You should refer to this page either while quoting or translating the text above.

一条评论

[转]1930年代美国人为什么倒牛奶?

此文为转载文章。原文地址:

http://hi.baidu.com/hzorfuqdcpbhkwd/item/c1e73ceffe479d0d65db0026

1930年代美国人为什么倒牛奶?

信息来源:

http://xroads.virginia.edu/~MA04/mccain/audiohist/lesson2.htm

http://iptv.org/iowapathways/myPath.cfm?ounid=ob_000070

在1930年代的大萧条时期,很多人失去了工作。在艾奥瓦州,很多失业者是农民或曾在农场从事相关工作的人。当国家经济变得萧条时,农产品价格下跌,导致很多农民甚至无法以成本价销售产品。一些农民认为提高农产品价格的方法是组织抗议罢工。
在抗议罢工时,参与者停止了其他人的一些工作,罢工者要求别人也意识到产品和工作是多么重要。
在艾奥瓦州和其他一些中西部州,一些农民组织了“牛奶罢工”以抗议支付给他们的低廉价格。他们封锁了道路,阻止牛奶或奶油运往市场。如果司机不掉头回去,罢工者将倾倒他的牛奶。
罢工农民已经厌倦了在自己的产品上失去利润。“为什么我们还要自己买汽油将自己的产品运到城里?价格如此之低,我们要阻止牛奶运到城里,还要倒掉它!”
罢工者要求所有农民团结起来参加罢工。他们相信他们的抗议会引起关注。政府将意识到农民的牛奶生产成本高于牛奶销售价。
罢工者还相信如果城里牛奶的供应减少,需求会增加,人们将会支付较高的价格。
但也有很多农民反对“牛奶罢工”。他们认为倾倒牛奶太浪费了。他们珍惜自己生产的牛奶,不会去毁掉它,很多人依靠销售牛奶和奶油的钱生活——尽管很不够。他们不认为罢工会帮助提升价格。
罢工一度失去控制而引发暴力。没有人希望暴力,但这可以显示在大萧条时期美国农民是多么愤怒和绝望。

艾奥瓦州的农民为争取更合理的价格而罢工,阻止运送农产品的车辆前往城里,并将拒绝掉头的车上的牛奶倾倒。

大萧条时期的牛奶价格,表明了农民发动“牛奶罢工”的意向。罢工试图阻止牛奶投入市场,直到农民能从政府采取的措施中获益。农民、中间人和消费者构成了不平等的经济状况——中间人赚了所有的钱,他以3美分购买牛奶却以15美分卖出。

“农民假日协会”的领导人Milo Reno。艾奥瓦州Sioux城的农民决定他们的唯一措施是阻止牛奶投入市场。

在大萧条时期,很多艾奥瓦州的农民由于银行和保险公司取消了他们的回赎权,导致他们失去了自己的农场。农产品价格跌到了历史最低点:谷物8美分一蒲氏耳,猪肉3美分一磅,牛肉5美份一磅。很多农民无法接受这种价格,愤怒的农民决定为较高的价格而战斗。



艾奥瓦州和内布拉斯加州的农民决定开展“农民罢工”以争取较高的价格。1932年5月3日,3000多名艾奥瓦农民罢工,他们在通往农贸市场的路上设置路障,并倾倒拒绝返回的卡车上的牛奶,甚至将装着牛的车掀翻。但是这并没有效果,警察最终解除了路障。

1932年8月,Reno发动了他的第一轮罢工,Sioux城的牛奶生产者和愤怒而绝望的谷物生产者和牲畜养殖者纷纷加入。牛奶生产者的罢工针对的是J.R.Roberts乳品公司,他们要求每百磅牛奶的价格从1美元涨到2.17美元。当时消费者为每夸特牛奶支付8美分,而农民只能得到2美分。当时的专栏评论员肖特抨击了Roberts公司的垄断和不公平价格策略。而J.R.Roberts公司则坚持他的公司不会与支持肖特或他的文章的牛奶生产者做生意。

当时的一份报纸,标题是:艾奥瓦正在开展农民“罢工”。漫画中老人的木板上写着:我们不会销售我们的谷物,直到我们能赚回生产成本。

 

转载后记:前天买了一箱牛奶,附送的两袋变质坏掉了,果然坑爹。于是想到了那张照片,所谓的“资本家”宁愿倒掉牛奶也不希望便宜卖出。仔细一想,这种愚蠢行径,资本家是不会做的。所以翻了翻狗哥,本想找点原始材料自己研究一下,没想到原来早已有人作了此文~过去的课文果然是低端黑。

3条评论

[转+原创]Color Definitions in Spectral Phase Display and Spectral Pan Display in Audition

The following article is transmitted from part of an introduction to Adobe Audition 2.0, which makes a brief presentation of newly added Spectral Phase Display and Spectral Pan Display.

以下文字将介绍在Audition中,“频谱-相位显示”与“频谱-立体声位置”图像对颜色的定义。第一部分为转载,第二部分为原创。

from Adobe Audition 2.0 – A major transformation for this audio recording and editing program

http://digitalproducer.digitalmedianet.com/articles/viewarticle.jsp?id=36828-2


The new Spectral Pan and Phase displays allow audio to be viewed as a plot of pan position or phase over time. In the Spectral Pan Display, you can visually analyze the L-R position of every frequency by looking at the stereo plane. The horizontal x-axis measures time and the vertical y-axis measures pan position. Signals that are panned full left are at the top of the graph, and full right panned signals are at the bottom. If you think something’s off in your stereo field, this is an excellent way to see exactly what’s going on. Then you can fix it, using tools such as Audition’s Center Channel Extractor and Pan/Expand effect.

The Spectral Phase display shows the phase difference between left and right channels. Frequencies that are 180 degrees out of phase are indicated by bright patches adjacent to the +/-180� markers. The Histogram Phase Meter augments the existing phase meters, which already included a standard x-y graph, mid/side graph, a spin graph (animated phase display) and a phase wheel. What the Histogram Meter provides that the others don’t is a wedge-shaped view of the L-R phase relationship. If you can’t figure out a stereo phase problem with these tools, maybe you’re in mono!

Spectral Controls panel at bottom with topographic color bars

Histogram phase analysis at left


 

The next portion is written by myself.

Through above we can see the Spectral image is plotted based on a function with multiple values and two-dimension axis. The horizontal axis maps to timer shaft and the vertical pan or phase depending on which plot is selected by you.

But my question is how the values of the function is defined and how they are displayed on the plot. It really occurs to me, after searching the Internet for “spectral phase display spectral pan display”, to make another google search on keywords “audition spectral phase display color definition”, partly because of a forum post complaining about poor explaination of the two spectral images in Adobe’s official documents.

It took me several minutes to perform some preliminary experiments about how they work. I used “generate” function, which can be found collected as a menu in the main window, to make some seconds of single-frequence tone (major A, f=440Hz) and pink noise on -6dBw. Later I made another period of tones, a little more complicated, which contains a base freq at 440Hz (A again) and four harmonic frequencies 880, 1760, … with a calculated gain based upon fourier series (to make the sound a little prettier and thus not so harsh! ). Pan sweeping was also applied as 360 degrees per cycle, 0.5 cycle per second. After (confusing) configurations, the plot turned out to be sort of interesting. For a period of pink noise, all of the three Spectral Displays are bright, even and harsh, showing the noise has a frequency spectrum on every frequence, while the pan and phase are changing rapidly and randomly.

Then we come to the “melodic A” tones. In Spectral  Frequency Display, five bright lines on the bottom of the plot indicates the tones generated. In Spectral Pan Display, a straight horizontal line stands for a constant pan position (determined by the configuration you have made when generating the signal). In Spectral Phase Display, which has diverted me, contains a series of slope. It’s easy to understand – the phase is, due to the configuration, sweeping linearly with respect to time. Hearing the sound, you can feel that the source of the signal keeps moving around you, and perhaps you can even tell it’s circling your head – that’s what phase really means!

The “Spectral Controls” panel can be called out by clicking the “View” menu, and it was until I got the text at the top I haven’t realized this additional control panel was hidden by default. It shows how the colors on the Spectral Displays are defined. Virtually, the colors can be changed by the user. The horizontal axis has ticks of “x dB”, which indicates the power of the signal. Drag the color or the bright patches and the colors can be adjusted or offset.

So here comes the answer, after some more readings on different topics written by different people. The Spectral Pan Display and Spectral Phase Display, firstly introduced in version 2.0, make a useful analysis for STEREO signal. The Pan Disp shows how the sound is biased in the terms of “left or right”. The vertical axis shows the degree of bias, -180 as totally left and +180 right. Different colors indicates different power (dW/dt, or an Inverse Fourier Transform of the Spectrum F-1{S(w)} in fact) of the signal. An overlay of signals will generate beautiful ribbons since the colors will be added according to superpositioning of the light, as you will see when handling with common music tracks. The Phase Disp provides a straight insight of how the sound is spread among the “stereo” space. The vertical axis shows in what position you can feel and locate the sound (using both of your ears, and of course a bit of imagination! ). The color definition is the same as Pan Disp.

In the end, we shall come back to Spectral Frequency View. These three plots are pretty interesting to me, as each of them depicts one unique character of a stereo sound, all of which can be precisely defined by mathematics, and computed out using numerical analyses. Although the colors look “different”, strange, or to me a little uncomfortable in Pan and Phase Display, they have sheerly the SAME meanings as the Freq Disp. So, if the “default” colors Adobe has determined when releasing its new software consent with each other in the three displays, maybe it would be easier for us to understand how they work.

– END –

留下评论

记一次杀毒

上,我一边享受浓郁的阿尔卑斯糖,一边悠闲的上着网,一边心想,今天的悠闲不是盖的,需要找点事情来做。突发奇想,很久没有玩杀病毒了。于是,我打算找一个病毒来玩玩。

 

我打开有爱的Google Chrome(因为害怕浏览器染毒,不好杀,所以请来狗哥助阵),找到一个有爱的小网站,心想他们会给我送点病毒。果然不出所料,狗哥说:这个网站很危险,不要去。我给狗哥说了我知道很危险,我偏要去,这样以后狗哥才让我打开了网页。

心得:狗哥能够抵御一般的不良网站,他说有病毒我们还是听一听吧!

 

这网站让我下载了一个有爱的EXE,刚下载完,小黄盾就把他删了。扫了一眼病毒名,我想,这太没意思了,小黄盾总是在别人还没说话之前就把别人整死。我要看看这病毒怎么能把小黄盾搬掉,于是我找到任务栏系统托盘上的Symantec Endpoint Protection的图标,也就是那个小黄盾,点右键,选择:禁用 Symantec Endpoint Protection Small Business Edition。接着,我重新下载了那个有爱的EXE。

心得:小黄盾的功能不是盖的。很多人说SEP经常杀不了毒,经过笔者一一检查验证之后发现,这往往是因为是他们自己把SEP的监控功能停止了。这相当于你对小黄盾君说:我要包养病毒,你不要多嘴。

 

第一次运行它,我还蛮害怕的,心里像踹了十只小兔,这时候我就好像八级窝,还有不少牧草。我选中这文件,右键单击图标,选择“运行方式”,在对话框里勾上“保护我的计算机和数据不受未授权程序的活动影响”,然后点了“确定”,这时,系统没有任何反应。我想,一定是Windows XP的进程保护机制起作用了,病毒没有发作!

心得:Windows XP本身带有一定强度的防病毒功能,只是大部分国内用户没有在使用它,因为我们都不知道有这个东西,因为我们不知道操作系统是个什么东西。

 

第二次运行它,我就放松多了,这时候十只小兔不见了(我也不知道为什么不见了,可能是收获了吧)……我直接双击了A.EXE,于是,悲剧了……

我打开了任务管理器,发现,我还能打开任务管理器。在进程列表里我看到了大量A.EXE和他的弟兄们 A02.EXE A03.EXE …… A06.EXE路过的身影。这时我认识到,病毒终于工作了,真不容易啊!

马上,SEP的主界面窗口(刚才打开的)不见了。马上去查看进程列表,发现所有SEP的进程都被关闭了。任务栏托盘处的小黄盾图标被镶上了红叉叉,成了一个点不开的摆设。我打开控制台,进了“服务”页——果然,SEP的所有进程已经被关停。我试着打开他们,系统提示:依赖的服务没有启动。另一个提示:服务启动超时。查阅系统日志发现,这些服务进程无法启动,因为病毒控制了他们。但是病毒似乎只是禁止了他们运行,却没有篡改他们的数据。

这时,SEP的主界面鬼使神差地跑出来了,他告诉我:防病毒模块已经被搞残,而网络防火墙依然坚挺。我得知:这病毒只是在进程水平操作,而不会触动系统的硬件层,不可怕。我确信:这病毒只是把小黄盾君控制住了,但是并没有对他怎么样。我想,只要我不轻举妄动,病毒君是不会撕票的。所以我按部就班,继续接下来的操作。

心得:双击一个不认识的应用程序,是得病的最主要途径。

心得二:SEP的网络防火墙也不是盖的,底层驱动还是比较稳定的说。

 

根据经验,我关照了一下注册表里的Winlogon、Session Manager、Run这三个键,去掉了几个有爱的项。为了保全起见,又去了Temp文件夹,删掉了一个有爱的、扩展名是.tmp的可执行文件。然后就快快乐乐地重启电脑了。

重启之后,没有大的异常。小黄盾依然不能用,其他倒也没什么。这时我留意了一下autorun.inf,发现每个硬盘分区都被种了自动运行程序safedrv.exe。回想到刚刚运行A.EXE的时候,就是这个程序因为非法操作,被关闭了——那个时候XP还在做着最后的挣扎?

心得:常规病毒嘛。Win32.Trojan.Buzus

 

我请出狗哥,又连通了网络(刚才为了安全起见,断网了)。狗哥说,这个病毒可以用三六零生产的“360compkill.zip”干掉。我很早就知道,三六零是不可能成功杀毒的。但是抱着试试看的心态,我又下载了这个有爱的zip文件,解压,运行,无效。按照提示,把EXE重命名为fck.exe,成功运行。据此可以判断,病毒是根据进程名称而阻止其运行的——或许SEP还有救?

打开三六零之后,提示要先上网升级才能工作。这个一次又一次让人失望的品牌。

无奈,等它升级完成,才开始杀毒。

在报告出好几个分区存有autorun.inf和safedrv.exe之后,它便默不作声了。

之后,发现他把我的文件夹的图标全都改成默认的样子了。我的Visual Identification啊。

心得:没事不要用三六零,世界上有很多很强的木马专杀软件,所以,真的不要用三六零。

 

我给三六零说,伙计你别演道了快走吧,他就收拾收拾东西走了。他后脚刚走,小黄盾君前脚就来了,还说:我从绑架场地逃了出来,虽然被搞残,但是还留着……阿弥陀佛。

小黄盾君又说:发现病毒!

小黄盾君又说:这是谁干的破事,这病毒明明还有肉躯,可是为什么只剩下了一半?只有一种可能:拿走了一半,剩下一半没有看到,忘记拿了。

至此,病毒君已经被彻底摧毁,我的XP再次生龙活虎,我于是活蹦乱跳地又上起了网。

 

心得:

我 22:27:29
我刚杀了个病毒

腾腾姐 22:27:36
手刃?

我 22:27:44
不是..

腾腾姐 22:27:55
咦?

我 22:27:59
你听我说

腾腾姐 22:27:59
竟然不是手刃

腾腾姐 22:28:04

我 22:28:17
对付生长在我的电脑上的病毒, 最简单的方法是让小黄盾恢复工作.

我 22:28:26
所以, 就完了.

我 22:29:00
也就是说, 外科手术恢复了本身的免疫系统, 自身产生免疫力, 所以, 就完了.

腾腾姐 22:29:24
那我的以后也是这样喽?

我 22:29:30
嗯.

腾腾姐 22:29:38
这个好

 

– END –

3条评论

PKU 1001 Solution using C++

#include <iostream>
#include <cmath>
using namespace std;

int grp[125]; /* 存放乘法之后的结果 */
int digi_a[5]; /* 把底数a的五位数字分开存放在一个数组中 */
int res[125]; /* 临时数组,用于乘法运算 */

void init() /* 初始化三个全局变量,每次进行计算之前都会初始化 */
    {
    int i;
    for (i=0;i<5;i++)
        digi_a[i]=0;
    for (i=0;i<125;i++)
        {
        grp[i]=0;
        res[i]=0;
        }
    }

int getinput(int *exp, int *digit) /* 格式输入 */
    {
    int i,j;
    int counter=0; /* 数出输入的数字是几位小数 */
    int dotted=0; /* 布尔量,标记输入的数字有没有小数点 比如000022 和 .02020 */
    char base[6]; /* 容纳输入的六位数字 */
    while (cin >> base[0]) /* 输入,包括检测是否输入结束 */
        {
        for (i=1;i<6;i++)
            cin >> base[i];
        cin >> *exp;
        for (i=0;i<=6;i++)
            {
            if (base[i]==’.’)
                {
                dotted=1;
                break;
                }
            }

        i=0,j=4;
        if (dotted)
            {
            while (i<6)
                {
                if (base[i]==’.’)
                    {
                    counter=5-i++;
                    continue;
                    }
                digi_a[j–]=base[i++]-48; /* 去掉小数点的五位数字传送给digi_a[5] */
                }
            *digit=counter;
            }
        else
            {
            while(i<5)
                digi_a[j–]=base[++i]-48;
            *digit=0;
            }
        return(0);
        }
    return(1); /* 输入结束 */
    }

void multiply() /* 乘法运算,原理是在小学里学的竖式乘法,本函数是竖式第一步:相乘 */
    {
    int i,j;
    for (j=0;j<125;j++)
        res[j]=0;
    for (i=0;i<5;i++)
        for (j=0;j<125;j++)
            res[i+j]+=grp[j]*digi_a[i];
    }

void sumup() /* 辅助乘法运算,让每个数位的数字小于一,也就是竖式乘法第二步:相加 */
    {
    int j;
    int right=0,left=0;
    for (j=0;j<124;j++)                    /* 124 : is the input smaller than 99999??? */
        {
        right=res[j]%10;
        left=(int)((res[j]-right)/10);
        res[j]%=10;
        res[j+1]+=left;
        }

    }

void findpow(int b) /* 调用乘法运算的循环结构,每次乘法都是把grp[125]和digi_a[5]相乘,其中grp[125]存放的是最新的运算结果;竖式乘法运用了线性思想 */
    {
    int j,k;
    if (b==0) /* 非零实数的零次方是一 */
        {
        grp[0]=1;
        return;
        }
    if (b==1) /* 一次方就不用计算了 */
        {
        for (j=0;j<5;j++)
            grp[j]=digi_a[j];
        }
    for (k=0;k<b-1;k++)
        {
        multiply();
        sumup();
        for (j=0;j<125;j++)
            grp[j]=res[j];
        }
    }

void formout(int digit) /* 格式输出,按照要求来吧 */
    {
    int j=124,k=0; /* j用来指向最左边的非零数字,k用来指向最右边的 */
    if (digit==0)
        {
        while (!grp[j])
            j–;
        while (j>=0)
            cout << grp[j–];
        return;
        }
    while (!grp[k] && k<digit)
        k++;
    while (!grp[j] && j>=digit)
        j–;
    if (j!=digit)
        while (j>=digit)
            cout << grp[j–];
    else
        cout << grp[j–];

    if (j!=k-1) cout << "."; /* grp[125]只是125位数字,在输出的时候通过文本输出打点 */
    while (j>=k)
        cout << grp[j–];
    cout << endl;
    }

int main()
    {
    int expn=0,digit=0;
    int IsEnd=0; /* 输入是否结束 */
    while (1) /* 输入结束靠break跳出 */
        {
        init();
        IsEnd=getinput(&expn,&digit);
        getchar();
        if (IsEnd) break;
        grp[0]=digi_a[0]+digi_a[1]*10+digi_a[2]*100+digi_a[3]*1000+digi_a[4]*10000; /* 初始化运算,把底数存放到grp[0]里面,不用担心没有分位,有进位函数 */
        if (!grp[0]) /* 零的幂是零 */
            {
            cout << "0" << endl;
            continue;
            }
        findpow(expn);
        formout(digit*expn);
        }
    return(0);
    }

 

 

哥干了三天,又翻工干了一天搞定了,看到网上贴这个题的人不多,就把自己这个0MS贴出来吧……

– END –

留下评论

暴汗南韩老图

天挺闲,从收藏夹里捡了个网站就去看了,去蜂鸟看,哈,里面的粪青真不少!有讨论中国为什么不造自己的单反的,两百多贴我从头看到尾,我的意见跟大多数人的一致,综合一下主要是这几点:

一,中国没有财力搞这些东西。你中国投了多少钱搞航天?如果也拿出相当的钱投去搞单反,相信结果也是跟航天一样的——航天方面(也包括核武器等等),我们总是宣称“美国人搞了多少年,苏联搞了多少年,XX又搞了多少年,我们只用了**年就达到了同样的水平”——你一个举国体制,钱大把大把砸这上面,能不搞得这么快么?真要是不这么快,估计也没有谁会纳税去让国家做这些事情了。正所谓,一分钱,一分货,搞研究也是这样的,你没有钱,就算是世界顶尖的专家来了也是“无米之炊”。可惜“砸单反”用的钱我们实在拿不出,也不能拿,中国还有好多人等着吃饭,还有好多地方等待着现代城市、现代农村的基础设施建设,实在不应该拿这么多人吃饭的钱来研究“能变出影儿来”的小玩意儿。

二,日本人的精密光学器件谁都比不过,他们过去都是军工,中国人民恨透了的军工,可是人家民用化之后,自己经营的好,自己就来钱,也就不怕缺钱搞研究——这里又衍生出另一个问题,是关于国人办实业的观念,简而言之就是中国的企业还是主要是重产品轻研究,什么来钱搞什么,才不管什么长远考虑、科学技术。不管是“中国”,还是“中国人”,你给他十亿八亿,他是不会去搞那种费力不讨好的研究的,与其费脑子倒不如赶快让钱生孩子自己抱“钱孙子”来得快活。

三,中国这方面的技术落后。一个小小的单反相机,有人称之为“塑料玩具”,就包括机身的防护技术、集成、光电模块、等等,还有精密光学部件(现在我们连镜片都没技术,中国蹲守着大片的CaF2矿却生产不出用它作原料的镜片),电子时代的AF,CCD,CMOS…….还是第一点说的,搞这些东西不是不行,核弹不也是在困难时期造出来的么,什么发射塔,外壳这样的周边,再算上那一排倒计时用的小灯泡。。一套完整的体系不也是在几年之内就搞定了吗。有一点必须相信,国家只要砸钱,并且让拿钱的人干活(这是最重要的),就一定能搞出来,别人有专利我们也会有,别人有文化我们也慢慢会有,别人有几十年的积淀,这倒是得慢慢靠。。

四,先绕一绕嘴哈:单反是专业“器具”,另一方面也是商品。这就是说,单反相机连同镜头群、周边和配件群,都是迎合小众市场的,而且它们都很贵,用途上来讲是奢侈类消费品,不是柴米油盐酱醋茶啥啥的,小众之外的人根本没这需要——没有市场!绕完了,用一句话概括:你以为你需要单反,天下人就都需要单反?在中国这方面需求太小了,咱没必要费那么大劲儿做这事儿,做半天还比不过人家专门搞的!


愤世嫉俗完了,下面,轻松一下。。。

转自 蜂鸟网  原文 http://image.fengniao.com/104/1046718.html


暴汗南韩老图

http://www.fengniao.com CNET中国·蜂鸟网 【转载】 作者:Getty 2008年08月28日 06:00

·暴汗南韩老图

    这是Getty收藏的1947年南朝鲜交警指挥交通时的情景。(首先需要说明为何称之为南朝鲜而非韩国,是因为当时朝鲜半岛虽处于南北分治,但尚未独立的阶段。)当时的交警指挥的姿势现在看来十分让人崩溃,这活像小时候大家一起跳的集体舞。而其认真指挥、一丝不苟的样子更让人捧腹不已。特转载这些真实的老照片供大家既能赏老照片,又图一乐子。


Getty 暴汗南韩老图

“花园的花朵真鲜艳”——设计对白

Getty 暴汗南韩老图
“让我一次喝个够”——设计对白

Getty 暴汗南韩老图
摩拳擦掌

Getty 暴汗南韩老图
转体90°

Getty 暴汗南韩老图
舞动着上台

Getty 暴汗南韩老图
屈膝转向腰要直

Getty 暴汗南韩老图
踮脚昂头指方向

Getty 暴汗南韩老图
展翅欲飞

Getty 暴汗南韩老图
五指山

    今天我们以调侃的的态度来品味这组老照片。这是一个时代的标志,上世纪四、五十年代是朝鲜半岛经历巨变的时代。图上看交警孜孜不倦的指挥交通,但是空荡荡的大街上人车稀少,只有交警一人站在路口中央认真指挥。透过表面让人忍俊不禁的姿势背后,我们可以通过这组旧照管窥当时南朝鲜的状况。还是那句话,照片是历史的证据。

2条评论