実装例とは? わかりやすく解説

実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/08 15:43 UTC 版)

自動プログラミング」の記事における「実装例」の解説

NConstruct - .NET Framework 環境での開発ツールC# ソースコード生成するMyGeneration - .NET Framework 向けソースコード生成器。ORMアーキテクチャ向けのコード生成するデータベースメタデータを MyMeta API使ってテンプレート化する

※この「実装例」の解説は、「自動プログラミング」の解説の一部です。
「実装例」を含む「自動プログラミング」の記事については、「自動プログラミング」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/03/01 15:14 UTC 版)

リッシュのアルゴリズム」の記事における「実装例」の解説

リッシュのアルゴリズムプログラミング言語によりコンピュータ実行できる形に書き下すことは困難であり、ヒューリスティクス利用含めた多数改変を施す必要がある実際2008年5月現在ではこれを完全に実装したソフトウェア未だ存在しない。ただし、いくつかの計算機代数システムはこれを部分的に実装している。 以下に、(2008年5月現在で)既存いかなるソフトウェア不定積分計算できないような例を示す: f ( x ) = ( x + 1 ) 2 + ( 3 x + 1 ) x + lnx x x + ln ⁡ x ( x + x + ln ⁡ x ) . {\displaystyle f(x)={\frac {(x+1)^{2}+(3x+1){\sqrt {x+\ln x}}}{x\,{\sqrt {x+\ln x}}(x+{\sqrt {x+\ln x}})}}.} しかしこの式には短い不定積分存在するF ( x ) = 2 ( x + ln ⁡ x + ln ⁡ ( x + x + ln ⁡ x ) ) + C . {\displaystyle F(x)=2({\sqrt {x+\ln x}}+\ln(x+{\sqrt {x+\ln x}}))+C.} なお「リッシュのアルゴリズム」は厳密な意味での「アルゴリズム」ではない。これはリッシュのアルゴリズムの中では(通常の数学場合同様に与えられ数式であるかを必ず判定できる仮定しているが,実際に一般数式に対してそのような判定」処理を行うアルゴリズム構成できないためである。数式範囲通常の初等関数」(多項式有理関数代数関数三角関数指数関数対数関数組合わせ)に限定しても、数式判定(あるいは等式判定)を行えアルゴリズム知られていない(これが計算機代数システム実装においてヒューリスティクスにも依存せざるを得ない理由である)。さらに初等関数絶対値関数 |x| を追加すると、その範囲数式判定を行うアルゴリズム存在しないことが既に示されている(これはリッシュのアルゴリズム限らず初等関数を含む数式処理するアルゴリズム構築全般に関わる根本的な困難である)。 「リチャードソン定理英語版)」を参照

※この「実装例」の解説は、「リッシュのアルゴリズム」の解説の一部です。
「実装例」を含む「リッシュのアルゴリズム」の記事については、「リッシュのアルゴリズム」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/12/01 22:33 UTC 版)

カーネル密度推定」の記事における「実装例」の解説

MATLAB - カーネル密度推定は ksdensity 関数実装されている。 Origin - 2Dカーネル密度プロットユーザーインターフェースより作画できるほか、Ksdensity(1D用)とKs2density(2D用)の両関数がLabTalk言語PythonC言語からアクセス可能である。 PAST - Plot項目の中のHistogramで,カーネル曲線描ける。 R言語 - density 関数実装されている。 Stata - kdensity で実装されている。例えば、histogram x, kdensity SAS - proc kde は1変量または2変量カーネル密度推定使われる

※この「実装例」の解説は、「カーネル密度推定」の解説の一部です。
「実装例」を含む「カーネル密度推定」の記事については、「カーネル密度推定」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/14 02:01 UTC 版)

memset」の記事における「実装例」の解説

memset自前定義した場合は、以下の様に実装する。 /* memset区別するため、大文字使用 */void *MemSet(void *buf, int c, size_t num) { unsigned char *ptr = (unsigned char *)buf; const unsigned char ch = c; while (num--) *ptr++ = ch; return buf;}

※この「実装例」の解説は、「memset」の解説の一部です。
「実装例」を含む「memset」の記事については、「memset」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/07 07:00 UTC 版)

ブリッジ接続」の記事における「実装例」の解説

ブリッジ接続は、以下のようなシステムソフトウェア実装されており、利用可能である。 Windows XP以降のWindows OSによってLANカードとして認識されるデバイスであれば、2個以上を選択することによって、ブリッジ接続を行うことができる。GUI設定するLinux brctlコマンドによって設定することができる。CUI設定するCisco IOS インターフェイス間のブリッジ接続サポートされており、スパニングツリープロトコルなどのインテリジェントな処理も可能である。CUI設定するPacketiX VPN 仮想ハブ物理的なLANカードとの間でブリッジ接続設定できるOSの持つブリッジ接続機能利用せずブリッジ接続実現できるリモートアクセス型や拠点接続型のレイヤ2VPN構築する際に利用するVMware 仮想ハブ物理的なLANカードとの間でブリッジ接続設定できるOSの持つブリッジ接続機能利用せずブリッジ接続実現できるVM内のゲストOS既存物理的なネットワーク参加させ通信可能とするために利用できる

※この「実装例」の解説は、「ブリッジ接続」の解説の一部です。
「実装例」を含む「ブリッジ接続」の記事については、「ブリッジ接続」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/12 03:39 UTC 版)

Bitapアルゴリズム」の記事における「実装例」の解説

Shift-andアルゴリズムRuby実装した例と実行結果を以下に示す。このコードでは state が#アルゴリズムの表でのRに相当するまた、変数 pattern が表のパターンPに、変数 text が表のTに相当する黄色背景色ハイライトした部分アルゴリズムの表で示したマッチング処理である。 #すべてのマッチし位置末尾配列として戻るdef shift_and(text, pattern) # 必要なビットマスクの数を調べる char_table = Array.new # 検索対象文字列含まれる文字の種類格納 text.chars do |tc| if not char_table.include?(tc) then char_table.push(tc) end end #「適合」したとみなす状態を定義 finish = 1 << pattern.size-1 # ビットマスクmaskに必要な領域を確保 mask=Hash.new char_table.each do |ct| mask[ct] = 0 end # maskの内容を生成 pattern.chars do |pc| mask.each_key do |mk| mask[mk]>>= 1 if pc == mk mask[mk] |= finish end end end # 実際にtext照合させる state = 0 # 状態遷移保持 ret = Array.new # マッチし位置をまとめるための配列 text.chars.each_with_index do |tc, i| state = (state << 1 | 1) & mask[tc] if (state & finish) == finish # 最上位ビットが1である ret.push(i) # マッチした位置iを配列に追加 end end return retendp shift_and("acbacbaca", "acbaca") # => [8]p shift_and("ababaa", "aba") # => [2, 4] 実行結果マッチし位置。0オリジンなので、アルゴリズムセクションで言う9文字目は "8" で表される。) [8][2, 4]

※この「実装例」の解説は、「Bitapアルゴリズム」の解説の一部です。
「実装例」を含む「Bitapアルゴリズム」の記事については、「Bitapアルゴリズム」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/03/28 07:30 UTC 版)

UDPヘルパーアドレス」の記事における「実装例」の解説

シスコ製品では、この機能はルーティングソフトウエア Version.10から実装された。 この機能利用するためのコマンドip helper-address と ip forward-protocol になる。 Syntax Description: ip helper-address [vrf name | global] address [redundancy vrg-name]no ip helper-address [vrf name | global] address [redundancy vrg-name] vrf name (Optional) Enables VPN routing and forwarding (VRF) instance and VRF name. global (Optional) Configures a global routing table. address Destination broadcast or host address to be used when forwarding UDP broadcasts. There can be more than one helper address per interface. redundancy vrg-name (Optional) Defines the VRG group name.

※この「実装例」の解説は、「UDPヘルパーアドレス」の解説の一部です。
「実装例」を含む「UDPヘルパーアドレス」の記事については、「UDPヘルパーアドレス」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:40 UTC 版)

strcpy」の記事における「実装例」の解説

strcpy自前定義する場合は、以下の様にする。 char *StrCpy(char *s1, const char *s2) /* strcpy区別するため、大文字 */{ char *p = s1; while(*s1++ = *s2++); /* 代入結果終端文字(0x00)になるまで代入続ける */ return p;}

※この「実装例」の解説は、「strcpy」の解説の一部です。
「実装例」を含む「strcpy」の記事については、「strcpy」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:40 UTC 版)

Xorshift」の記事における「実装例」の解説

XorshiftアルゴリズムのCによる実装例: uint32_t xor(void) { static uint32_t y = 2463534242; y = y ^ (y << 13); y=y ^ (y>> 17); return y = y ^ (y << 5);}uint32_t xor64(void) { static uint64_t x = 88172645463325252ULL; x = x ^ (x << 13); x=x ^ (x>> 7); return x = x ^ (x << 17);}uint32_t xor96(void) { static uint32_t x = 123456789; static uint32_t y = 362436069; static uint32_t z = 521288629; uint32_t t; t = (x ^ (x << 3)) ^ (y ^ (y>> 19)) ^ (z ^ (z << 6)); x = y; y = z; return z = t;}uint32_t xor128(void) { static uint32_t x = 123456789; static uint32_t y = 362436069; static uint32_t z = 521288629; static uint32_t w = 88675123; uint32_t t; t = x ^ (x << 11); x=y; y=z; z=w; return w=(w ^ (w>> 19)) ^ (t ^ (t >> 8)); } このアルゴリズム周期それぞれ 2 321 , 2 641 , 2 961 , 2 128 − 1 {\displaystyle 2^{32}-1,2^{64}-1,2^{96}-1,2^{128}-1} で、Diehardテスト英語版)をパスしている。 64ビット整数効率よく扱える計算機では、xor,shift操作の組を3つから2つにして計算負荷減らしても、周期2 64 − 1 {\displaystyle 2^{64}-1} に保たれる。 uint64_t xor64(void) { static uint64_t x = 88172645463325252ULL; x = x ^ (x << 7); return x=x ^ (x>> 9);}

※この「実装例」の解説は、「Xorshift」の解説の一部です。
「実装例」を含む「Xorshift」の記事については、「Xorshift」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:40 UTC 版)

strlen」の記事における「実装例」の解説

size_t StrLen(const char *str){ size_t i = 0; /* iはカウント用の変数 */ while (*str++) i++; /* 1文字ずつ読み出しNULLコードでないことを確認しながらカウントする。 */ return i;}

※この「実装例」の解説は、「strlen」の解説の一部です。
「実装例」を含む「strlen」の記事については、「strlen」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/03 01:17 UTC 版)

フェニック木」の記事における「実装例」の解説

C言語による単純な実装紹介する単なる数列比べ前処理20%ほど長くなる。しかし、この実装のように非常に大きな数列用い場合にはその後操作要素更新部分和計算)が約1600倍の速度で可能となる。下の実装では他の手法との比較を含む。 /*******************************************************************//* This program demonstrates the speedup for a Fenwick tree vs a *//* flat array for performing multiple prefix sums. It generates a *//* sequence of random numbers, then performs 1000 summations, *//* each of which starts and ends at random indices. *//*******************************************************************/#include #include #include #include // Number of elements in the array#define N (4*1024*1024)// Elements in the array#define COUNTS 1024// Size of values storedtypedef unsigned long sum_t;// Should be able to hold N * (COUNTS - 1)// Number of queries to perform#define NQUERIES 1000// Isolate the least significant 1 bit. E.g. LSB(0x1234) == 4.#define LSB(i) ((i) & -(i))// Fen_sum: return the sum of the first i elements, 0 through i-1.sum_t Fen_sum(sum_t const *a, unsigned int i) {sum_t sum = 0;while (i) {sum += a[i-1];i -= LSB(i);}return sum;}// Fen_add: add k to element i (and thus Fen_sum(a, j) for all j > i)void Fen_add(sum_t *a, unsigned int size, sum_t delta, unsigned int i) {while (i < size) {a[i] += delta;i += LSB(i+1);}}// Fen_range: Returns the sum of the elements [i..j-1]// This could be written as "Fen_sum(a, j) - Fen_sum(a, i)",// but it is possible to do it in less time (particularly for// small ranges) by avoiding the terms that the two sums have// in common.sum_t Fen_range(sum_t const *a, unsigned int i, unsigned int j){sum_t sum=0;while (j> i) {sum += a[j-1];j -= LSB(j);}while (i > j) {sum -= a[i-1];i -= LSB(i);}return sum;}// Fen_get: Returns the value of the element at index i// (The time is proportional to the number of trailing 1 bits// in i. So even numbers are fast, and i = 0xffff takes 16 steps.)sum_t Fen_get(sum_t const *a, unsigned int i){return Fen_range(a, i, i+1);}// Fen_set: sets the value of the element at index ivoid Fen_set(sum_t *a, unsigned int size, sum_t value, unsigned int i){Fen_add(a, size, value - Fen_get(a, i), i);}// It's possible to initialize a Fenwick tree using Fen_add or// Fen_set (you can even do the latter in-place if you go backward// through the array), but for bulk initialization, this is faster.void Fen_init(sum_t *a, unsigned int size){for (unsigned int i = 0; i < size; i++) {unsigned int j = i + LSB(i+1);if (j < size)a[j] += a[i];}}// main: allocates an array of numbers and fills it with a sequence of// random numbers, then performs a series of summations (queries). It// then repeats the process using a Fenwick tree rather than a flat// array. The sequence of random numbers and the bounds of each query// are identical for the flat array and the Fenwick tree. The time// required to populate the data structure and the total time required// for all queries is calculated and reported for the flat array and// for the Fenwick tree.int main(void){sum_t *a;unsigned int queries[NQUERIES*2];clock_t time1, time2, time3;time_t seed = time(NULL);// generate the bounds for all of the queriessrandom(seed + 1);for (unsigned int i = 0; i < NQUERIES * 2; i += 2) {unsigned int q=random() % N, r=random() % N;bool reverse=q> r;queries[i + reverse] = q;queries[i + !reverse] = r;}// allocate the array of sumsa = malloc(N * sizeof *a);// The following loop forces all pages into memory (otherwise the// timing of the algorithm could include a lot of page faults)for (unsigned int i = 0; i < N; i++)a[i] = 0;/*****************************************************************//* FLAT ARRAY METHOD *//*****************************************************************/time1 = clock();// Store random numbers in a flat arraysrandom(seed);for (unsigned int i = 0; i < N; i++)a[i] = random() % COUNTS;time2 = clock();// time2 - time1 = time for setup// perform the queriesfor (unsigned int j = 0; j < NQUERIES * 2; j += 2) {sum_t asum = 0;for (unsigned int i = queries[j]; i < queries[j+1]; i++)asum += a[i];printf(" %lu", asum);}time3 = clock();// time3 - time2 = time for queriesprintf("\nFlat Array:\n Build: %f\n Query: %f\n",(time2-time1)*(1.0/CLOCKS_PER_SEC),(time3-time2)*(1.0/CLOCKS_PER_SEC));/*****************************************************************//* FENWICK TREE METHOD *//*****************************************************************/time1 = clock();// Store the same random numbers in a Fenwick treesrandom(seed);for (unsigned int i = 0; i < N; i++)a[i] = random() % COUNTS;Fen_init(a, N);time2 = clock();// time2 - time1 = time for setup// perform the queriesfor (unsigned int j = 0; j < NQUERIES * 2; j += 2)printf(" %lu", Fen_range(a, queries[j], queries[j+1]));time3 = clock();// time3 - time2 = time for queriesprintf("\nFenwick:\n Build: %f\n Query: %f\n",(time2-time1)*(1.0/CLOCKS_PER_SEC),(time3-time2)*(1.0/CLOCKS_PER_SEC));free(a);return 0;}

※この「実装例」の解説は、「フェニック木」の解説の一部です。
「実装例」を含む「フェニック木」の記事については、「フェニック木」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2016/06/26 12:53 UTC 版)

シェーカーソート」の記事における「実装例」の解説

C++言語による実装例を示す。 #include // std::swaptemplate void shaker_sort(T data[], int num_elements){ int top_index = 0; int bot_index = num_elements - 1; while (true) { int last_swap_index; /* 順方向のスキャン */ last_swap_index = top_index; for (int i = top_index; i < bot_index; i++) { if (data[i]> data[i+1]) { std::swap(data[i], data[i+1]); last_swap_index=i; } } bot_index=last_swap_index; /* 後方のスキャン範囲を狭める */ if (top_index == bot_index) break; /* 逆方向のスキャン */ last_swap_index=bot_index; for (int i=bot_index; i > top_index; i--) { if (data[i] < data[i-1]) { std::swap(data[i], data[i-1]); last_swap_index = i; } } top_index = last_swap_index; /* 前方のスキャン範囲を狭める */ if (top_index == bot_index) break; }}

※この「実装例」の解説は、「シェーカーソート」の解説の一部です。
「実装例」を含む「シェーカーソート」の記事については、「シェーカーソート」の概要参照ください


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/04 01:40 UTC 版)

MC68881」の記事における「実装例」の解説

68881ないし68882FPUが搭載されコンピュータとしては、サン・マイクロシステムズSun-3Apple ComputerMacintosh IIや、コモドールAmiga 3000などがある。Amigaサードパーティー中には68000メモリマップされた周辺機器として、68881および68882を使ったものもある。 なお後ファミリMC68040プロセッサは、FPU内蔵したものとして開発された。68881のほとんどの命令数値表現モードハードウェアサポートされていたが、一部サポートされないものもあった。これらはソフトウェアパッケージエミュレーションを行うことでサポートした

※この「実装例」の解説は、「MC68881」の解説の一部です。
「実装例」を含む「MC68881」の記事については、「MC68881」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/02 00:52 UTC 版)

電子マネー」の記事における「実装例」の解説

日本ではソニー非接触型ICカード通信技術FeliCa採用したものが多い。FeliCa使用していることから物理的な互換性はあるが、システム互換性図られていない事が多い。現在では、元々ICチップ利用したカードタイプが、モバイル決済対応しICチップ型などとは単純に分類できなくなっている。以下には、代表的なものを記す。 ICカードおサイフケータイにも対応 楽天Edy SuicaKitacaPASMOTOICAmanacaICOCASUGOCAnimocaはやかけん相互利用可能) WAON nanaco PASMO カード型のみ Kitaca TOICA manaca ICOCA SUGOCA nimocaめじろんnimocaでんでんnimocaICAS nimocanagasaki nimocaはやかけん交通系ICカード全国相互利用サービス」も参照 その他 (前述交通系ICカード全国相互利用サービス対応カード等や後述PiTaPaとは電子マネー互換性なし) SAPICA IruCa ICい〜カード 熊本地域振興ICカード ドトール・バリューカード CoGCa LaCuCa マチカ~machica~(愛媛県松山市中心部「マチペイ」加盟店アプリ版存在する。※公式サイト

※この「実装例」の解説は、「電子マネー」の解説の一部です。
「実装例」を含む「電子マネー」の記事については、「電子マネー」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/14 22:02 UTC 版)

Luhnアルゴリズム」の記事における「実装例」の解説

下記Python関数Luhnアルゴリズム実装したもので、入力され数字の配列がLuhn番号として正しければ True返しさもなくば False返す入力配列各要素数字1表せる必要があり 0 以上 9 以下の整数なければならない。この実装では配列逆転させ(reversed)、ブーリアン変数 altループするごとに反転させて奇数番目か偶数番目かを判定している。 def check_number(digits): _sum = 0 alt = False for d in reversed(digits): assert 0 <= d <= 9 if alt: d *= 2 if d> 9: d -= 9 _sum += d alt = not alt return (_sum % 10) == 0

※この「実装例」の解説は、「Luhnアルゴリズム」の解説の一部です。
「実装例」を含む「Luhnアルゴリズム」の記事については、「Luhnアルゴリズム」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/05/05 06:25 UTC 版)

スピンロック」の記事における「実装例」の解説

以下の例は x86 アセンブリ言語によるスピンロック実装である。Intel 80386互換プロセッサ動作するlock: # ロック変数。1 = ロック済み, 0 = ロックされていない dd 0spin_lock: mov eax, 1 # EAX レジスタに 1 をセットloop: xchg eax, [lock] # アトミックEAXレジスタロック変数の値を交換 # ロックには常に 1 が格納され以前の値が EAX レジスタ格納されるtest eax, eax # EAX 自身チェックEAXゼロならば プロセッサのゼロフラグがセットされる。 # EAX が 0 なら、ロック解放状態から新たに確保されたとみなせる。 # そうでなければEAX は 1 であり、ロック獲得できていない。 jnz loop # ゼロフラグがセットされていないときは XCHG 命令に戻る。 # これはロックが既に他に獲得されていた場合で、スピンする必要があるret # ロック獲得できたので、呼び出した関数へ戻る。spin_unlock: mov eax, 0 # EAX レジスタに 0 をセット xchg eax, [lock] # アトミックEAX レジスタロック変数交換 ret # ロック解放

※この「実装例」の解説は、「スピンロック」の解説の一部です。
「実装例」を含む「スピンロック」の記事については、「スピンロック」の概要を参照ください。


実装例(擬似コード)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/05/27 06:02 UTC 版)

力学モデル (グラフ描画アルゴリズム)」の記事における「実装例(擬似コード)」の解説

それぞれのノード対し位置 (x, y) および速度(dx, dy), 質量定義するバネ定数設定できる場合も多い。この例では、フックの法則クーロンの法則用いている。 すべてのノード速度を(0, 0)にする。 ノード位置を、(乱数, 乱数) にする。 // 2 つノードがまったく同じ位置におかれないようにする。 do { 運動エネルギー合計 := 0 // すべての粒子について、運動エネルギー合計計算するfor-each すべてのノード as ノード1 { 力 := (0, 0) // この粒子について作用するすべての力の合成計算するfor-each すべてのノード as ノード2 { 力 := 力 + 定数 / 距離(ノード1, ノード2) ^ 2 // クーロン力 } for-each このノードつながっているノード as ノード2 { 力 := 力 + バネ定数 * (距離 (ノード1, ノード2) - バネ自然長) // フックの法則による力 } // 内部摩擦無ければ粒子停止しないので、振動の減衰計算するノード1速度 := (ノード1速度 + 微小時間 * 力 / ノード1質量) * 減衰定数 ノード1位置 := ノード1位置 + 微小時間 * ノード1速度 運動エネルギー合計 := 運動エネルギー合計 + ノード1質量 * ノード1速度 ^ 2 } } loop until 運動エネルギー合計が十分小さい // シミュレーション停止

※この「実装例(擬似コード)」の解説は、「力学モデル (グラフ描画アルゴリズム)」の解説の一部です。
「実装例(擬似コード)」を含む「力学モデル (グラフ描画アルゴリズム)」の記事については、「力学モデル (グラフ描画アルゴリズム)」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/06/06 10:07 UTC 版)

バイトニックソート」の記事における「実装例」の解説

以下に、再帰呼び出し用いたPython用いたバイトニックソートの実装例を示す。入力は、論理値upと2べき乗個の配列xであり、出力は、upが真であれば昇順、でなければ降順となる。 def bitonic_sort(up: bool, x: Sequence[int]) -> List[int]: """バイトニックソート 引数: up: 真であれば昇順、偽であれば降順 x: 整数列 Returns: upに従って並び替えられた整数列 """ if len(x) <= 1: return x else: first=bitonic_sort(True, x[:len(x) // 2]) second=bitonic_sort(False, x[len(x) // 2:]) return bitonic_merge(up, first + second)def bitonic_merge(up: bool, x) -> List[int]: # 入力xがバイトニック列であれば並び替えられて出力される if len(x) == 1: return x else: bitonic_compare(up, x) first = bitonic_merge(up, x[:len(x) // 2]) second = bitonic_merge(up, x[len(x) // 2:]) return first + seconddef bitonic_compare(up: bool, x) -> None: dist = len(x) // 2 for i in range(dist): if (x[i] > x[i + dist]) == up: x[i], x[i + dist] = x[i + dist], x[i] # 交換 >>> bitonic_sort(True, [10, 30, 11, 20, 4, 330, 21, 110])[4, 10, 11, 20, 21, 30, 110, 330]>>> bitonic_sort(False, [10, 30, 11, 20, 4, 330, 21, 110])[330, 110, 30, 21, 20, 11, 10, 4] 再帰呼び出し用いない例(Javaによる)は以下のようになるpublic class BitonicSort { static void kernel(int[] a, final int p, final int q) { final int d = 1 << (p-q); for (int i = 0; i < a.length; i++) { boolean up=((i>> p) & 2) == 0; if ((i & d) == 0 && (a[i] > a[i | d]) == up) { int t = a[i]; a[i] = a[i | d]; a[i | d] = t; } } } static void bitonicSort(final int logn, int[] a) { assert a.length == 1 << logn; for (int i = 0; i < logn; i++) { for(int j = 0; j <= i; j++) { kernel(a, i, j); } } } public static void main(String[] args) { final int logn = 5, n = 1 << logn; int[] a0 = new int[n]; for (int i = 0; i < n; i++) { a0[i] = (int)(Math.random() * 1000); } for (int k = 0; k < a0.length; k++) { System.out.print(a0[k] + " "); } System.out.println(); bitonicSort(logn, a0); for (int k = 0; k < a0.length; k++) { System.out.print(a0[k] + " "); } System.out.println(); }}

※この「実装例」の解説は、「バイトニックソート」の解説の一部です。
「実装例」を含む「バイトニックソート」の記事については、「バイトニックソート」の概要参照ください


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/22 05:42 UTC 版)

cksum (UNIX)」の記事における「実装例」の解説

git.savannah.gnu.org/cgit/coreutils.git/tree/src/cksum.c%20cksum.c - GNUプロジェクトによる実装。 cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/cksum/ - OpenBSDプロジェクトによる実装

※この「実装例」の解説は、「cksum (UNIX)」の解説の一部です。
「実装例」を含む「cksum (UNIX)」の記事については、「cksum (UNIX)」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/07/20 09:32 UTC 版)

実行保護」の記事における「実装例」の解説

しばしばNXビットのようなハードウェア機能利用するNXビットは、AMDAMD64シリーズCPU装備されるインテルCPUPentium 4Prescottコア以降)のXDビット(eXecute Disable, EDB:Execute Disable Bit)も同等機能である。SunSPARCAlphaIBMPowerPCそしてIntelIA-64(Itanium/Merced)の一部にも同等機能がある。 Linuxでの実装PaXExec ShieldOpenBSDではen:W^Xen:Openwall等がある。 Windowsでの実装データ実行防止 (DEP) がある。DEPにはハードウェアDEPソフトウェアDEPがあり、ハードウェアDEPではNXビット機能により、データバッファ内にあるコード実行禁止するソフトウェアDEPでは、名前は似ているそのような機能バッファオーバーランからの保護)はなく、代り特定の攻撃構造化例外ハンドラ上書き)から保護する従来アプリケーションオペレーティングシステムとの互換性保護範囲アプリケーション全般までか、オペレーティングシステム一部機能のみか等)、種々の攻撃に対する脆弱性は、各々実装によって異なる。

※この「実装例」の解説は、「実行保護」の解説の一部です。
「実装例」を含む「実行保護」の記事については、「実行保護」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/14 17:27 UTC 版)

ELIZA」の記事における「実装例」の解説

Java版(ワイゼンバウムの本来の仕様に非常に近い): http://chayden.net/eliza/Eliza.html プログラム電卓TI-83 シリーズ上でCを使った実装: http://www.ticalc.org/archives/files/fileinfo/354/35463.html Perlモジュール Chatbot-Eliza -- 実装例 doctor.el 1985年ごろ、Emacs Lisp実装された。http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/classics/eliza/emacs/0.html Pop-11 ElizaPoplogシステム動作するPoplogサセックス大学AI学ばせるために使われシステムであり、現在はフリーなオープンソースシステムの一部である。 Trans-Tex SoftwareMac OS および OS X 向け実装: http://www.tex-edit.com/index.html#Eliza Tcl版: http://wiki.tcl.tk/9235 BASIC版: http://www.atariarchives.org/bigcomputergames/showpage.php?page=20 GNU Guile版: https://github.com/apgwoz/chatter LISP版(Apple II 版がベース): http://jeffshrager.org/llisp/26.html

※この「実装例」の解説は、「ELIZA」の解説の一部です。
「実装例」を含む「ELIZA」の記事については、「ELIZA」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/02 05:07 UTC 版)

アドレスバー」の記事における「実装例」の解説

以下に、Mozilla Firefoxアドレスバー(スマートロケーションバー)を示す。 https版の英語版ウィキペディア閲覧時のFirefoxアドレスバー2012年5月現在)。青色ところにドメイン名表示されている Extended Validation 証明書使っている Paypalサイト閲覧時の Firefoxアドレスバー緑色ところに組織名表示されている。

※この「実装例」の解説は、「アドレスバー」の解説の一部です。
「実装例」を含む「アドレスバー」の記事については、「アドレスバー」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/06/13 17:44 UTC 版)

ソフトウェアファクトリー」の記事における「実装例」の解説

Microsoft Patterns & Practices Team は以下の4つソフトウェアファクトリ開発している: Smart Client Software Factory以前の名称は Smart Client Baseline Architecture Toolkit)(2006年6月30日リリースWeb Service Software Factory2006年6月リリースMobile Client Software Factory2006年6月リリースWeb Client Software Factory2007年1月リリースProject GlidepathマイクロISV指向ソフトウェアファクトリーマイクロソフトからもリリースされている。 Project Glidepath Blog Project Glidepath Forums EFx FactoryMicrosoft Services が他に先駆けてリリースしたアーキテクチャソフトウェアファクトリーであり、モデル駆動開発統合実行環境ツールによってサービス指向企業アプリケーション構築するEFx Architectural-Guidance Software Factory EFx Factory Blog .NET Database Application Development tangible architect - .NET Software Factory with DSL Modeller NConstruct - Intelligent Software Factory

※この「実装例」の解説は、「ソフトウェアファクトリー」の解説の一部です。
「実装例」を含む「ソフトウェアファクトリー」の記事については、「ソフトウェアファクトリー」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/21 14:25 UTC 版)

プロセス間通信」の記事における「実装例」の解説

IPCとして使われているAPIはいくつかある。プラットフォーム依存しない主なAPIの例を挙げる無名パイプ英語版)と名前付きパイプ Common Object Request Broker Architecture (CORBA) Freedesktop.orgD-Bus Distributed Computing Environment (DCE) メッセージバス (Mbus) - RFC 3259 にて規定 MCAPI (Multicore Communications API) Lightweight Communications and Marshalling (LCM) ONC RPC UNIXドメインソケット XML: XML-RPCSOAP JSON: JSON-RPC Thrift TIPC (TIPC) ZeroCの Internet Communications Engine (ICE) 以下は、プラットフォーム固有またはプログラミング言語固有のAPIの例である。 AppleApple event従来は Interapplication CommunicationsIAC呼ばれていた) EneaLINX - Linux向け(オープンソース)と Enea OSE動作するバージョンがある。 CMUによるIPC実装 JavaRemote Method Invocation (RMI) KDEDesktop Communications Protocol (DCOP) Libt2n - Linux上のC++でのみ動作複雑なオブジェクト例外扱えるMachカーネルMach ポート マイクロソフトActiveXComponent Object Model (COM)、Microsoft Transaction Server (COM+)、Distributed Component Object Model (DCOM)、動的データ交換 (DDE)、Object Linking and Embedding (OLE)、匿名パイプ英語版)、名前付きパイプLocal Procedure Call英語版)、MailSlot(英語版)、メッセージループ英語版)、MSRPC(英語版)、.NET RemotingWindows Communication Foundation (WCF) ノベルSPX PHPセッション POSIX: mmapメッセージキューセマフォ共有メモリ RISC OSメッセージ Solaris Doors System V: メッセージキューセマフォ共有メモリ Distributed Ruby DIPC (Distributed Inter-Process Communication) - Linux上で System VIPCネットワークにまで拡張する仕組み OpenBinder - BeOS起源で、最近ではAndroid使われている。 Solace Systems の IPC Shared Memory Messaging QNXPPS (Persistant Publish/Subscribe) サービス SIMPL (Synchronous Interprocess Messaging Project for Linux) - QNXIPCLinux実装するプロジェクト

※この「実装例」の解説は、「プロセス間通信」の解説の一部です。
「実装例」を含む「プロセス間通信」の記事については、「プロセス間通信」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/08/17 14:08 UTC 版)

abs」の記事における「実装例」の解説

C言語におけるabs関数典型的な実装例は以下である。 int my_abs(int x) { if (x < 0) return -x; else return x;} もしくは、マクロを用いればC言語でも型を気にせずに用いることが可能となる。しかし副作用に注意する必要性が生じる。 #define my_abs(x) ((x)>= 0 ? (x) : -(x)) C99ではジェネリック版のfabs関数宣言されている。

※この「実装例」の解説は、「abs」の解説の一部です。
「実装例」を含む「abs」の記事については、「abs」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/12/28 06:08 UTC 版)

奇偶転置ソート」の記事における「実装例」の解説

1番目の位置を表す添字が 0 になっているのはC言語仕様である。 double data[N] = {値1, 値2, 値3, ..., 値N} ;bool changed ;do { changed = false ; for (int i=0 ; i data[i+1]) { swap (&data[i], &data[i+1]) ; changed = true ; } for (int i=1 ; i data[i+1]) { swap (&data[i], &data[i+1]) ; changed = true ; } } while (changed) ;

※この「実装例」の解説は、「奇偶転置ソート」の解説の一部です。
「実装例」を含む「奇偶転置ソート」の記事については、「奇偶転置ソート」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/23 09:35 UTC 版)

ニューラルネットワーク」の記事における「実装例」の解説

ここでは、3層フィードフォワードニューラルネットワークで回帰実装する。 x = [ − 1 , 1 ] {\displaystyle x=[-1,1]} において、 y = 2 x 2 − 1 {\displaystyle y=2x^{2}-1} を学習する活性化関数ReLU使用学習は、確率的勾配降下法バックプロパゲーションを行う。 3層フィードフォワードニューラルネットワークのモデル数式以下の通り。X が入力、Y が出力、T が訓練データ全て数式では縦ベクトル。 ψ {\displaystyle \psi } は活性化関数。 W 1 , W 2 , B 1 , B 2 {\displaystyle W_{1},W_{2},B_{1},B_{2}} が学習対象B 1 , B 2 {\displaystyle B_{1},B_{2}} はバイアス項。 Y = W 2 ψ ( W 1 X + B 1 ) + B 2 {\displaystyle Y=W_{2}\psi (W_{1}X+B_{1})+B_{2}} 誤差関数以下の通り誤差関数出力訓練データの間の二乗誤差使用E = 1 2 ‖ Y − T ‖ 2 {\displaystyle E={\frac {1}{2}}\|Y-T\|^{2}} 誤差関数 E {\displaystyle E} をパラメータ偏微分した数式以下の通り。肩についてる T は転置行列。 ∘ {\displaystyle \circ } はアダマール積。 ∂ E ∂ W 1 = ( ( ( Y − T ) T W 2 ) T ∘ ψ ′ ( W 1 X + B 1 ) ) X T ∂ E ∂ B 1 = ( ( Y − T ) T W 2 ) T ∘ ψ ′ ( W 1 X + B 1 ) ∂ E ∂ W 2 = ( Y − T ) ψ ( W 1 X + B 1 ) T ∂ E ∂ B 2 = Y − T {\displaystyle {\begin{aligned}{\frac {\partial E}{\partial W_{1}}}&=\left(\left((Y-T)^{\mathrm {T} }W_{2}\right)^{\mathrm {T} }\circ \psi '(W_{1}X+B_{1})\right)X^{\mathrm {T} }\\{\frac {\partial E}{\partial B_{1}}}&=\left((Y-T)^{\mathrm {T} }W_{2}\right)^{\mathrm {T} }\circ \psi '(W_{1}X+B_{1})\\{\frac {\partial E}{\partial W_{2}}}&=(Y-T)\psi (W_{1}X+B_{1})^{\mathrm {T} }\\{\frac {\partial E}{\partial B_{2}}}&=Y-T\end{aligned}}} Python 3.5 によるソースコードPython において、@ は行列の乗法演算子、** は冪乗演算子行列同士の * はアダマール積import numpy as npdim_in = 1 # 入力1次元dim_out = 1 # 出力1次元hidden_count = 1024 # 隠れ層のノード1024個learn_rate = 0.005 # 学習率# 訓練データは x は -1~1、y は 2 * x ** 2 - 1train_count = 64 # 訓練データ数train_x = np.arange(-1, 1, 2 / train_count).reshape((train_count, dim_in))train_y = np.array([2 * x ** 2 - 1 for x in train_x]).reshape((train_count, dim_out))# 重みパラメータ。-0.50.5ランダムに初期化。この行列の値を学習する。w1 = np.random.rand(hidden_count, dim_in) - 0.5w2 = np.random.rand(dim_out, hidden_count) - 0.5b1 = np.random.rand(hidden_count) - 0.5b2 = np.random.rand(dim_out) - 0.5# 活性化関数は ReLUdef activation(x): return np.maximum(0, x)# 活性化関数微分def activation_dash(x): return (np.sign(x) + 1) / 2# 順方向学習結果利用def forward(x): return w2 @ activation(w1 @ x + b1) + b2# 逆方向学習def backward(x, diff): global w1, w2, b1, b2 v1 = (diff @ w2) * activation_dash(w1 @ x + b1) v2 = activation(w1 @ x + b1) w1 -= learn_rate * np.outer(v1, x) # outer直積 b1 -= learn_rate * v1 w2 -= learn_rate * np.outer(diff, v2) b2 -= learn_rate * diff# メイン処理idxes = np.arange(train_count) # idxes は 0~63for epoc in range(1000): # 1000エポック np.random.shuffle(idxes) # 確率的勾配降下法のため、エポックごとにランダムにシャッフルする error = 0 # 二乗誤差 for idx in idxes: y = forward(train_x[idx]) # 順方向で x から y を計算する diff = y - train_y[idx] # 訓練データとの誤差 error += diff ** 2 # 二乗誤差蓄積 backward(train_x[idx], diff) # 誤差学習 print(error.sum()) # エポックごとに二乗誤差出力徐々に減衰して0に近づく

※この「実装例」の解説は、「ニューラルネットワーク」の解説の一部です。
「実装例」を含む「ニューラルネットワーク」の記事については、「ニューラルネットワーク」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/04 00:46 UTC 版)

あの楽器」の記事における「実装例」の解説

筐体各種のタッチセンサ・液晶ディスプレイなどの薄型ディスプレイLED組み込み機器マザーボードmidi制御インターフェースなどを組み込み演奏機能映像機能実現させたものが多種多様に現れた。ソフトウェアについては、オープンソースとしてソフトウェアコードの公開共有プロジェクト行われたまた、iPhoneアプリケーションとして「あの楽器」を実現したソフトウェア「ouiLead」「あのがっき」「イノセンサー」など、ソフトウェア単体としての製作も実現したまた、アルミ板の筐体ピアニカ貼付したものなども現れた。 ハードウェアについては、出典確認できるものとしては、笹尾和彦赤外線LEDアクリル板用いたタッチパネル製作し、これにコンパクトデジタルカメラ改造して赤外線デジタルカメラしたものセンサとして用いFTIR方式midiインターフェースのものを製作・発表野田陽はタクトスイッチをセンサとして用い緑色LEDマトリクス演出ディスプレイとして用いるものを製作・発表している。

※この「実装例」の解説は、「あの楽器」の解説の一部です。
「実装例」を含む「あの楽器」の記事については、「あの楽器」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2015/04/20 14:44 UTC 版)

協調フィルタリング」の記事における「実装例」の解説

協調フィルタリング実装方法はいくつかあるが、「相関分析」を応用する方法が一番シンプルかつ古典的である。 例え商品の購入や、記事の閲覧等のユーザ行動数値化プロファイル蓄積する新規ユーザ行動蓄積され既存の他ユーザ行動相関分析行い、高い相関認められるユーザと「嗜好が近い」ものと仮定する。 「嗜好が近い」のであれば同じような「行動を好む」と予想し蓄積され既存の他ユーザにはあるが新規ユーザにはない行動商品の購入や、記事の閲覧)をおすすめ情報として提示する。 これらの実装方法は非常にシンプルで、例えば「Microsoft Excel」等の表計算ソフト組み込まれている標準関数群のみで十分実装できるものである

※この「実装例」の解説は、「協調フィルタリング」の解説の一部です。
「実装例」を含む「協調フィルタリング」の記事については、「協調フィルタリング」の概要を参照ください。


実装例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2014/09/30 04:05 UTC 版)

交ぜ書き変換」の記事における「実装例」の解説

mazec - MetaMoJiによる手書き入力日本語入力システム。 なお、WindowsMS-IME内蔵されている手書き入力は「下こう」と入力したときに「下校」が候補上がらない[要検証ノート]。これは「下」を一度その読みの「か」に変換した上でかな漢字変換システムにより再変換しているためである。

※この「実装例」の解説は、「交ぜ書き変換」の解説の一部です。
「実装例」を含む「交ぜ書き変換」の記事については、「交ぜ書き変換」の概要を参照ください。

ウィキペディア小見出し辞書の「実装例」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「実装例」の関連用語

検索ランキング

   

英語⇒日本語
日本語⇒英語
   



実装例のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの自動プログラミング (改訂履歴)、リッシュのアルゴリズム (改訂履歴)、カーネル密度推定 (改訂履歴)、memset (改訂履歴)、ブリッジ接続 (改訂履歴)、Bitapアルゴリズム (改訂履歴)、UDPヘルパーアドレス (改訂履歴)、strcpy (改訂履歴)、Xorshift (改訂履歴)、strlen (改訂履歴)、フェニック木 (改訂履歴)、シェーカーソート (改訂履歴)、MC68881 (改訂履歴)、電子マネー (改訂履歴)、Luhnアルゴリズム (改訂履歴)、スピンロック (改訂履歴)、力学モデル (グラフ描画アルゴリズム) (改訂履歴)、バイトニックソート (改訂履歴)、cksum (UNIX) (改訂履歴)、実行保護 (改訂履歴)、ELIZA (改訂履歴)、アドレスバー (改訂履歴)、ソフトウェアファクトリー (改訂履歴)、プロセス間通信 (改訂履歴)、abs (改訂履歴)、奇偶転置ソート (改訂履歴)、ニューラルネットワーク (改訂履歴)、あの楽器 (改訂履歴)、協調フィルタリング (改訂履歴)、交ぜ書き変換 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS