程序中的数学模式一:梯度恒等模式
来源:互联网 发布:gta4优化补丁 编辑:程序博客网 时间:2024/04/27 16:32
我一直认为,编程是我们大脑中解决问题的逻辑思维过程的语言描述,而与这种逻辑思维最相关的应该是其背后的数学逻辑。我相信很多编程问题虽然表面看千差万别,但是其背后隐含的数学本质和编程方法一定是相似的,将这一类问题的数学本质和编程方法抽象出来,就可以形成一类问题的模式。我希望在以后的编程中,遇到问题能够看出其背后的本质, 然后归纳概括出一些有用的模式。
模式一,梯度恒等模式。
该模式主要用到的是函数的映射思想,我发现在编程的过程中,映射的思想用得非常的多,例如,图形界面中的复选框的选择值映射成我们保存的一个有用的线性表或链表的下标值。
import java.awt.BorderLayout;import java.awt.GridLayout;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.ListSelectionModel;import javax.swing.SwingConstants;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;/** * 思想 映射的思想。 也就是通过selcet 获得自变量x的取值, 对应于修改数组中的图片情况, 然后把这个图片情况映射到面板上。 * 分析, 在程序设计中, 设计很多映射 ,而这种映射往往都是以一一恒等的映射, 背后的因变量往往就是我们需要维护的数据结构。这种模式成为 一一映射模式。 * @author Neuclil * */public class ListDemo extends JFrame{/** * @param args */final int NUMBER_OF_FALGS = 9;private String[] flagTitles = {"Canada", "China", "Denmark", "France", "Germany","India", "Norway", "United Kindgom", "United States of America"};private JList jlist = new JList(flagTitles);private ImageIcon[] imageIcons = {new ImageIcon("E:/MyEclipse空间/image/ca.gif"),new ImageIcon("E:/MyEclipse空间/image/china.gif"),new ImageIcon("E:/MyEclipse空间/image/denmark.gif"),new ImageIcon("E:/MyEclipse空间/image/fr.gif"),new ImageIcon("E:/MyEclipse空间/image/germany.gif"),new ImageIcon("E:/MyEclipse空间/image/india.gif"),new ImageIcon("E:/MyEclipse空间/image/norway.gif"),new ImageIcon("E:/MyEclipse空间/image/uk.gif"),new ImageIcon("E:/MyEclipse空间/image/us.gif")};private JLabel[] jlblImageViewer = new JLabel[NUMBER_OF_FALGS]; public ListDemo(){JPanel p = new JPanel(new GridLayout(3,3,5,5));jlist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);for(int i = 0; i<NUMBER_OF_FALGS; i++){p.add(jlblImageViewer[i] = new JLabel());jlblImageViewer[i].setHorizontalAlignment(SwingConstants.CENTER);}add(p, BorderLayout.CENTER);add(new JScrollPane(jlist), BorderLayout.WEST);this.setLocationRelativeTo(null);this.setSize(650,500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);jlist.addListSelectionListener(new ListSelectionListener() {@Overridepublic void valueChanged(ListSelectionEvent e) {// TODO Auto-generated method stubint[] indices = jlist.getSelectedIndices();int i;for(i = 0; i < indices.length; i++){jlblImageViewer[i].setIcon(imageIcons[indices[i]]);}for(;i<NUMBER_OF_FALGS;i++){jlblImageViewer[i].setIcon(null);}}});}public static void main(String[] args) {// TODO Auto-generated method stubListDemo listDemo = new ListDemo();}}
0 0
- 程序中的数学模式一:梯度恒等模式
- 梯度下降算法中的数学
- .NET中的设计模式一:工厂模式
- .NET中的设计模式一:工厂模式
- 并发程序模式 (一)FutureTask
- Symbian程序中的观察者模式
- Symbian程序中的观察者模式
- Symbian程序中的观察者模式
- Symbian程序中的观察者模式
- Symbian程序中的观察者模式
- Symbian程序中的观察者模式
- 【数学三角恒等变幻】【HDU2552】三足鼎立
- java中的Proxy模式(一)
- Tomcat中的设计模式一
- Jsoup中的设计模式一
- 设计模式与教学总纲一(数学篇)
- 后台服务程序开发模式(一)
- 数学中的梯度在图像边缘检测中的应用
- 0927
- effective stl 第35条:通过mismatch和lexicographical_compare实现简单的忽略大小写的字符串比较
- dlna定义
- 欢迎使用CSDN-markdown编辑器
- UVa 294 Divisors
- 程序中的数学模式一:梯度恒等模式
- HDU 4513 完美队列II(最长回文子串)
- Web 开发常见安全问题
- kafka通过sparkstreaming连oracle模版
- js中的||和&&
- 获取本机IP和使用log打印日志
- android studio设置SDK路径
- 冒泡排序之排序
- JAVA的基础语法-上