排名次的函數

在不同的程式語言中,排名次的功能可以通過多種方式實現。以下是一些常見的程式語言中排名次函式的基本實現方式:

  1. Python
def rank(values):
    # 使用字典來存儲每個值的排名
    rankings = {}
    for i, value in enumerate(values):
        rankings[value] = i + 1
    return rankings

# 示例使用
values = [2, 4, 5, 7, 9]
rankings = rank(values)
print(rankings)  # 輸出: {2: 1, 4: 2, 5: 3, 7: 4, 9: 5}
  1. JavaScript (ES6)
function rank(values) {
    // 使用Map來存儲每個值的排名
    const rankings = new Map();
    values.forEach((value, index) => {
        rankings.set(value, index + 1);
    });
    return rankings;
}

// 示例使用
const values = [2, 4, 5, 7, 9];
const rankings = rank(values);
console.log(rankings);  // 輸出: Map { 2: 1, 4: 2, 5: 3, 7: 4, 9: 5 }
  1. Java
public static Map<Integer, Integer> rank(int[] values) {
    Map<Integer, Integer> rankings = new HashMap<>();
    for (int i = 0; i < values.length; i++) {
        rankings.put(values[i], i + 1);
    }
    return rankings;
}

// 示例使用
int[] values = {2, 4, 5, 7, 9};
Map<Integer, Integer> rankings = rank(values);
System.out.println(rankings);  // 輸出: {2=1, 4=2, 5=3, 7=4, 9=5}
  1. C#
public static Dictionary<int, int> Rank(int[] values)
{
    Dictionary<int, int> rankings = new Dictionary<int, int>();
    for (int i = 0; i < values.Length; i++)
    {
        rankings[values[i]] = i + 1;
    }
    return rankings;
}

// 示例使用
int[] values = { 2, 4, 5, 7, 9 };
Dictionary<int, int> rankings = Rank(values);
Console.WriteLine(rankings);  // 輸出: {2: 1, 4: 2, 5: 3, 7: 4, 9: 5}

這些函式的基本思想是遍歷給定的值列表,並為每個值分配一個排名(即它在列表中的位置加上1)。然後,返回一個映射或字典,其中鍵是值,值是它們的排名。

請注意,這些函式假設值是唯一的。如果列表中存在重複的值,它們將只返回第一個出現的值的排名。如果你需要處理重複值,你可能需要提供一個額外的策略來確定排名。