iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0
AI & Data

如何使用演算法優化ERP系統營運準確率與效能以降低營運成本系列 第 1

[Day01] 前言 - 演算法優化ERP系統 - 甚麼是演算法?

  • 分享至 

  • xImage
  •  

Hi!大家好~
我叫York,是一位後端工程師,平時的是做後端API跟資料處理相關的工作,因為曾經接觸過演算法這塊但平常工作用不到感覺很(皮)可(在)惜(癢),剛好被朋友推坑這個比賽,超臨時的XD
就暫時當筆記研發來看看!希望在30天的鐵人賽中,從中去整理資料相關的及演算法運用來達到可以降低成本的部分

首先,我們要先了解一下什麼是演算法!
演算法聽起來好像很厲害很專業!(嗯!我就是被這樣被騙進來的哈哈)
但他真的有這麼難嗎?有沒有簡單的?
答案是有!「演算法」這麼名字只是一個統稱,其實只是名字比較專業而已!
根據 <維基百科> 上的定義
演算法/算則法(Algorithm)爲一個計算的具體步驟,演算法中的指令描述的是一個計算,它執行時從一個初始狀態和初始輸入(可能爲空)開始,經過一系列有限而清晰定義的狀態最終產生輸出並停止於一個終態。

簡單的理解可以為
1.你給予一個input或預設值
2.在設計好的演算法內進行計算
3.最後回應一個在這些參數或條件計算後的output結果

聽起來好像沒有很難吧?據個例子來說吧

「York一個月有3000的零用錢,這樣的話他每天有多少錢可以花。(一個月以30計算)」

這樣該很簡單吧?答案就是把 3000 / 30 = 100 ,不用3秒就對吧!
所以其實 "X / 30" 就是一個最簡單的演算法!你說蝦?騙人是吧!
沒錯別意外,這個就叫做演算法!

如我覺很得奇怪,那我們再把他想的複雜一點
假設「York一個月有3000的零用錢,但因為假日要回家所以不會花到零用錢,這樣的話他每天有多少錢可以花。(一個月以30計算)」

那我們就要考慮到這30天中有多少個周末?扣掉周末後他的平均金額是多少?
1.如何計算出有多少個周末
所以我們要先知道一周是幾天,平日跟假日跟分別是幾天?
2.這30天扣掉假日的天數還剩多少天
3.最後才是計算每天可以使用的金額
我們可以簡單的想,因為天數固定為30天,所以可以確定30 % 7 = 2
而這兩天有幾種可能
1.都是假日
2.一天是假日、一天是平日
3.兩天都是平日

因此我們指定的參數是九月份進行計算
而九月的結果是選項[2.一天是假日、一天是平日]
因此可以這樣計算

print("九月份零用錢演算法XDDDD")
money = int(input("輸入金額 : "))
days = int(input("輸入當月天數 : "))

params = days % 7
param = params - 1 if params > 0 else 0
print("九月幾天是變動的:", params) #其中一天是平日、一天是假日
day = 30 - 8 - param
result_money = money // day
print("九月份每天平均可花零用錢 : " + str(result_money))

好啦基本的演算法概念就到這邊啦,有了初步的概念之後就是想著怎麼改善中間的計算邏輯跟方法啦~
就我而言第一次挑戰就找這麼難的東西根本想不開XD,所以是報著學習的心態來參加的,後面應該會以 C# 為主 Python為輔,自我練習一下! 這兩種語言在演算法上我是沒有感受到太大區別啦,至少到目前為哈哈
就讓我從明天開始開始看看甚麼是ERP系統吧! Fight!!

總之呢終於嗑完第一天了哇哈哈,這系列有很多文章,也希望如果有錯也請各位高手不吝嗇指教!!

希望能夠堅持完成連續30天的挑戰,也希望如果有錯也請各位高手不吝嗇指教!!


下一篇
[Day02] 前言 - 演算法優化ERP系統 - 甚麼是ERP系統?
系列文
如何使用演算法優化ERP系統營運準確率與效能以降低營運成本13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言