鱗目界域-龍論壇

游態龍的錫安山。龍的力量、智慧、野性、與優雅

您尚未登录。 (登录 | 注册)

公告

mb 爪機版     |    論壇指南     |    Discord     |    QQ群

《龙魂志》第一期
《龙魂志》第二期

Tips:这是专为龙族建设的网站,历史的、现代的、心灵的、神话的、现实的。

#126 2025龍主題數學競賽計劃 » 2025-01-07 16:54:22

回应:

這次就是自己敲的暴力近似了

不知道有沒有程序模擬外的數學方法 [靈感]


有 1 位朋友喜欢这篇文章:羽落

#127 伊盧揚卡Illuyanka » 2025-01-07 15:04:51

回应:

[↑] @Raventhorn 寫道: “The context is a ritual of the Hattian spring festival of Puruli”也許指的是“碑的背景是一個赫梯人慶祝春天的Puruli節日的儀式”? …

不對,“一個赫梯人”怎麼看都很奇怪,還是把“一個”去掉比較好。

#128 伊盧揚卡Illuyanka » 2025-01-07 14:59:35

回应:

“The context is a ritual of the Hattian spring festival of Puruli”也許指的是“碑的背景是一個赫梯人慶祝春天的Puruli節日的儀式”?
“the Hittite-Greek parallels found few adherents at the time”我猜測意思上是“儘管赫梯與希臘神話之間具有一些相似點,但這些相似之處並未引起當時人們的廣泛注意或接受”。 [靈感]

#129 看了一篇小說有感而發︰假如變成了龍,你的人類家人會怎樣想呢? » 2025-01-07 14:32:05

回应:

既出乎意料又情理之中?
家人是模糊知道我對龍感興趣的,但是也只以爲是“感興趣”的層面。
如果按設定體型待是待不了的(10m級別),我家人估計也清楚。可能還會想留個途徑以後再見,但我大概不會同意,理由和龍游踏塵的類似,互不打擾是最好的選擇。

#130 2025龍主題數學競賽計劃 » 2025-01-07 13:14:00

回应:

看到又是概率題就知道完蛋了[被炸] 
換了好幾個ai,但是不同會話算出來的值差幾千,甚至有小於81的(倒是祕塔爆冷給了個625的期望值,很接近模擬),果然國內這方面還趕不上,最後得老老實實自己算。
一通數學+玄學計算配合模擬程序迭代10000次算出來的629期望值得出最終答案740,和前兩題比感覺底氣嚴重不足......[哭]
EDIT:更正爲1250。反正兩個答案過程都挺玄乎的
EDIT2:更改爲787……
這次就是自己敲的暴力近似了:


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define CYCLES 300000
#define LIMIT 785

void level_up(int* low_level_list, int* low_level_count, int* high_level_list, int* high_level_count) {
    if (*low_level_count == 3) {
        int a = rand() % 2;
        if (a) {
            high_level_list[*high_level_count] = 1;
            (*high_level_count)++;
            *low_level_count = 0;
        } else {
            *low_level_count -= 2;
        }
    }
}

int main() {
    srand(time(NULL)); // 初始化隨機數種子
    int sum_high = 0;

    for (int i = 0; i < CYCLES; i++) {
        int list_1[3] = {0};
        int list_2[3] = {0};
        int list_3[3] = {0};
        int list_4[3] = {0};
        int list_5[1] = {0};
        int count_1 = 0, count_2 = 0, count_3 = 0, count_4 = 0, count_5 = 0;
        int sum_low = 0;

        while (count_5 != 1) {
            list_1[count_1] = 1;
            count_1++;
            sum_low++;
            level_up(list_1, &count_1, list_2, &count_2);
            level_up(list_2, &count_2, list_3, &count_3);
            level_up(list_3, &count_3, list_4, &count_4);
            level_up(list_4, &count_4, list_5, &count_5);
        }

        if (sum_low < LIMIT) {
            sum_high++;
        }
    }

    printf("total sum=%.6f\n", (double)sum_high / CYCLES);
    return 0;
}

EDIT3:更換爲C語言增強性能並增加迭代數and修正原本代碼的bug。最小值應該是784。

最后修改: 羽落 (2025-01-12 22:27:05)

#131 2025龍主題數學競賽計劃 » 2025-01-07 10:59:44

回应:

[↑] @Anbach 寫道: 利用了一點小技巧解決問題3  通過求解單位“幼龍”對最終“太古龍”合成期望的貢獻,最後能輕易求出答案。  仍然是chatGPT編寫的代碼,使用了更精確的數據類型以避免較大誤差:     輸出的結果爲: …

代碼還是錯的,chatGPT默認只考慮了第一步合成需要計算期望值,不檢查都沒注意到。

應該是這樣:


from decimal import Decimal, getcontext

# 设置高精度

getcontext().prec = 50

def calculate_min_level1_items(target_expectation=Decimal('0.75')):

    # 定义每级物品所需等级1物品数量(用高精度Decimal表示)

    level2_cost = Decimal('5')  # 合成1个等级2需要的等级1数量

    level3_cost = level2_cost * Decimal('5')  # 合成1个等级3

    level4_cost = level3_cost * Decimal('5')  # 合成1个等级4

    level5_cost = level4_cost * Decimal('5')  # 合成1个等级5

    # 计算各等级单位等级1物品的贡献

    unit_contribution_level2 = Decimal('1') / level2_cost

    unit_contribution_level3 = Decimal('1') / level3_cost

    unit_contribution_level4 = Decimal('1') / level4_cost

    unit_contribution_level5 = Decimal('1') / level5_cost

    # 计算单位等级1物品对等级5的期望贡献

    total_unit_contribution = unit_contribution_level5

    # 计算所需等级1物品数量

    min_level1_items = target_expectation / total_unit_contribution

    # 返回向上取整的结果(因为物品数量必须为整数)

    return min_level1_items.to_integral_exact(rounding='ROUND_CEILING')

# 调用函数

result = calculate_min_level1_items()

print(f"获得0.75个等级五物品至少需要的等级一物品数量: {result}")

結果是:


获得0.75个等级五物品至少需要的等级一物品数量: 469

(不能編輯帖子真的好麻煩)💦

#132 2025龍主題數學競賽計劃 » 2025-01-07 10:50:34

回应:

[↑] @Anbach 寫道: 利用了一點小技巧解決問題3  通過求解單位“幼龍”對最終“太古龍”合成期望的貢獻,最後能輕易求出答案。  仍然是chatGPT編寫的代碼,使用了更精確的數據類型以避免較大誤差:     輸出的結果爲: …

我才發現chatGPT怎麼連(2×0.5+3×0.5)×2都能算錯算得4.5,正確結果應該是5。

修正之後的最終結果是


获得0.75个等级五物品至少需要的等级一物品数量: 102

#133 2025龍主題數學競賽計劃 » 2025-01-07 06:43:55

回应:

我這次的chatGPT說:

「期望消耗」是625隻

要達到至少 75% 以上的成功率,需要 700 多隻,它選擇729 這個漂亮的整數

#134 2025龍主題數學競賽計劃 » 2025-01-07 00:08:23

回应:

利用了一點小技巧解決問題3

通過求解單位“幼龍”對最終“太古龍”合成期望的貢獻,最後能輕易求出答案。

仍然是chatGPT編寫的代碼,使用了更精確的數據類型以避免較大誤差:


from decimal import Decimal, getcontext

# 设置高精度
getcontext().prec = 50

def calculate_min_level1_items(target_expectation=Decimal('0.75')):
    # 定义每级物品所需等级1物品数量(用高精度Decimal表示)
    level2_cost = Decimal('4.5')  # 合成1个等级2需要的等级1数量
    level3_cost = level2_cost * Decimal('3')  # 合成1个等级3
    level4_cost = level3_cost * Decimal('3')  # 合成1个等级4
    level5_cost = level4_cost * Decimal('3')  # 合成1个等级5

    # 计算各等级单位等级1物品的贡献
    unit_contribution_level2 = Decimal('1') / level2_cost
    unit_contribution_level3 = Decimal('1') / level3_cost
    unit_contribution_level4 = Decimal('1') / level4_cost
    unit_contribution_level5 = Decimal('1') / level5_cost

    # 计算单位等级1物品对等级5的期望贡献
    total_unit_contribution = unit_contribution_level5

    # 计算所需等级1物品数量
    min_level1_items = target_expectation / total_unit_contribution

    # 返回向上取整的结果(因为物品数量必须为整数)
    return min_level1_items.to_integral_exact(rounding='ROUND_CEILING')

# 调用函数
result = calculate_min_level1_items()
print(f"获得0.75个等级五物品至少需要的等级一物品数量: {result}")

輸出的結果爲:


获得0.75个等级五物品至少需要的等级一物品数量: 92

即需要92只幼龍。

#135 2025龍主題數學競賽計劃 » 2025-01-06 22:12:07

回应:

沒想到第2題這麼快就被攻克了

下面是壓軸的第3題: 

在一個DnD主題的養成類遊戲中,玩家可以嘗試用3只幼龍合成1只青年龍,用3只青年龍合成1只成年龍,用3只成年龍合成1只古龍,用3只古龍合成1只太古龍。每次合成有50%的概率成功,若成功則玩家失去3只低等級龍而獲得1只更高等級的龍,若失敗則玩家無法獲得更高等級的龍但返還1只參與合成的龍。如果要使獲得太古龍的概率大於等於75%,玩家需要擁有多少隻幼龍?

#136 嗯哼,這裏是夏恩的畫www~ » 2025-01-06 21:41:31

回应:

新年快樂~來自一隻認識的腦洞ww


有 5 位朋友喜欢这篇文章:Raventhorn, Anbach, 龙游踏尘, Clearwind_清风, 箐岚

#137 2025龍主題數學競賽計劃 » 2025-01-06 18:29:40

回应:

直接用chatGPT,可能計算的精度不夠    [流汗] 

理論實數解一樣是 32.8

但是到整數時,卻認為攻擊力增加35是最高    [疑問] 

#138 2025龍主題數學競賽計劃 » 2025-01-06 17:11:31

回应:

第二個像是我學編程時,書上的作業題。

還是扔給chatGPT寫代碼。


# 动态调整方案代码(将单位从ms转换为s)
# 初始参数
attack = 100  # 初始攻击力
interval = 1.0  # 初始攻击间隔(s)
points = 100  # 升级点数
attack_increase = 1.5  # 每次提升攻击力
interval_multiplier = 0.99  # 每次攻击间隔缩短的比例

# 记录最终分配
attack_upgrades = 0
interval_upgrades = 0

# 动态分配点数
for _ in range(points):
    # 计算两种升级后的DPS
    dps_increase_attack = (attack + attack_increase) / interval
    dps_increase_interval = attack / (interval * interval_multiplier)
    
    # 比较收益,选择收益更高的升级
    if dps_increase_attack > dps_increase_interval:
        attack += attack_increase
        attack_upgrades += 1
    else:
        interval *= interval_multiplier
        interval_upgrades += 1

# 最终DPS
final_dps = attack / interval

# 输出结果
print(f"动态调整:攻击力升级 {attack_upgrades} 次,攻击间隔升级 {interval_upgrades} 次")
print(f"最大DPS为 {final_dps:.2f}")

結果是:


动态调整:攻击力升级 33 次,攻击间隔升级 67 次
最大DPS为 293.15

#139 大家有沒有想忘記的祕密? » 2025-01-06 14:08:28

回应:

有不少,每次想起來的時候都會楞上一下,所以有過好幾次聊天到一半突然卡殼的經歷。不過說來也奇怪,只有這些記憶自發地冒出來的時候我會感到五味雜陳,主動去想它們反倒不會有太大情緒上的波動。

當然也有一些自己不想知道,但說出去沒有關係的祕密,比如我在和不認識的人或者龍打招呼的時候,會習慣性的猜測對方可能更能接受的語言模式,然後再在進一步聊天的時候慢慢調整,以期在一開始給對方一個好印象。但這麼做難免會猜錯不少,以至於有好幾次被吐槽“就像聊着聊着就像換了個語言模塊一樣”,但因爲從來沒機會在一開始就這個習慣和對方打好招呼,也就成了“早了說不出去,晚了沒必要說”的祕密。每次出現這種情況我都挺爲難的,所以確實不是很願意想起來。 [裹毯]

#140 2025龍主題數學競賽計劃 » 2025-01-06 12:56:33

回应:

2.

感覺就是計算量略大,還是直接丟個ai跑代碼輕鬆。肯定不是因爲我並沒有學過python


def calculate_dps(attr_points_attack, attr_points_interval):
    # 初始攻擊力
    attack_power = 100
    # 初始攻擊間隔(毫秒)
    attack_interval = 1000
    # 總屬性點
    total_attr_points = 100
    # 消耗屬性點增加攻擊力
    attack_power += attr_points_attack * 1.5
    # 消耗屬性點縮短攻擊間隔
    attack_interval *= (0.99 ** attr_points_interval)
    # 每秒攻擊次數
    attacks_per_second = 1000 / attack_interval
    # 每秒傷害
    dps = attack_power * attacks_per_second
    return dps


def main():
    max_dps = 0
    best_attr_points_attack = 0
    best_attr_points_interval = 0
    # 窮舉所有可能的屬性點分配方式
    for i in range(101):
        for j in range(101 - i):
            k = 100 - i - j
            dps = calculate_dps(i, j)
            if dps > max_dps:
                max_dps = dps
                best_attr_points_attack = i
                best_attr_points_interval = j
    print(f"最大每秒傷害爲: {max_dps}")
    print(f"最佳的屬性點分配方案是將 {best_attr_points_attack} 點分配給攻擊力,{best_attr_points_interval} 點分配給攻擊間隔。")


if __name__ == "__main__":
    main()

最后修改: 羽落 (2025-01-06 13:12:08)

#141 龍身的最後十日 » 2025-01-06 10:27:50

回应:

這片土地已無法孕育出“我”,我憧憬龍族至寶中簡單而又矛盾的眷族關係,而這在當下無論簽訂契約與否,都是很難復刻的,如果可以選擇的話,我可能不會與之交易吧。
          若是沒得選 ,我就儘可能的去尋找龍友,與之接觸,儘管痕跡會消失,但只要留下朦朧的“感覺”,對我而言就足夠了。
          平靜死去 期待來生

#142 2025龍主題數學競賽計劃 » 2025-01-06 07:14:04

回应:

[↑] @龍爪翻書 寫道:    需要達到:虯龍,發帖數100    [靈感]  

其實50就夠了。
<-- posts<100
---------------
奇怪,我算的結果是

最大值出現在 n = 17,值爲 0.075524169

也就是1016歲,並且概率差的很遠,計算總和爲 1.15395,但是我找不出來是哪出了問題。
找到原因了,累乘求積那裏應該是n-1,原本寫的是n-2。現在結果沒問題了:

所有概率相加驗證通過,總和爲1。
最大值出現在 n = 16,值爲 0.06670382814313602

最后修改: 羽落 (2025-01-06 10:29:34)

#143 2025龍主題數學競賽計劃 » 2025-01-06 06:28:03

回应:

[↑] @Anbach 寫道:   不,是我看錯了,不好意思(話說我爲什麼不能編輯帖子) …

需要達到:虯龍,發帖數100    [靈感] 
https://yinglong.org/forum/viewtopic.php?id=234

------------

分享chatGPT的網址
https://chatgpt.com/share/677b05f4-3864-8004-a5bf-b273da0bfe0f

#144 2025龍主題數學競賽計劃 » 2025-01-06 04:50:24

回应:

看來樓裏的三位龍友達成共識了 [靈感] 

接下來是第2題: 

你在遊戲中操控某個龍角色,龍的初始攻擊力爲100,初始攻擊間隔爲1000毫秒,每次攻擊時有多少攻擊力就造成多少傷害,該龍同時附帶100屬性點。你可以選擇消耗1屬性點使龍增加1.5攻擊力或縮短攻擊間隔至原先的99%。怎樣分配屬性點才能最大化龍造成的平均每秒傷害?

#145 2025龍主題數學競賽計劃 » 2025-01-06 01:52:16

回应:

把坑全部踩了一遍,最後我的結果也是1015,概率爲0.066704

#146 2025龍主題數學競賽計劃 » 2025-01-06 01:20:54

回应:

[↑] @Anbach 寫道:    這位龍友需要複習一下條件概率的內容哦,不是這麼算的。 [owo] …

不,是我看錯了,不好意思(話說我爲什麼不能編輯帖子)

#147 2025龍主題數學競賽計劃 » 2025-01-06 01:12:24

回应:

[↑] @羽落 寫道:    [疑問]    …

這位龍友需要複習一下條件概率的內容哦,不是這麼算的。 [owo]

#148 龍身的最後十日 » 2025-01-06 00:44:25

回应:

反過來想,即便“懲罰”真的存在,它在干涉現世的同時也需要遵從現世的規則,此外它也不會是全知全能的,因爲完美也就意味着無限,一個無限的事物僅僅存在都會對有限的現世造成毀滅性的破壞。退一步講,這種程度的力量僅僅用來改換一個靈魂的物質寄託怎麼看都是不划算的事,如果是因爲對它有威脅才被鎮壓,那它潛在或現有的對手大概率就不止一兩個,不然也沒必要費力維繫“懲罰”,無論怎樣都有一線生機。

扯遠了扯遠了,我大概會嘗試飛到西藏的山上,聽說在那裏天氣好能看到像光帶一樣的銀河,我很少見過超過十顆星星同時出現在天上,也許親眼看到會很震撼。不過比起這個,怎麼在十天內飛到西藏也是個問題,坐汽車肯定會因爲超載被攔下來(比起這個怎麼坐上去纔是問題吧!),蹭火車順風車也很難十天到,飛機更是搭上去都困難重重,再加上還有很多其他想做的事,十天確實還是太短了一些。

#149 2025龍主題數學競賽計劃 » 2025-01-05 23:48:11

回应:

[↑] @Anbach 寫道:    我犯了一個錯,把題目裏的“‰”看成“%”了。 更正這個錯誤後,最終結果是:  第1031年概率最高,概率爲0.0193839289。  我的思路應該沒有錯誤,由於死亡的事件發生只分布在第1000 …

 [疑問] 

[↑]

之後每年的死亡概率爲前一年死亡概率+n‰,n爲龍的當前年齡減1000。

那麼1000歲死亡概率0.001
1001歲爲0.001+(1001-1000)‰=0.002
1002歲0.002+(1002-1000)‰=0.004
1003歲0.004+(1003-1000)‰=0.007
可以看出即使是單純的死亡概率也不是線性增加。

#150 2025龍主題數學競賽計劃 » 2025-01-05 23:31:39

回应:

[↑] @羽落 寫道:   1000歲應該是0.001吧?   另外題目中   那麼1000歲死亡概率0.001 1001歲爲0.001+(1001-1000)‰=0.002 1002歲0.002+(1002-1000)‰= …

我犯了一個錯,把題目裏的“‰”看成“%”了。
更正這個錯誤後,最終結果是:

第1031年概率最高,概率爲0.0193839289。

我的思路應該沒有錯誤,由於死亡的事件發生只分布在第1000年至第1999年。
每一年對應的概率計算如下:

第1000次的概率是0.001
第1001次是0.999×0.002
第1002次是0.999×0.998×0.003
第1003次是0.999×0.998×0.997×0.004
......

我學這些已經是很久前了,我不記得這叫什麼分佈了。

總之概率將從第1000年開始逐漸增大,到達峯值後開始逐漸減小。

由於事件必定發生在區間第1000年至第1999年(第1999死亡概率爲1),對此區間上的每一年的概率求和,結果將爲1,可以以此驗證步驟正確性。我已驗證過結果正確性。

具體代碼如下:


# 定义发生概率的函数
def occurrence_probability(k):
    if k < 1000:
        return 0  # 前999次发生概率为0
    prob = 1.0
    for i in range(1000, k):  # 计算前 k-1 次未发生的概率
        prob *= (1 - (i - 999) / 1000)
        if prob < 1e-10:  # 避免过小的概率
            break
    prob *= (k - 999) / 1000  # 第 k 次发生的概率
    return prob

# 计算从第1000次到第1999次首次发生的概率
k_range = range(1000, 2000)
probabilities_range = [occurrence_probability(k) for k in k_range]

# 输出概率列表
for k, prob in zip(k_range, probabilities_range):
    print(f"第 {k} 次的概率: {prob:.10f}")

# 求和验证
total_prob = sum(probabilities_range)
print(f"从第1000次到第1999次的概率总和: {total_prob:.10f}")

论坛页尾

Powered by jQuery blueimp FluxBB