8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

学生LTAdvent Calendar 2018

Day 17

平成の次の元号を99.9999%当てる最も簡単な方法

Last updated at Posted at 2018-12-16

#"平成の次の元号は何?"

この記事はQiita史上、最もテキトーな自然言語処理です。

#条件

使用言語: C++11
文字コード: Shift-Jis

###Shift-Jisを選んだ理由

はっきり言って**"Shift-Jis"は好きじゃないです。
世界中の文字が使える
"UTF-8"**が好きです。

しかし、漢字のみを処理するなら
Shift-Jis2バイトのみで処理できるため
実装が凄まじく楽です。(UTF-8 は 3バイト必要)

なので、Shift-Jisを使います。

#C++11で実装

EraName.hpp
#pragma once
#include <cstdint>
#include <iostream>

namespace era {

	void eraName2(char* const, const bool);
	void eraName1(char* const str_, const bool on_ = true) {
		const std::size_t size = (on_) ? (std::size_t)0 : (std::size_t)2;
		for (std::int_fast32_t i{ 0x88 }; i < 0xa0; ++i) {
			str_[size] = (char)i;
			eraName2(str_, on_);
		}
	}

	void eraName2(char* const str_, const bool on_) {
		const std::size_t size = (on_) ? (std::size_t)1 : (std::size_t)3;
		for (std::int_fast32_t i{ 0x40 }; i < 0xfd; ++i) {
			str_[size] = (char)i;
			std::cout << str_;
			if (on_) eraName1(str_, false);
			else std::cout << ' ';
		}
	}

	void printEraName() {
		char str[5]{};
		eraName1(str);
	}
}
Source.cpp
#include "EraName.hpp"
int main() {
	era::printEraName();
	return 0;
}

#C99で実装(C言語)

EraName.h
#pragma once
#include <stdint.h>
#include <stdio.h>

void eraName2(char* const, const int);
void eraName1(char* const str_, const int on_) {
	const size_t size = (on_ == 1) ? (size_t)0 : (size_t)2;
	for (int_fast32_t i = 0x88; i < 0xa0; ++i) {
		str_[size] = (char)i;
		eraName2(str_, on_);
	}
}

void eraName2(char* const str_, const int on_) {
	const size_t size = (on_ == 1) ? (size_t)1 : (size_t)3;
	for (int_fast32_t i = 0x40; i < 0xfd; ++i) {
		str_[size] = (char)i;
		printf("%s", str_);
		if (on_) eraName1(str_, 0);
		else printf(" ");
	}
}

void printEraName(void) {
	char str[5] = {};
	eraName1(str, 1);
}
Source.c
#include "EraName.h"

int main(void) {
	printEraName();
	return 0;
}

#出力結果

とてつもなく長いので一部のみ貼り付けます。

蓮連 蓮錬 蓮呂 蓮魯 蓮櫓 蓮炉 蓮賂 蓮路 蓮露 蓮労 蓮婁 蓮廊 蓮弄 蓮朗 蓮楼 蓮榔 蓮浪 蓮漏 蓮牢 蓮狼 蓮篭 蓮老 蓮聾 蓮蝋 蓮郎 蓮六 蓮麓 蓮禄 蓮肋 蓮録 蓮論 蓮倭 蓮和 蓮話 蓮歪 蓮賄 蓮脇 蓮惑 蓮枠 蓮鷲 蓮亙 蓮亘 蓮鰐 蓮詫 蓮藁 蓮 蕨 蓮椀 蓮湾 蓮碗 蓮腕 蓮弌 蓮丐 蓮丕 蓮个 蓮丱 蓮丶 蓮丼 蓮丿 蓮乂 蓮乖 蓮乘 蓮亂 蓮亅 蓮豫 蓮亊 蓮舒 蓮弍 蓮于 蓮亞 蓮亟 蓮亠 蓮亢 蓮亰 蓮亳 蓮亶 蓮从 蓮仍 蓮仄 蓮仆 蓮仂 蓮仗 蓮仞 蓮仭 蓮仟 蓮价 蓮伉 蓮佚 蓮估 蓮佛 蓮佝 蓮佗 蓮佇 蓮佶 蓮侈 蓮侏 蓮侘 蓮佻 蓮佩 蓮佰 蓮侑 蓮佯 蓮來 蓮侖 蓮儘 蓮俔 蓮俟 蓮俎 蓮俘 蓮俛 蓮俑 蓮俚 蓮俐 蓮俤 蓮俥 蓮倚 蓮倨 蓮倔 蓮倪 蓮倥 蓮倅 蓮伜 蓮俶 蓮倡 蓮倩 蓮倬 蓮俾 蓮俯 蓮們 蓮倆 蓮偃 蓮假 蓮會 蓮偕 蓮偐 蓮偈 蓮做 蓮偖 蓮偬 蓮偸 蓮傀 蓮傚 蓮傅 蓮傴 蓮傲 連傲連蓮 連連 連錬 連呂 連魯 連櫓 連炉 連賂 連路 連露 連労 連婁 連廊 連弄 連朗 連楼 連榔 連浪 連漏 連牢 連狼 連篭 連老 連聾 連蝋 連郎 連六 連麓 連禄 連肋 連録 連論 連倭 連和 連話 連歪 連賄 連脇 連惑 連枠 連鷲 連亙 連亘 連鰐 連 詫 連藁 連蕨 連椀 連湾 連碗 連腕 連弌 連丐 連丕 連个 連丱 連丶 連丼 連丿 連乂 連乖 連乘 連亂 連亅 連豫 連亊 連舒 連弍 連于 連亞 連亟 連亠 連亢 連亰 連亳 連亶 連从 連仍 連仄 連仆 連仂 連仗 連仞 連仭 連仟 連价 連伉 連佚 連估 連佛 連佝 連佗 連佇 連佶 連侈 連侏 連侘 連佻 連佩 連佰 連侑 連佯 連來 連侖 連儘 連俔 連俟 連俎 連俘 連俛 連俑 連俚 連俐 連俤 連俥 連倚 連倨 連倔 連倪 連倥 連倅 連伜 連俶 連倡 連倩 連倬 連俾 連俯 連們 連倆 連偃 連假 連會 連偕 連偐 連偈 連做 連偖 連偬 連偸 連傀 連傚 連傅 連傴 連傲 錬傲錬蓮 錬連 錬錬 錬呂 錬魯 錬櫓 錬炉 錬賂 錬路 錬露 錬労 錬婁 錬廊 錬弄 錬朗 錬楼 錬榔 錬浪 錬漏 錬牢 錬狼 錬篭 錬老 錬聾 錬蝋 錬郎 錬六 錬麓 錬禄 錬肋 錬録 錬論 錬倭 錬和 錬話 錬歪 錬賄 錬脇 錬惑 錬枠 錬鷲 錬亙 錬 亘 錬鰐 錬詫 錬藁 錬蕨 錬椀 錬湾 錬碗 錬腕 錬弌 錬丐 錬丕 錬个 錬丱 錬丶 錬丼 錬丿 錬乂 錬乖 錬乘 錬亂 錬亅 錬豫 錬亊 錬舒 錬弍 錬于 錬亞 錬亟 錬亠 錬亢 錬亰 錬亳 錬亶 錬从 錬仍 錬仄 錬仆 錬仂 錬仗 錬仞 錬仭 錬仟 錬价 錬伉 錬佚 錬估 錬佛 錬佝 錬佗 錬佇 錬佶 錬侈 錬侏 錬侘 錬佻 錬佩 錬佰 錬侑 錬佯 錬來 錬侖 錬儘 錬俔 錬俟 錬俎 錬俘 錬俛 錬俑 錬俚 錬俐 錬俤 錬俥 錬倚 錬倨 錬倔 錬倪 錬倥 錬倅 錬伜 錬俶 錬倡 錬倩 錬倬 錬俾 錬俯 錬們 錬倆 錬偃 錬假 錬會 錬偕 錬偐 錬偈 錬做 錬偖 錬偬 錬偸 錬傀 錬傚 錬傅 錬傴 錬傲 呂傲呂蓮 呂連 呂錬 呂呂 呂魯 呂櫓 呂炉 呂賂 呂路 呂露 呂労 呂婁 呂廊 呂弄 呂朗 呂楼 呂榔 呂浪 呂漏 呂牢 呂狼 呂篭 呂老 呂聾 呂蝋 呂郎 呂六 呂麓 呂禄 呂肋 呂録 呂論 呂倭 呂和 呂話 呂歪 呂賄 呂脇 呂惑 呂枠 呂 鷲 呂亙 呂亘 呂鰐 呂詫 呂藁 呂蕨 呂椀 呂湾 呂碗 呂腕 呂弌 呂丐 呂丕 呂个 呂丱 呂丶 呂丼 呂丿 呂乂 呂乖 呂乘 呂亂 呂亅 呂豫 呂亊 呂舒 呂弍 呂于 呂亞 呂亟 呂亠 呂亢 呂亰 呂亳 呂亶 呂从 呂仍 呂仄 呂仆 呂仂 呂仗 呂仞 呂仭 呂仟 呂价 呂伉 呂佚 呂估 呂佛 呂佝 呂佗 呂佇 呂佶 呂侈 呂侏 呂侘 呂佻 呂佩 呂佰 呂侑 呂佯 呂來 呂侖 呂儘 呂俔 呂俟 呂俎 呂俘 呂俛 呂俑 呂俚 呂俐 呂俤 呂俥 呂倚 呂倨 呂倔 呂倪 呂倥 呂倅 呂伜 呂俶 呂倡 呂倩 呂倬 呂俾 呂俯 呂們 呂倆 呂偃 呂假 呂會 呂偕 呂偐 呂偈 呂做 呂偖 呂偬 呂偸 呂傀 呂傚 呂傅 呂傴 呂傲 魯傲魯蓮 魯連 魯錬 魯呂 魯魯 魯櫓 魯炉 魯賂 魯路 魯露 魯労 魯婁 魯廊 魯弄 魯朗 魯楼 魯榔 魯浪 魯漏 魯牢 魯狼 魯篭 魯老 魯聾 魯蝋 魯郎 魯六 魯麓 魯禄 魯肋 魯録

このように20579832通りの元号が出力されます。

これであなたも予言者です!

##ソースコードのライセンス

These codes are licensed under CC0.
CC0

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?