緯度経度の変換

import random

def raaa(input_str):
    assert len(input_str) == 13, "input_str must be 13 characters long"

    seed = 42
    random.seed(seed)

    result = []
    conversion_map = {}  # 変換マップを保存する辞書

    for i, char in enumerate(input_str):
        if i == 0:
            # 1桁目は0か1に変換
            choices = [0, 1]
            new_char = str(choices[int(char) % 2])  # 入力文字に対して適切な変換を選択
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 1:
            # 2桁目は0固定
            new_char = '0'
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 2:
            # 3桁目は0〜9の範囲で変換
            new_char = str(int(char) % 10)
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 3:
            # 4桁目は0か5に変換
            choices = [0, 5]
            new_char = str(choices[int(char) % 2])  # 入力文字に対して適切な変換を選択
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 4 or i == 8 or i == 11:
            # 5桁目、9桁目、12桁目は「.」固定
            new_char = '.'
            result.append(new_char)
        elif i == 5 or i == 9:
            # 6〜7桁目および10〜11桁目は00〜59の範囲で変換
            new_char = str(int(char) % 6)
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 6 or i == 10:
            new_char = str((int(char) * 3) % 10)  # 0〜9の範囲で変換
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 7 or i == 12:
            new_char = str((int(char) * 5) % 10)  # 0〜9の範囲で変換
            conversion_map[char] = new_char
            result.append(new_char)
        else:
            result.append(char)

    result_str = ''.join(result)

    return result_str, conversion_map

# テスト
output, conversion_map = raaa("0123.11.22.33")
print("Output:", output)  # 変換後の出力
print("Conversion Map:", conversion_map)  # 変換マップ

output, conversion_map = raaa("0123.11.22.44")
print("Output:", output)  # 変換後の出力
print("Conversion Map:", conversion_map)  # 変換マップ
import random

def raaa(input_str):
    # 入力値が13桁固定かをチェック
    assert len(input_str) == 13, "input_str must be 13 characters long"

    # seedを固定する
    seed = 42
    random.seed(seed)

    result = []

    # 各桁の変換ルールに従って変換を行う
    for i, char in enumerate(input_str):
        if i == 0:
            # 1桁目は0か1に変換
            result.append(str(random.choice([0, 1])))
        elif i == 1:
            # 2桁目は0固定
            result.append('0')
        elif i == 2:
            # 3〜4桁の2文字は00〜90
            result.append(str(random.randint(0, 9)))
        elif i == 3:
            result.append(str(random.choice([0, 5])))
        elif i == 4 or i == 8 or i == 11:
            # 5桁目、8桁目、11桁目は「.」固定
            result.append('.')
        elif i == 5 or i == 9:
            # 6〜7桁、9〜10桁は00〜59
            result.append(str(random.randint(0, 5)))
        elif i == 6 or i == 10:
            result.append(str(random.randint(0, 9)))
        elif i == 7 or i == 12:
            result.append(str(random.randint(0, 5)))
        elif i == 13:
            result.append(str(random.randint(0, 9)))
        else:
            # その他の位置にはそのまま配置
            result.append(char)

    return ''.join(result)

# テスト
print(raaa("1234.56.78.90"))  # 毎回同じ結果が得られる
import random

def raaa(input_str):
    # 入力値が13桁固定かをチェック
    assert len(input_str) == 13, "input_str must be 13 characters long"

    # seedを固定する
    seed = 42
    random.seed(seed)

    result = []
    conversion_map = {}  # 変換マップを保存する辞書

    # 各桁の変換ルールに従って変換を行う
    for i, char in enumerate(input_str):
        if i == 0:
            # 1桁目は0か1に変換
            new_char = str(random.choice([0, 1]))
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 1:
            # 2桁目は0固定
            new_char = '0'
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 2:
            # 3〜4桁の2文字は00〜90
            new_char = str(random.randint(0, 9))
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 3:
            new_char = str(random.choice([0, 5]))
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 4 or i == 8 or i == 11:
            # 5桁目、8桁目、11桁目は「.」固定
            new_char = '.'
            result.append(new_char)
        elif i == 5 or i == 9:
            # 6〜7桁、9〜10桁は00〜59
            new_char = str(random.randint(0, 5))
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 6 or i == 10:
            new_char = str(random.randint(0, 9))
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 7 or i == 12:
            new_char = str(random.randint(0, 5))
            conversion_map[char] = new_char
            result.append(new_char)
        elif i == 13:
            new_char = str(random.randint(0, 9))
            conversion_map[char] = new_char
            result.append(new_char)
        else:
            # その他の位置にはそのまま配置
            result.append(char)

    result_str = ''.join(result)

    return result_str, conversion_map

# テスト
output, conversion_map = raaa("1234.56.78.90")
print("Output:", output)  # 変換後の出力
print("Conversion Map:", conversion_map)  # 変換マップ

コメント

タイトルとURLをコピーしました