如果你是乙個程式設計師,你模擬了乙個世界,從程式或者邏輯上,你如何允許時間穿越的存在?

時間 2021-05-30 01:54:05

1樓:

很遺憾,並不行,這實際上每次穿越就相當於多模擬乙個世界,消耗多一倍的資源,或者任何一次穿越發生的時候,穿越前的世界就要停止,直到被穿越的的世界GC——這意味著世界是有盡頭的

2樓:icepro

首先對於物理世界而言其實沒有時間這個概念,時間是不同資料變化帶來的主觀感覺,基於這點,我們首先假定如果資料一樣就回到了過去。

那既然這樣!不就可以用git拉,現在是個程式設計師都會用git了吧

git不就是標準的時間機器麼!

我們把git commit換成定時儲存,然後每當進行時間穿越的時候就相當於回到某個commit所在的分支

對分支可以無限拉,走自己的路,但是不論幾個分支只有一條主線,如果要回到主線就需要把兩個分支的內容進行合併。

這個合併分為:

1. 不影響歷史程序的

這種可以直接自動合併

2. 影響歷史程序的

這種需要處理衝突,就是可能從某個時間點突然有些東西就不一樣了,但是你在這個時間點後可以發現過去多了某些記錄。

wtf 這不就是平行宇宙麼

Σ( ̄。 ̄)不知道有沒有跑題大致就這個意思

3樓:飄夢

記錄每乙個時間點的狀態就好,把自動存檔的時間跨度調小我覺得效果就差不多了,比如乙個蒲朗克時間?如果要允許穿越就把一定範圍內的狀態複製然後讀檔然後貼上?

4樓:

只允許穿越者做為觀察者,可以觀察、記憶,但不允許與別人交換資訊、資料和物品。也即是說,他對於穿越過去或未來只有「唯讀」許可權。

5樓:

假設從時間b發生了一次穿越回到時間a,穿越發生之前a點的狀態是a0,b點的狀態是b0,穿越後a的狀態變為a1。

我們可以把這個世界的演化看作乙個函式。定義從a到b的演化為f,即f(a0)=b0。定義g為從b穿越回a對a狀態的影響,即g(a0,b0)=a1。

把f代入到g中可以得到g(a0,f(a0))=a1,引數只有乙個a0,我們可以把它重新命名為h,即h(a0)=a1。

然後我們要做的就是再把a1代入h求得a2=h(a1),然後如此迴圈往復,把ai代入求得ai+1。最後要這個世界穩定就需要得到乙個不動點ak使得ak=h(ak)。

我在紙糊上甚至看過一篇介紹怎麼用這種「世界自動幫你求不動點」的技巧構建一台計算能力超過圖靈機的機器的文章Orz

6樓:磨鏡人

編乙個攀登珠穆朗瑪峰的小遊戲,先執行一次,然後再執行一次。

現在好了:你已經允許時間穿越的存在了。如果有乙個觀察者,他就會注意到因果系統出現錯亂,但是現實世界的邏輯依舊平順。

7樓:鄭晉明

當我在現實中搞砸一件事的時候特別懷念程式世界的Ctrl zzzzzzzzzz…… 時間穿越就是程式世界的標配,習以為常,沒有邏輯困難,沒有接受障礙。

8樓:龍騰道默默地

不過無論是哪一種,對穿梭者來說都是不透明、無差別的,所以只是是否保留修改前版本的問題。我是會保留的,所以一上來說了第一種。

作為乙個喜歡程式設計師的女生,你覺得程式設計師的哪些特質吸引了你?

因為 我也是程式設計師啊 我做前端吶,希望物件也是搞IT的 乙個團隊就這麼出來了噻 哈哈哈哈 開玩笑的啦,大家都是程式設計師比較有共同語言吧,也能夠相互激勵著學習,拓展知識面。高薪嘛,眾所周知,不過,我也不低呀 因為兄控。哥哥是學霸,從小優秀,現在在微軟工作。比較疼愛我。因為哥哥對程式設計師抱有非常...

程式設計師是怎樣的乙個群體?

言午方見 我身邊的程式設計師整體還是偏沉悶的,就是比較務實低調,踏實幹自己的活。話語不會太多,尤其是在乙個活躍的氛圍裡面。另外感覺他們也相對比較節儉,不會有太奢侈的消耗。有的會進行一些理財行為,有的喜歡一些戶外運動。整體相對純粹。 MuteG 無法代表全體,只描述自己。生活方式和普通人沒什麼明顯區別...

作為乙個程式設計師,你相信人類所寫的的程式有一天會產生自我意識嘛?

四十二 半個程式設計師強答一下 產生自我意識屬於強人工智慧範圍內的。目前呢,完全沒有思路,也想象不出來。可控核聚變還有個理論基礎呢,而且一直一點點在進步。 老祝 通過圖靈測試的程式算不算,如果算則應該算會有。但你怎麼能確定這是它真的有意識,還是它已經有足夠強大的偽裝,偽裝強大到人類無法識別它是否真的...