自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用 Linux 命令玩一個(gè)有趣的數(shù)學(xué)游戲

系統(tǒng) Linux
像許多人一樣,我在大流行期間看了不少新的電視節(jié)目。我最近發(fā)現(xiàn)了一個(gè)英國的游戲節(jié)目,叫做 Countdown,參賽者在其中玩兩種游戲:一種是 單詞 游戲,他們?cè)噲D從雜亂的字母中找出最長(zhǎng)的單詞;另一種是 數(shù)字 游戲,他們從隨機(jī)選擇的數(shù)字中計(jì)算出一個(gè)目標(biāo)數(shù)字。因?yàn)槲蚁矚g數(shù)學(xué),我發(fā)現(xiàn)自己被數(shù)字游戲所吸引。

[[397250]]

在家玩流行的英國游戲節(jié)目 “Countdown” 中的數(shù)字游戲。

像許多人一樣,我在大流行期間看了不少新的電視節(jié)目。我最近發(fā)現(xiàn)了一個(gè)英國的游戲節(jié)目,叫做 Countdown,參賽者在其中玩兩種游戲:一種是 單詞 游戲,他們?cè)噲D從雜亂的字母中找出最長(zhǎng)的單詞;另一種是 數(shù)字 游戲,他們從隨機(jī)選擇的數(shù)字中計(jì)算出一個(gè)目標(biāo)數(shù)字。因?yàn)槲蚁矚g數(shù)學(xué),我發(fā)現(xiàn)自己被數(shù)字游戲所吸引。

數(shù)字游戲可以為你的下一個(gè)家庭游戲之夜增添樂趣,所以我想分享我自己的一個(gè)游戲變體。你以一組隨機(jī)數(shù)字開始,分為 1 到 10 的“小”數(shù)字和 15、20、25,以此類推,直到 100 的“大”數(shù)字。你從大數(shù)字和小數(shù)字中挑選六個(gè)數(shù)字的任何組合。

接下來,你生成一個(gè) 200 到 999 之間的隨機(jī)“目標(biāo)”數(shù)字。然后用你的六個(gè)數(shù)字進(jìn)行簡(jiǎn)單的算術(shù)運(yùn)算,嘗試用每個(gè)“小”和“大”數(shù)字計(jì)算出目標(biāo)數(shù)字,但使用不能超過一次。如果你能準(zhǔn)確地計(jì)算出目標(biāo)數(shù)字,你就能得到最高分,如果距離目標(biāo)數(shù)字 10 以內(nèi)就得到較低的分?jǐn)?shù)。

例如,如果你的隨機(jī)數(shù)是 75、100、2、3、4 和 1,而你的目標(biāo)數(shù)是 505,你可以說 2+3=5,5×100=500,4+1=5,以及 5+500=505?;蛘吒苯拥兀?code>(2+3)×100 + 4 + 1 = 505。

在命令行中隨機(jī)化列表

我發(fā)現(xiàn)在家里玩這個(gè)游戲的最好方法是從 1 到 10 的池子里抽出四個(gè)“小”數(shù)字,從 15 到 100 的 5 的倍數(shù)中抽出兩個(gè)“大”數(shù)字。你可以使用 Linux 命令行來為你創(chuàng)建這些隨機(jī)數(shù)。

讓我們從“小”數(shù)字開始。我希望這些數(shù)字在 1 到 10 的范圍內(nèi)。你可以使用 Linux 的 seq 命令生成一個(gè)數(shù)字序列。你可以用幾種不同的方式運(yùn)行 seq,但最簡(jiǎn)單的形式是提供序列的起始和結(jié)束數(shù)字。要生成一個(gè)從 1 到 10 的列表,你可以運(yùn)行這個(gè)命令:

  1. $ seq 1 10
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10

為了隨機(jī)化這個(gè)列表,你可以使用 Linux 的 shuf(“shuffle”,打亂)命令。shuf 將隨機(jī)化你給它的東西的順序,通常是一個(gè)文件。例如,如果你把 seq 命令的輸出發(fā)送到 shuf 命令,你會(huì)收到一個(gè) 1 到 10 之間的隨機(jī)數(shù)字列表:

  1. $ seq 1 10 | shuf
  2. 3
  3. 6
  4. 8
  5. 10
  6. 7
  7. 4
  8. 5
  9. 2
  10. 1
  11. 9

要從 1 到 10 的列表中只選擇四個(gè)隨機(jī)數(shù),你可以將輸出發(fā)送到 head 命令,它將打印出輸入的前幾行。使用 -4 選項(xiàng)來指定 head 只打印前四行:

  1. $ seq 1 10 | shuf | head -4
  2. 6
  3. 1
  4. 8
  5. 4

注意,這個(gè)列表與前面的例子不同,因?yàn)?nbsp;shuf 每次都會(huì)生成一個(gè)隨機(jī)順序。

現(xiàn)在你可以采取下一步措施來生成“大”數(shù)字的隨機(jī)列表。第一步是生成一個(gè)可能的數(shù)字列表,從 15 開始,以 5 為單位遞增,直到達(dá)到 100。你可以用 Linux 的 seq 命令生成這個(gè)列表。為了使每個(gè)數(shù)字以 5 為單位遞增,在 seq 命令中插入另一個(gè)選項(xiàng)來表示 步進(jìn)

  1. $ seq 15 5 100
  2. 15
  3. 20
  4. 25
  5. 30
  6. 35
  7. 40
  8. 45
  9. 50
  10. 55
  11. 60
  12. 65
  13. 70
  14. 75
  15. 80
  16. 85
  17. 90
  18. 95
  19. 100

就像以前一樣,你可以隨機(jī)化這個(gè)列表,選擇兩個(gè)“大”數(shù)字:

  1. $ seq 15 5 100 | shuf | head -2
  2. 75
  3. 40

用 Bash 生成一個(gè)隨機(jī)數(shù)

我想你可以用類似的方法從 200 到 999 的范圍內(nèi)選擇游戲的目標(biāo)數(shù)字。但是生成單個(gè)隨機(jī)數(shù)的最簡(jiǎn)單的方案是直接在 Bash 中使用 RANDOM 變量。當(dāng)你引用這個(gè)內(nèi)置變量時(shí),Bash 會(huì)生成一個(gè)大的隨機(jī)數(shù)。要把它放到 200 到 999 的范圍內(nèi),你需要先把隨機(jī)數(shù)放到 0 到 799 的范圍內(nèi),然后加上 200。

要把隨機(jī)數(shù)放到從 0 開始的特定范圍內(nèi),你可以使用模數(shù)算術(shù)運(yùn)算符。模數(shù)計(jì)算的是兩個(gè)數(shù)字相除后的 余數(shù)。如果我用 801 除以 800,結(jié)果是 1,余數(shù)是 1(模數(shù)是 1)。800 除以 800 的結(jié)果是 1,余數(shù)是 0(模數(shù)是 0)。而用 799 除以 800 的結(jié)果是 0,余數(shù)是 799(模數(shù)是 799)。

Bash 通過 $(()) 結(jié)構(gòu)支持算術(shù)展開。在雙括號(hào)之間,Bash 將對(duì)你提供的數(shù)值進(jìn)行算術(shù)運(yùn)算。要計(jì)算 801 除以 800 的模數(shù),然后加上 200,你可以輸入:

  1. $ echo $(( 801 % 800 + 200 ))
  2. 201

通過這個(gè)操作,你可以計(jì)算出一個(gè) 200 到 999 之間的隨機(jī)目標(biāo)數(shù):

  1. $ echo $(( RANDOM % 800 + 200 ))
  2. 673

你可能想知道為什么我在 Bash 語句中使用 RANDOM 而不是 $RANDOM。在算術(shù)擴(kuò)展中, Bash 會(huì)自動(dòng)擴(kuò)展雙括號(hào)內(nèi)的任何變量. 你不需要在 $RANDOM 變量上的 $ 來引用該變量的值, 因?yàn)?Bash 會(huì)幫你做這件事。

玩數(shù)字游戲

讓我們把所有這些放在一起,玩玩數(shù)字游戲。產(chǎn)生兩個(gè)隨機(jī)的“大”數(shù)字, 四個(gè)隨機(jī)的“小”數(shù)值,以及目標(biāo)值:

  1. $ seq 15 5 100 | shuf | head -2
  2. 75
  3. 100
  4. $ seq 1 10 | shuf | head -4
  5. 4
  6. 3
  7. 10
  8. 2
  9. $ echo $(( RANDOM % 800 + 200 ))
  10. 868

我的數(shù)字是 75、1004、3、10 和 2,而我的目標(biāo)數(shù)字是 868。

如果我用每個(gè)“小”和“大”數(shù)字做這些算術(shù)運(yùn)算,并不超過一次,我就能接近目標(biāo)數(shù)字了:

  1. 10×75 = 750
  2. 750+100 = 850
  3.  
  4. 然后:
  5.  
  6. 4×3 = 12
  7. 850+12 = 862
  8. 862+2 = 864

只相差 4 了,不錯(cuò)!但我發(fā)現(xiàn)這樣可以用每個(gè)隨機(jī)數(shù)不超過一次來計(jì)算出準(zhǔn)確的數(shù)字:

  1. 4×2 = 8
  2. 8×100 = 800
  3.  
  4. 然后:
  5.  
  6. 75-10+3 = 68
  7. 800+68 = 868

或者我可以做 這些 計(jì)算來準(zhǔn)確地得到目標(biāo)數(shù)字。這只用了六個(gè)隨機(jī)數(shù)中的五個(gè):

  1. 4×3 = 12
  2. 75+12 = 87
  3.  
  4. 然后:
  5.  
  6. 87×10 = 870
  7. 870-2 = 868

試一試 Countdown 數(shù)字游戲。 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2020-04-25 19:00:15

Linux終端命令

2021-08-23 15:14:09

Linuxat命令任務(wù)

2010-08-18 08:53:53

Scala

2013-12-23 11:01:14

命令Linux命令

2017-03-06 16:45:36

Linux命令動(dòng)畫演示

2018-06-12 15:10:11

Linuxvim命令PacVim

2015-05-25 10:40:22

Linux命令行技巧

2016-11-03 08:52:38

Linux開源系統(tǒng)

2023-03-13 08:47:06

CSS數(shù)學(xué)函數(shù)

2019-09-23 09:11:02

Python文本編輯器操作系統(tǒng)

2021-04-11 10:08:50

LinuxLinux命令ntpdate

2013-12-13 08:59:15

C++游戲

2021-04-13 10:25:57

Linux命令pstree

2022-04-20 10:43:24

Linux命令

2015-10-14 10:45:04

linux命令less

2009-07-25 17:24:45

2022-03-24 07:57:58

Python水果忍者游戲

2020-11-30 06:20:13

javascript

2021-05-28 09:51:32

開源技術(shù) 工具

2022-03-30 09:01:37

CSS屬性函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)